Screen/Box bewegen problem!

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
C4rizz
Beiträge: 223
Registriert: 01.05.2006 12:43
Computerausstattung: Desktop : Amd Athlon X2 3,2 ghz Black Edition. 4GB Corsair XMS DDR2, nVidia 460 gtx Sonic Extreme

Notebook : [Asus] i5 @ 2,9 ghz, 8GB Corsair DDR3, nVidia gt 540m

Internet : DSL - 16 Mbit | HSDPA - 7,2 Mbit
Wohnort: Celle

Screen/Box bewegen problem!

Beitrag von C4rizz »

Hi
Hab mal wieder ein Problem!

Code: Alles auswählen

;PB 4.00
InitSprite()
InitKeyboard()
OpenScreen(800,600,16,"Plotwar")

fr.w = 3  
cx.w = 100
cy.w = 100

   Repeat
      ClearScreen(RGB(255,255,255))
      StartDrawing(ScreenOutput())
         Circle(cx,cy,fr,255)
      StopDrawing()
      FlipBuffers()

      ExamineKeyboard()

         If KeyboardPushed(#PB_Key_S)
            cy + 1;+2 oder höher
         If cy = 600;Dat funzt denn nicht mehr
            cy = 599
         EndIf
         EndIf
         If KeyboardPushed(#PB_Key_W)
            cy - 1;hier auch -2 oder weniger
         If cy = 0
            cy = 1
         EndIf
         EndIf
         If KeyboardPushed(#PB_Key_A)
            cx - 1;und hier
         If cx = 0
            cx = 1
         EndIf
         EndIf
         If KeyboardPushed(#PB_Key_D)
            cx + 1;und hier
         If cx = 800
            cx = 799
         EndIf
         EndIf
      If KeyboardPushed(#PB_Key_Escape)
         End
      EndIf
   ForEver
Das funktioniert zwar, aber wenn ich bei den Tastaturabfragen +2 oder höher eingebe, funktioniert die Fensterabsperrung nicht mehr!
Nun frag ich mich und euch wieso?
Ich wette es ist wieder mal voll simpel! :roll:
PB 3.94/4.10
Meine Hompage
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Ich wette es ist wieder mal voll simpel!

klar isses das.

wenn du mit = die grenze abfragst, muss man diese grenze auch genau treffen.
wenn du variable schrittweiten einbaun willst, solltest du immer mit > abfragen.

bsp:
grenze abfragen mit = 599
wenn du jetzt mit +2 schrittweite bei ner geraden zahl anfängst,
dann zählt das programm ...596, 598, 600, 602...
die bedingung =599 wird niemals erfüllt.

wenn du aber mit >=599 oder >598 arbeitest, ist es egal, wie groß deine schritte sind,
sobald du ÜBER die grenze gehst, ist die bedingung erfüllt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
C4rizz
Beiträge: 223
Registriert: 01.05.2006 12:43
Computerausstattung: Desktop : Amd Athlon X2 3,2 ghz Black Edition. 4GB Corsair XMS DDR2, nVidia 460 gtx Sonic Extreme

Notebook : [Asus] i5 @ 2,9 ghz, 8GB Corsair DDR3, nVidia gt 540m

Internet : DSL - 16 Mbit | HSDPA - 7,2 Mbit
Wohnort: Celle

Beitrag von C4rizz »

Haste recht!
Im nachhinein ist es eigentlich klar. :roll:
Danke
PB 3.94/4.10
Meine Hompage
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

kein problem.
man muss sich an die denkweise eben erst gewöhnen. ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten