Bewegungsproblem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

mpcool

Betreff: Bewegungsproblem

BeitragDo, Jul 19, 2007 12:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey leute, hab ein Problem mit der Bewegung....
Es soll ein Pong werden, wenn ich z.b. hoch drücke geht der nur hoch und gar nicht mehr runter wenn ich runter drücke, und das ist auch umgekehrt genau so Confused

Hier mal der Code:

Code: [AUSKLAPPEN]
AppTitle "Easy Pong"
Graphics 800, 600, 16, 2
SetBuffer BackBuffer()
SeedRnd MilliSecs()

;bilder laden und variablen bzw. konstanten festlegen
pong = LoadImage("pong.jpg")
x_pong_start = 10
y_pong_start = 225
Const hoch = 1
Const runter = 2
richtung = 0

;schleife
Repeat
Cls
;hoch
   If KeyHit(200) Then
      If richtung <> runter Then
         richtung = hoch
      EndIf
   EndIf
;runter
   If KeyHit(208) Then
      If richtung <> hoch Then
         richtung = runter
      EndIf
   EndIf
;zeit abfragen
   If MilliSecs() - bewegung > 1 Then ;je weniger desto schneller
      bewegung = MilliSecs()
;bewegung ausführen
      y_pong_start = y_pong_start - (richtung=hoch) + (richtung=runter)
   EndIf
;pong malen
   DrawImage pong, x_pong_start, y_pong_start
;falls spielfeld verlässt
   If y_pong_start < -110 Then y_pong_start = 599
   If y_pong_start > 599 Then y_pong_start = -105
Flip
Until KeyHit(1)

End


Hoffe ihr versteht mein Problem und könnt mir helfen Sad
 

Laias

BeitragDo, Jul 19, 2007 12:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Wann soll der Pong denn genau wieder runter bzw hoch gehen?
http://laias.wordpress.com
 

mpcool

BeitragDo, Jul 19, 2007 12:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wenn er hoch geht (wenn hoch gedrückt wurde) soll er wieder runter gehn wenn die taste runter gedrückt wird Smile
 

Laias

BeitragDo, Jul 19, 2007 13:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist einfach.

Du musst nur das if richtung <> hoch löschen dann gehts.

Wiso hast du das überhaup darein getan?

hab den code verbessert:

Code: [AUSKLAPPEN]
AppTitle "Easy Pong"
Graphics 800, 600, 16, 2
SetBuffer BackBuffer()
SeedRnd MilliSecs()

;bilder laden und variablen bzw. konstanten festlegen

x_pong_start = 10
y_pong_start = 225
Const hoch = 1
Const runter = 2
richtung = 0

;schleife
Repeat
Cls
;hoch
   If KeyHit(200) Then
         richtung = hoch
      EndIf

;runter
   If KeyHit(208) Then
         richtung = runter
   EndIf
;zeit abfragen
   If MilliSecs() - bewegung > 1 Then ;je weniger desto schneller
      bewegung = MilliSecs()
;bewegung ausführen
      y_pong_start = y_pong_start - (richtung=hoch) + (richtung=runter)
   EndIf
;pong malen
   Oval x_pong_start, y_pong_start,20,20
;falls spielfeld verlässt
   If y_pong_start < -110 Then y_pong_start = 599
   If y_pong_start > 599 Then y_pong_start = -105
Flip
Until KeyHit(1)

End


mfg Laias

EDIT: Achso du musst den Pong dann nochmal zeichnen hab ihn dur oval ersetzt
http://laias.wordpress.com
  • Zuletzt bearbeitet von Laias am Do, Jul 19, 2007 13:04, insgesamt einmal bearbeitet
 

mpcool

BeitragDo, Jul 19, 2007 13:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Wow, danke für die schnelle Hilfe Very Happy

Problem gelöst Smile

X-Calibur

BeitragDo, Jul 19, 2007 13:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, und hier gleich noch n Denkanstoss wie mans auch anders machen könnte Smile

Code: [AUSKLAPPEN]

AppTitle "Easy Pong"
Graphics 800, 600, 16, 2
SetBuffer BackBuffer()
SeedRnd MilliSecs()

;bilder laden und variablen bzw. konstanten festlegen
pong = LoadImage("pong.jpg")

PX=MouseX()
PY=560

Pongx#=400
Pongy#=550
PongW#=300
PongSpeed#=5
;schleife
Repeat
Cls

If pongy<0 Then ; oben kollidiert
   Pongw = 2 * 180 - Pongw
EndIf
If pongx>790 Then ; rechts kollidiert
   Pongw = 2 * 90 - Pongw
EndIf
If pongy>590 Then ; unten kollidiert
   Pongw = 2 * 0 - Pongw
EndIf
If pongx<0 Then ; links kollidiert
   Pongw = 2 * 270 - Pongw
EndIf

Pongx=Pongx+Cos(Pongw)*PongSpeed
Pongy=Pongy+Sin(Pongw)*PongSpeed
DrawImage pong,pongx, pongy ; Pong malen
Rect MouseX()-30, PY,60,10 ; Player Malen
Flip
Until KeyHit(1)

End

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group