Seite 1 von 1

PfeilTasten + Rand des Bildschirmes = Error

Verfasst: 16.02.2005 16:14
von SlapY
Hiho,
ganz schnell:
warum zum Teufel geht das nicht:

Code: Alles auswählen

ExamineKeyboard()
;
If KeyboardPushed(#PB_KEY_Right)
 If Sx >= 640
 Else 
  Sx=Sx+5
 EndIf 
EndIf
;
If KeyboardPushed(#PB_KEY_Left)
 If Sx <= 0
 Else 
  Sx=Sx-5
 EndIf
EndIf
;
If KeyboardPushed(#PB_KEY_Up)
 If Sy <= 0
 Else 
  Sy=Sy-5
 EndIf
EndIf
;
If KeyboardPushed(#PB_KEY_Down)
 If Sy >= 480
 Else 
  Sy=Sy+5
 EndIf
EndIf
Problem: Spieler stoppt nicht bei 640 bzw 480.

Ich hab schon folgendes probiert:
statt (z.B.:) <= , =< nehmen (Geht nicht)
statt ganix das:
If Sy >= 480
Sy=480
Else
...

Bye
Slap
Ps: schnell,Schnell,SCHNELL ^^

Verfasst: 16.02.2005 16:28
von Franky
Also, der teil den du gepostet hast,ist fehlerfrei.

Code: Alles auswählen

InitSprite()
InitKeyboard()
If OpenScreen(1024,768,32,"Hallo")
     CreateSprite(1,200,200)
          StartDrawing(SpriteOutput(1))
                   FrontColor(255,0,0)
                        Circle(100,100,100)
          StopDrawing()
          TransparentSpriteColor(1,0,0,0)
       Repeat
             ClearScreen(0,0,255)
             DisplayTransparentSprite(1,sx,sy)
             FlipBuffers()             
              ExamineKeyboard()
              ;
              If KeyboardPushed(#PB_Key_Right)
              If sx >= 640
              Else
                sx=sx+5
              EndIf
              EndIf
              ;
              If KeyboardPushed(#PB_Key_Left)
              If sx <= 0
              Else
                sx=sx-5
              EndIf
              EndIf
              ;
              If KeyboardPushed(#PB_Key_Up)
              If sy <= 0
              Else
                sy=sy-5
              EndIf
              EndIf
              ;
              If KeyboardPushed(#PB_Key_Down)
              If sy >= 480
              Else
                sy=sy+5
              EndIf
              EndIf             
              Until KeyboardPushed(#PB_Key_Escape)
              CloseScreen()
EndIf
End                
Da liegt der fehler also nicht und somit kann ich nur raten.
1.)Du musst bedenken, dass du immer die linke obere Ecke angibst, somit , du musst bei den maximumwerten also die Spritegröße anpassen.
2.)Du änderst irgendwo anders die Variablen.

Verfasst: 16.02.2005 16:28
von DrShrek
Anfängerfrage!

Antwort:

Code: Alles auswählen

If KeyboardPushed(#PB_KEY_Right) 
 If Sx >= 640 
   Sx = 639
 Else 
  Sx=Sx+5 
 EndIf 
EndIf 
; 
If KeyboardPushed(#PB_KEY_Left) 
 If Sx <= 0 
   Sx = 1
 Else 
  Sx=Sx-5 
 EndIf 
EndIf 
; 
If KeyboardPushed(#PB_KEY_Up) 
 If Sy <= 0 
   Sy = 1
 Else 
  Sy=Sy-5 
 EndIf 
EndIf 
; 
If KeyboardPushed(#PB_KEY_Down) 
 If Sy >= 480 
   Sy = 479
 Else 
  Sy=Sy+5 
 EndIf 
EndIf

Verfasst: 16.02.2005 16:32
von SlapY
Ho,
Ach wassssssss?! Anfängerfrage?! ......das war eher eine: NichtnachgedachtFrage ;) Wobei mir gerade einfällt das ich mir das irgendwo aufgeschreiben hatte..........^^° .....*Hust* naja egal
Thx
Slap
Ps:
Denken ist schwer :roll: :lol: :mrgreen: