Problem beim Erstellen eines Pong-Spieles, bitte Helfen.

Anfängerfragen zum Programmieren mit PureBasic.
deatwaz
Beiträge: 69
Registriert: 18.05.2005 20:17

Problem beim Erstellen eines Pong-Spieles, bitte Helfen.

Beitrag 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
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag 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
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag 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 ;)
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
deatwaz
Beiträge: 69
Registriert: 18.05.2005 20:17

Beitrag von deatwaz »

ja danke beim nächsten mal code tags.
Werds mal ausprobieren.

Ähm @andyX wo vernäer ich die anders an welcher stelle?
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag 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
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
deatwaz
Beiträge: 69
Registriert: 18.05.2005 20:17

Beitrag von deatwaz »

hm da hat sich nicht viel verändert ist immer noch das gleiche wenn ich des spiel starte.
Benutzeravatar
The Gimp
Beiträge: 15
Registriert: 16.03.2005 22:13

Beitrag 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!!!
Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag 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 (= ; )
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
deatwaz
Beiträge: 69
Registriert: 18.05.2005 20:17

Beitrag 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?
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

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