Seite 1 von 4

Problem beim Erstellen eines Pong-Spieles, bitte Helfen.

Verfasst: 18.05.2005 20:23
von deatwaz
Hi liebe PB com,
ich habe ein problem mit den Tutorial was man auf purebasic.de findet.
Ich bin an der stelle mit dem erstellen des Pong spiels und irgendwie funzt es nicht, nicht nur meines sondern auch das aus dem Tutorium.

hier mal mein code:

Code: Alles auswählen

InitSprite()
InitKeyboard()
OpenScreen(640,480,16,"Pong")
Global Ball_x .w
Global Ball_y .w
Global Schlaeger_x .w
Global Schlaeger_y .w
Global Ball_Beweg_x .w
Global Ball_Beweg_y .w

Ball_x = 319
Ball_y = 239
Ball_Beweg_x = -1
Ball_Beweg_y = -1
Schlaeger_x = 639 - 10
Schlaeger_y = 479 - (30/2)

Repeat

FlipBuffers()
ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
FrontColor(255,255,255)
Box(0,0,20,480)
Box(0,0,640,20)
Box(0,460,640,20)
Box(Schlaeger_x,Schlaeger_y,10,30)
Box(Ball_x-1,Ball_y-1,3,3)
StopDrawing()

ExamineKeyboard()
If KeyboardPushed (200)
  Schlaeger_y - 1
EndIf
If KeyboardPushed (208)
  Schlaeger_y +1
EndIf

If Schlaeger_y < 21
  Schlaeger_y = 20
ElseIf Schlaeger_y > 460 - 30
  Schlaeger_y = 460 - 30
EndIf

Ball_Beweg_x + Ball_x
Ball_Beweg_y + Ball_y

If Ball_x < 20
  Ball_Beweg_x = 1
EndIf

If Ball_y < 20
  Ball_Beweg_y = 1
EndIf

If Ball_y < 460
  Ball_Beweg_y = -1
EndIf

If Ball_x > Schlaeger_y And Ball_x < Schlaeger_x + 10  And Ball_y > Schlaeger_y And Ball_y < Schlaeger_y + 30
  Ball_Beweg_x = - 1
EndIf

Until KeyboardPushed(1) Or Ball_x = 640
So ist alles ok nur bewegt sich der ball nicht. Nur warum?

Edit by Kiffi: Betreff geändert

Verfasst: 18.05.2005 20:36
von AndyX
Da veränderst ja nich die Variable Ball_x und y sondern Ball_Beweg_x und y, zeigst den Ball aber mit Ball_X und y an, soweit ich das richtig gesehen habe.

Übrigens: Code-Tags setzen ;)

Greetz,
AndyX

Verfasst: 18.05.2005 20:53
von freedimension
Wie schon gesagt wurde, die Code-Tags das nächste Mal nicht vergessen! Ich hab die jetzt mal für dich gesetzt :)

Aussagekräftigerer Titel wäre auch nicht schlecht, Hilfe brauchen schließlich viele ;)

Verfasst: 20.05.2005 19:24
von deatwaz
ja danke beim nächsten mal code tags.
Werds mal ausprobieren.

Ähm @andyX wo vernäer ich die anders an welcher stelle?

Verfasst: 20.05.2005 21:53
von zigapeda

Code: Alles auswählen

InitSprite()
InitKeyboard()
OpenScreen(640,480,16,"Pong")
Global Ball_x .w
Global Ball_y .w
Global Schlaeger_x .w
Global Schlaeger_y .w
Global Ball_Beweg_x .w
Global Ball_Beweg_y .w

Ball_x = 319
Ball_y = 239
Ball_Beweg_x = -1
Ball_Beweg_y = -1
Schlaeger_x = 639 - 10
Schlaeger_y = 479 - (30/2)

Repeat

FlipBuffers()
ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
FrontColor(255,255,255)
Box(0,0,20,480)
Box(0,0,640,20)
Box(0,460,640,20)
Box(Schlaeger_x,Schlaeger_y,10,30)
Box(Ball_x-1,Ball_y-1,3,3)
StopDrawing()

ExamineKeyboard()
If KeyboardPushed (200)
  Schlaeger_y - 1
EndIf
If KeyboardPushed (208)
  Schlaeger_y +1
EndIf

If Schlaeger_y < 21
  Schlaeger_y = 20
ElseIf Schlaeger_y > 460 - 30
  Schlaeger_y = 460 - 30
EndIf

Ball_Beweg_x + Ball_x ;hier musst du was ändern z.B. Ball_x = davor setzen - in der nächsten zeile das gleiche nur mit Ball_y = .
Ball_Beweg_y + Ball_y

If Ball_x < 20
  Ball_Beweg_x = 1
EndIf

If Ball_y < 20
  Ball_Beweg_y = 1
EndIf

If Ball_y < 460
  Ball_Beweg_y = -1
EndIf

If Ball_x > Schlaeger_y And Ball_x < Schlaeger_x + 10  And Ball_y > Schlaeger_y And Ball_y < Schlaeger_y + 30
  Ball_Beweg_x = - 1
EndIf

Until KeyboardPushed(1) Or Ball_x = 640
so das ist eigentlich das einzigste was ich jetzt gesehen hab aber irgendetwas ist da noch falsch aber ich finde es nicht. kann da vieleicht ein anderer schauen

Verfasst: 21.05.2005 10:15
von deatwaz
hm da hat sich nicht viel verändert ist immer noch das gleiche wenn ich des spiel starte.

Verfasst: 21.05.2005 11:25
von The Gimp

Code: Alles auswählen

InitSprite()
InitKeyboard()
OpenScreen(640,480,16,"Pong")
Global BallX.w
Global BallY.w
Global SchlaegerX.w
Global SchlaegerY.w
Global BewegX.w
Global BewegY.w

BallX = 319
BallY = 239
BewegX = -1
BewegY = -1
SchlaegerX = 639 - 10
SchlaegerY = 239 - (30 / 2)

Repeat

ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
FrontColor(255,255,255)
Box(0,0,20,480)
Box(0,0,640,20)
Box(0,460,640,20)
Box(SchlaegerX,SchlaegerY,10,30)
Box(BallX-1,BallY-1,3,3)
StopDrawing()
FlipBuffers()

ExamineKeyboard()
If KeyboardPushed(200)
 SchlaegerY - 1
EndIf
If KeyboardPushed(208)
 SchlaegerY + 1
EndIf

If SchlaegerY < 21
 SchlaegerY = 20
ElseIf SchlaegerY > 460 - 30
 SchlaegerY = 460 - 30
EndIf

BallX + BewegX
BallY + BewegY

If BallX < 20
 BewegX = 1
EndIf
If BallY < 20 
 BewegY = 1
EndIf
If BallY > 460
 BewegY = -1
EndIf

If BallX > SchlaegerX And BallX < SchlaegerX + 10 And BallY > SchlaegerY And BallY < SchlaegerY + 30
 BewegX = -1
EndIf

Until KeyboardPushed(1) Or BallX > 640
funzt doch wunderbar!!!

Verfasst: 21.05.2005 11:50
von zigapeda
Herzblut hat geschrieben:hm da hat sich nicht viel verändert ist immer noch das gleiche wenn ich des spiel starte.
Ich hab dir auch nix verändert sondern einen Kommentar eingefügt was du verändern musst bevor es geht.
Kommentar ist in PB anderst eingefärbt und beginnt mit einem Semikolon (= ; )

Verfasst: 21.05.2005 13:50
von deatwaz
hm @7r@ub0rnm057 geht immo noch net es kommt ein schwarzer screen und dann gehts aus.

@zigapeda öhm ok sry habe ich nicht gesehen, geht aber immo noch net. :cry:

könnte es vieleicht drann liegen das ich die demo version habe?

Verfasst: 21.05.2005 14:05
von AndyX
Nein an der Demo-Version kann es nicht liegen. Die unterstützt alles bis auf DLLs und WinAPI und das verwendest du ja nicht.

Der Code, den 7r@ub0rnm057 gepostet hat, sollte eigentlich funktionieren. Bei mir geht er.

Greeeeetz