Ping Pong (problem!)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

SonGoku

Betreff: Ping Pong (problem!)

BeitragSa, März 05, 2005 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
bin grad dabei ein Ping Pong spiel zu programmieren.
Ich kann es nicht fortsetzen, weil ich noch paar probleme habe Confused
Wenn ich das Spiel von BB aus starte, bekomme ich eine fehlermeldung,
und zwar "Images does not exist",obwohl es schon geladen ist.
Könnt ihr mir bitte weiterhelfen Question

Hier der Quellcode (ist mein erstes spiel) :

Code: [AUSKLAPPEN]

;Start
Graphics 640,480,16,2
AppTitle "Ping Pong"

Balken = LoadImage("Balken.bmp")
MaskImage Balken,0,0,255
Ball = LoadImage("Ball.bmp")
MaskImage Ball, 0,0,255
Wand = LoadImage("Wand.bmp")


While Not KeyHit(1)
Cls
DrawImage Wand,0,0
DrawImage Balken,20,110
DrawImage Ball,60,110
Ball = Rnd(640,480)
balken_speed()
If Ball = Balken Then Rnd(620,480)
If Ball = Wand Then End
Flip
Wend
End

Function balken_speed()
    If KeyDown(200) Then Balken=Balken-10
    If KeyDown(208) Then Balken=Balken+10
End Function
;Ende
Projekt "BlitzPong" --> 100%

BRL Account mit Blitz3D und BlitzMax für nur 67€!!!
Das Buch "Spiele programmieren mit Blitz Basic" für nur 15€!!!

jhabekost

BeitragSa, März 05, 2005 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
sicher das die datei schon gespeichert ist?
und sicher das die imagenamen stimmen?
edit:irgendwie blicke ich durch deinen quellcode nicht durch Shocked
  • Zuletzt bearbeitet von jhabekost am Sa, März 05, 2005 14:51, insgesamt einmal bearbeitet

blitzmaster

BeitragSa, März 05, 2005 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
DU HAST JA AUCH DIE IMAGEVARIABLE MIT NEM ZUFÄLIIGEN WERT ÜBERSCHRIEBEN!!!!
***************
Blitzmaster
  • Zuletzt bearbeitet von blitzmaster am Sa, März 05, 2005 14:53, insgesamt einmal bearbeitet

BladeRunner

Moderator

BeitragSa, März 05, 2005 14:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Waaaargh!
Du überschreibst ja auch das Imagehandle "Ball" mit einem zufälligen Wert. Das kann gar nicht gehen.
Ich weiss ja nicht was Du mit diesen Zufallszuweisungen erreichen willst, aber das Bildhandle darfst du keinenfalls ändern.

Du solltest dich über Variablen nochmal etwas schlauer machen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

simi

BeitragSa, März 05, 2005 14:52
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Beim laden eines Images, wird die Speicheradresse von diesem in die angegeben Variable "geschrieben".
Code: [AUSKLAPPEN]

Ball = LoadImage("Ball.bmp")
repeat
DrawImage Ball,60,110
Ball = Rnd(640,480)
forever


So hast du deinen Code geschrieben. Ball enthält dann plötzlich einen andren Wert, und hat nicht mehr die Adresse, BlitzBasic findet denn Ball nicht mehr und gibt aus Verzweiflung eine Fehlermeldung aus Arrow Lösung: eine andere Variable für den Zufallswert benutzen....

Ansonsten, was willst du überhaupt mit diesem Code anfangen?? Confused

//edit: 500 Post, aber leider zu spät Very Happy Crying or Very sad

SonGoku

BeitragSa, März 05, 2005 15:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso,
ok danke,
Mit Code: [AUSKLAPPEN]
Rnd(620,480)
wollte ich nur, dass der Ball nicht immer in die
gleiche Richtung fliegt, sondern immer woanders hin, nachdem
der Ball den Balken berührt. Man muss dort doch den "Rnd" befehl
benutzen Confused (muss man Question )
Projekt "BlitzPong" --> 100%

BRL Account mit Blitz3D und BlitzMax für nur 67€!!!
Das Buch "Spiele programmieren mit Blitz Basic" für nur 15€!!!

BladeRunner

Moderator

BeitragSa, März 05, 2005 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Sie dir mal die Beschreibung zu Rand/Rnd in der OnlineHilfe nochmal genau an.
1. gibt Rnd was zurück, daher sind Konstrukte wie if ... then rnd(640,480) vollkommen sinnlos.
2. vermute ich dass du keinen blassen hast was die Parameter bei rnd() zu bedeuten haben.
also:
üben bis verstehen, dann wiederkommen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Alfadur

BeitragSa, März 05, 2005 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
wie schon gesagt, das imagehandle nicht überschreiben. außerdem benutzt du dieses eine imagehandle, diese variable, auch für alles mögliche andere. einmal um das bild zu malen, einmal für die kollision, einmal für die x und y!!! position des balles... hey, du kannst ein programm auch mit mehr als 3 variablen schreiben, das geht echt...
A Cray is the only computer that runs an endless loop in less than four hours.

Diablo

BeitragSa, März 05, 2005 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
guck dir mal das hier an: BB Ping-Pong TUT[/url]
www.pb-software.de.vu

Meine Entwicklungsseite

SonGoku

BeitragSa, März 05, 2005 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Very Happy
Projekt "BlitzPong" --> 100%

BRL Account mit Blitz3D und BlitzMax für nur 67€!!!
Das Buch "Spiele programmieren mit Blitz Basic" für nur 15€!!!

SonGoku

BeitragSo, März 06, 2005 20:02
Antworten mit Zitat
Benutzer-Profile anzeigen
So, du hattest völlig recht BladeRunner, ich hatte
keinen blassen, was die Parameter bei rnd() zu bedeuten haben.
Also, habe ich mich hingesetzt und die erklärung so oft gelesen,
bis ich es verstanden habe Very Happy
Danach habe ich mal den TUT gelesen und hab es jetzt verstanden,
wie die kollisionen funktionieren. Aber eines kann ich immer
noch nicht. Ich hab mein Schläger als bitmap und bei den TUT wird
es nicht erklärt, wie man ein .bmp Ball mit einem .bmp Schläger
kollidieren lässt. Ich hab schon seit gestern dran gearbeitet, aber
ohne erfolg.
Könnt ihr mir mal erklären, wie man es anstellen kann Question

Hier mein neuer Quellcode (diesmal noch übersichtlicher) :

Code: [AUSKLAPPEN]

;Projekt : Ping Pong
;Programmierer : SonGoku
;Datum : 05.03.2005 13:03

;Start
Graphics 640,480,16,2
AppTitle "Ping Pong"

SetBuffer BackBuffer()

;Variablen
Balken = LoadImage("Balken.bmp") ;Schläger var.
MaskImage Balken,0,0,255
Ball = LoadImage("Ball.bmp")     ;Ball var.
MaskImage Ball, 0,0,255
Wand = LoadImage("Wand.bmp")     ;Wand var.

balkenx = 20                     ;Schläger : breite
balkeny = 110                    ;Schläger : länge

ballx = 60                       ;Ball : breite
bally = 110                      ;Ball : länge

bewegenx = 3                     ;Ball speed x
bewegeny = 3                     ;Ball speed y

;Hauptschleife
While Not KeyHit(1)
Cls
DrawImage Wand,0,0               ;Wand(Wand.bmp) zeichnen
DrawImage Balken,Balkenx,Balkeny ;Schläger(Balken.bmp) zeichnen und die länge,breite (balkenx,y) zuweisen
DrawImage Ball,ballx,bally       ;Ball(Ball.bmp) zeichnen und die länge,breite (ballx,y) zuweisen
If KeyDown(200) Then balkeny = balkeny-2 ;Wenn Taste (nach oben) gedrückt wird, dann den Schläger nach oben bewegen.
If KeyDown(208) Then balkeny = balkeny+2 ;Wenn Taste (nach unten) gedrückt wird, dann den Schläger nach unten bewegen.
ballx = ballx+bewegenx                   ;Ball nach links/rechts bewegen
bally = bally+bewegeny                   ;Ball nach oben/unten bewegen
If bally > 480-30 Then bewegeny = -3     ;Ball kollision (rechte Wandberührung)
If bally < 0 Then bewegeny = +3          ;Ball kollision (obere Wandberührung)
If ballx > 640-30 Then bewegenx = -3     ;Ball kollision (untere Wandberührung)
If ballx = 0 Then End                    ;Wenn der Ball den Außenwand berührt dann Ende
Flip
Wend
End
;Ende
Projekt "BlitzPong" --> 100%

BRL Account mit Blitz3D und BlitzMax für nur 67€!!!
Das Buch "Spiele programmieren mit Blitz Basic" für nur 15€!!!
 

noir

BeitragSo, März 06, 2005 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Ich hab mein Schläger als bitmap und bei den TUT wird
es nicht erklärt, wie man ein .bmp Ball mit einem .bmp Schläger
kollidieren lässt. Ich hab schon seit gestern dran gearbeitet, aber
ohne erfolg.


damit: http://www.blitzbase.de/befehl...ollide.htm

Code: [AUSKLAPPEN]
if IMAGESCOLLIDE (ball, X1, Y1, 0, schlaeger, X2, Y2, 0) then
;mach was
endif
Fragt und man wird euch helfen

Das Alternativ BlitzBasic-Forum: FreeCoder
Einfach chatten: BlitzChat
Code&Text schnell und einfach pasten: FreePasting

SonGoku

BeitragSo, März 06, 2005 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Endlich hab ich es dank noir geschaft ^^
Danke Noir, dass du mir geholfen hast Very Happy

Jetzt kann ich mein minispiel weiter Proggen (endlich) 8)

Nochmals Danke!
Projekt "BlitzPong" --> 100%

BRL Account mit Blitz3D und BlitzMax für nur 67€!!!
Das Buch "Spiele programmieren mit Blitz Basic" für nur 15€!!!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group