PfeilTasten + Rand des Bildschirmes = Error

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
SlapY
Beiträge: 47
Registriert: 08.01.2005 20:57

PfeilTasten + Rand des Bildschirmes = Error

Beitrag 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 ^^
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag 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.
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag 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
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
SlapY
Beiträge: 47
Registriert: 08.01.2005 20:57

Beitrag 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:
Antworten