Seite 1 von 1

Screen/Box bewegen problem!

Verfasst: 13.08.2006 19:50
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:

Verfasst: 13.08.2006 20:00
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.

Verfasst: 13.08.2006 20:06
von C4rizz
Haste recht!
Im nachhinein ist es eigentlich klar. :roll:
Danke

Verfasst: 13.08.2006 20:07
von Kaeru Gaman
kein problem.
man muss sich an die denkweise eben erst gewöhnen. ;)