Wie programmier ich ein einfaches PingPong ?

Übersicht BlitzBasic FAQ und Tutorials

Neue Antwort erstellen

 

cyby

Betreff: Wie programmier ich ein einfaches PingPong ?

BeitragMo, Jul 26, 2004 18:32
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,

habe gestern für einen Freund eine kleine PingPong Tutorial geschrieben, vielleicht hilft es jemanden ^^ !
Unterteilt in 4Teile , wenn ein gutes Feedback kommt werde ich wohl noch mehr schreiben Wink
Code: [AUSKLAPPEN]
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;Ping Pong Tutorial
;25.7.2004
;by cyby
;Tutorial1
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;e-mail: cyby-online@web.de
;homepage: www.selobrain.de
;Ihr dürft das Tutorial frei verwenden,weitergeben erändern ect. ! Wenn ihr es auf eure Seite stellen
;wollt wäre eine kleine Benachrichtigung nett , nicht das ich Überraschungen erlebe .
;Willkommen zu einer Tutorial, in der sie ein ganz einfaches Spiel schreiben . Jeder kennt es und das
;Spielprinzip ist jedem klar . PingPong ! Man hat einen Schläger womit man den rumfliegenden Ball
;abwähre muss !
;Vorraussetzung sind einfache Programmierkenntnisse wie Schleife,Variablen und ein bischen 2d.
;Erlernen könnt ihr dies am besten durch Tutorials die ihr auf www.robsite.de oder www.blizbase.de
;findet !
;
;Spielfeldaufbau:
;Oben , Unten und Rechts sind Blöcke wo der Ball zurück fliegt und die Linke Seite ist frei wo der
;Schläger ist .
;Steuerung:
;Der Schläger wird mit den Pfeiltaste "hoch" nach oben und mit "unter" nach unten bewegt , beenedet wird
;das Spiel mit ESCAPE .
;
;Am besten wir fangen mal an....
Graphics 640,480,16,2 ;das starten es Bildschiermes
;graphics breite,höhe,farbtiefe,modus (0 = normal , 2 = fenster)
SetBuffer BackBuffer();den Buffer starten wo die Grafiken rein geschrieben werden...

;hauptschleife
Repeat ;starten der Repeat-Until Schleife
Cls ;löscht den Bildschierm bei den durchlauf der Schleife


Flip ;flipt alles, damit die Bilder ect. bewegt werden
Until KeyHit(1) ;ende der Hauptschleife
;Keyhit(code)  ;code ist die Nummer der Taste , hier 1 für ESCAPE
End ;alles beenden , damit nicht immer das Fenster am Schluss kommt

;So das wars auch schon mit der 1ten Tutorial, in der 2ten Zeichnen wir die 3 Blöcke,den Schläger und
;den Ball .

Code: [AUSKLAPPEN]
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;Ping Pong Tutorial
;25.7.2004
;by cyby
;Tutorial2
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;e-mail: cyby-online@web.de
;homepage: www.selobrain.de
;Ihr dürft das Tutorial frei verwenden,weitergeben erändern ect. ! Wenn ihr es auf eure Seite stellen
;wollt wäre eine kleine Benachrichtigung nett , nicht das ich Überraschungen erlebe .
;Wie schon in Tutorial 1 gesagt werden wir jetzte die 3 Blöcke,den Schläger und den Ball zeichnen.
;
;Am besten wir fangen mal an....
Graphics 640,480,16,2 ;das starten es Bildschiermes
;graphics breite,höhe,farbtiefe,modus (0 = normal , 2 = fenster)
SetBuffer BackBuffer();den Buffer starten wo die Grafiken rein geschrieben werden...

;variablen deklarieren(=zuweisen)
;nun werden wir ein paar Variablen für die Schlägerx/-Schlägery-Possition und Ballx/-Bally-Possition
;deklarieren

schlaegerx = 5 ;6 pixel vom linken Rand weg , da es bei 0 anfängt - x = waagerecht
schlaegery = (480/2)-15 ;226 pixel vom oberen Rand weg, da es bei 0 anfängt - y = senkrecht
;480/2 also, die Höhe des Bildschiermes ist 480 und die durch 2 Teilen = 240
;(480/2)-15 = 240-15 , da der Schläger 30 Pixel hoch ist und wir die obere Linke Ecke vom Schläger
;brauchen um ihn zu zeichnen

ballx = (640/2)-2; 317 Pixel vom linken Rand weg
bally = (480/2)-2; 237 Pixel vom oberem Rand weg
;die Formeln (640/2)-2 und (480/2)-2 sollten sich von oben her alleine erklären
 
;hauptschleife
Repeat ;starten der Repeat-Until Schleife
Cls ;löscht den Bildschierm bei den durchlauf der Schleife

;zeichnen von den Schlägern ...
;als erstes wollen wir mal eine Farbe für die Kästen und Kugel wählen
Color 255,255,255 ;alle Sachen wo jetzte danach geschrieben oder gezeichnet werden sind in der
;gewählten Farbe
;color rot,grün,blau
Rect schlaegerx,schlaegery,5,30;wir zeichnen einen Kasten mit der Breite 5 und der Höhe 30
;rect start x-possition,start y-possition,breite,höhe
Rect ballx,bally,2,2;wir zeichnen einen Ball in der Mitte des Bildschiermes
Rect 0,0,640,20;einen Balcken oben zeichnen
Rect 0,480-20,640,20;einen Balcken unten zeichnen
Rect 640-20,0,20,480;einen Balcken hinten zeichnen


Flip ;flipt alles, damit die Bilder ect. bewegt werden
Until KeyHit(1) ;ende der Hauptschleife
;Keyhit(code)  ;code ist die Nummer der Taste , hier 1 für ESCAPE
End ;alles beenden , damit nicht immer das Fenster am Schluss kommt

;So, das war es auch schon mit der 2ten Tutorial , in der 3ten werden wir lernen wir man den Schläger
;bewegt.

Code: [AUSKLAPPEN]
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;Ping Pong Tutorial
;25.7.2004
;by cyby
;Tutorial3
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;e-mail: cyby-online@web.de
;homepage: www.selobrain.de
;Ihr dürft das Tutorial frei verwenden,weitergeben erändern ect. ! Wenn ihr es auf eure Seite stellen
;wollt wäre eine kleine Benachrichtigung nett , nicht das ich Überraschungen erlebe .
;Wie schon in Tutorial 2 gesagt werden wir jetzte den Schläger bewegen .
;
;Am besten wir fangen mal an....
Graphics 640,480,16,2 ;das starten es Bildschiermes
;graphics breite,höhe,farbtiefe,modus (0 = normal , 2 = fenster)
SetBuffer BackBuffer();den Buffer starten wo die Grafiken rein geschrieben werden...

;variablen deklarieren(=zuweisen)
;nun werden wir ein paar Variablen für die Schlägerx/-Schlägery-Possition und Ballx/-Bally-Possition
;deklarieren

schlaegerx = 5 ;6 pixel vom linken Rand weg , da es bei 0 anfängt - x = waagerecht
schlaegery = (480/2)-15 ;226 pixel vom oberen Rand weg, da es bei 0 anfängt - y = senkrecht
;480/2 also, die Höhe des Bildschiermes ist 480 und die durch 2 Teilen = 240
;(480/2)-15 = 240-15 , da der Schläger 30 Pixel hoch ist und wir die obere Linke Ecke vom Schläger
;brauchen um ihn zu zeichnen

ballx = (640/2)-2; 317 Pixel vom linken Rand weg
bally = (480/2)-2; 237 Pixel vom oberem Rand weg
;die Formeln (640/2)-2 und (480/2)-2 sollten sich von oben her alleine erklären
 
;hauptschleife
Repeat ;starten der Repeat-Until Schleife
Cls ;löscht den Bildschierm bei den durchlauf der Schleife

;zeichnen von den Schlägern ...
;als erstes wollen wir mal eine Farbe für die Kästen und Kugel wählen
Color 255,255,255 ;alle Sachen wo jetzte danach geschrieben oder gezeichnet werden sind in der
;gewählten Farbe
;color rot,grün,blau
Rect schlaegerx,schlaegery,5,30;wir zeichnen einen Kasten mit der Breite 5 und der Höhe 30
;rect start x-possition,start y-possition,breite,höhe
Rect ballx,bally,2,2;wir zeichnen einen Ball in der Mitte des Bildschiermes
Rect 0,0,640,20;einen Balcken oben zeichnen
Rect 0,480-20,640,20;einen Balcken unten zeichnen
Rect 640-20,0,20,480;einen Balcken hinten zeichnen

;schläger bewegen
If KeyDown(200) Then ;wenn man die Pfeiltaste nach oben drückt
;dann wird der Schläger nach oben bewegt , also die Y-Possition vermindert
schlaegery = schlaegery - 5
EndIf
If KeyDown(208) Then ;das gleich nur nach unten
;nun wir die Y-Possition verhöht
schlaegery = schlaegery + 5
EndIf
;Da die Schläger aber unten und oben nicht weiter als die Balcken gehen dürfen müssen wir sie stoppen.
If schlaegery < 20 ;wenn der Schläger kleiner als 20 Pixel ist , wird er wieder auf 20 gesetzt
schlaegery = 20
EndIf
If schlaegery > 460-30;wenn er größer als 460 wird , wieder auf 460 setzten
schlaegery = 460-30;-30 , da der Schläger ja 30Pixel groß ist
EndIf

Flip ;flipt alles, damit die Bilder ect. bewegt werden
Until KeyHit(1) ;ende der Hauptschleife
;Keyhit(code)  ;code ist die Nummer der Taste , hier 1 für ESCAPE
End ;alles beenden , damit nicht immer das Fenster am Schluss kommt

;So, das war es auch schon mit der 3ten Tutorial , in der 4ten werden wir dann lernen wie sich der
;Ball bewegt

Code: [AUSKLAPPEN]

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;Ping Pong Tutorial
;25.7.2004
;by cyby
;Tutorial4
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;e-mail: cyby-online@web.de <mailto:cyby-online@web.de>
;homepage: www.selobrain.de <http://www.selobrain.de>
;Ihr dürft das Tutorial frei verwenden,weitergeben erändern ect. ! Wenn ihr es auf eure Seite stellen
;wollt wäre eine kleine Benachrichtigung nett , nicht das ich Überraschungen erlebe .
;Wie schon in Tutorial 3 gesagt werden wir jetzte den Ball bewegen .
;
;Am besten wir fangen mal an....
Graphics 640,480,16,2 ;das starten es Bildschiermes
;graphics breite,höhe,farbtiefe,modus (0 = normal , 2 = fenster)
SetBuffer BackBuffer();den Buffer starten wo die Grafiken rein geschrieben werden...

;variablen deklarieren(=zuweisen)
;nun werden wir ein paar Variablen für die Schlägerx/-Schlägery-Possition und Ballx/-Bally-Possition
;deklarieren

schlaegerx = 5 ;6 pixel vom linken Rand weg , da es bei 0 anfängt - x = waagerecht
schlaegery = (480/2)-15 ;226 pixel vom oberen Rand weg, da es bei 0 anfängt - y = senkrecht
;480/2 also, die Höhe des Bildschiermes ist 480 und die durch 2 Teilen = 240
;(480/2)-15 = 240-15 , da der Schläger 30 Pixel hoch ist und wir die obere Linke Ecke vom Schläger
;brauchen um ihn zu zeichnen

ballx = (640/2)-2; 317 Pixel vom linken Rand weg
bally = (480/2)-2; 237 Pixel vom oberem Rand weg
;die Formeln (640/2)-2 und (480/2)-2 sollten sich von oben her alleine erklären

;jetzte brauchen wir noch 2 variablen
bewegenx = 3;ist der speed womit sich später der Ball bewegt
bewegeny = 3;ist der speed womit sich später der Ball bewegt

;hauptschleife
Repeat ;starten der Repeat-Until Schleife
Cls ;löscht den Bildschierm bei den durchlauf der Schleife

;zeichnen von den Schlägern ...
;als erstes wollen wir mal eine Farbe für die Kästen und Kugel wählen
Color 255,255,255 ;alle Sachen wo jetzte danach geschrieben oder gezeichnet werden sind in der
;gewählten Farbe
;color rot,grün,blau
Rect schlaegerx,schlaegery,5,30;wir zeichnen einen Kasten mit der Breite 5 und der Höhe 30
;rect start x-possition,start y-possition,breite,höhe
Rect ballx,bally,2,2;wir zeichnen einen Ball in der Mitte des Bildschiermes
Rect 0,0,640,20;einen Balcken oben zeichnen
Rect 0,480-20,640,20;einen Balcken unten zeichnen
Rect 640-20,0,20,480;einen Balcken hinten zeichnen

;schläger bewegen
If KeyDown(200) Then ;wenn man die Pfeiltaste nach oben drückt
;dann wird der Schläger nach oben bewegt , also die Y-Possition vermindert
schlaegery = schlaegery - 5
EndIf
If KeyDown(208) Then ;das gleich nur nach unten
;nun wir die Y-Possition verhöht
schlaegery = schlaegery + 5
EndIf
;Da die Schläger aber unten und oben nicht weiter als die Balcken gehen dürfen müssen wir sie stoppen.
If schlaegery < 20 ;wenn der Schläger kleiner als 20 Pixel ist , wird er wieder auf 20 gesetzt
schlaegery = 20
EndIf
If schlaegery > 460-30;wenn er größer als 460 wird , wieder auf 460 setzten
schlaegery = 460-30;-30 , da der Schläger ja 30Pixel groß ist
EndIf


;Ball bewegen
ballx = ballx + bewegenx
bally = bally + bewegeny

;kollision vom ball mit Blöcken
If bally > 460-4 Then;mit dem unterem Block ; -4 da der Ball 4 Pixel groß ist
bewegeny = - 3;gerade die Y-Possition vermindern
EndIf
If bally < 20 Then;mit dem oberem Block
bewegeny = + 3;gerade die Y-Possition erhöhen
EndIf
If ballx > 620-4 Then ;mit dem hinterem Block
bewegenx = - 3;gerade die x-Possition vermindern
EndIf

;kollision mit dem Schläger
;ich habs in ein paar Schleife unterteilt das man es besser beschreiben kann, normal wird sowas
;aber mit and in eine Schleife gemacht !
If ballx < (schlaegerx+ 5);prüfen der vorderen Seite des Schlägers
;Wenn Ballx kleiner ( Schlägerx + Schläerbreite ) ist
If bally > schlaegery ;ist dazu da das nicht die ganze vordere Seite geprüft wird sonder nur
;unterhalb der Oberseite vom Schläger
;Wenn Bally größer Schlägery ist
If bally < (schlaegery+30);ist dazu da das nicht die ganze vordere Seite geprüft wird sonder nur
;oberhalb der Unterseite vom Schläger
;Wenn Ballx kleiner ( Schlägerx + Schlägerhöhe)

bewegenx = + 3;die X-Possition verhöhen

EndIf
EndIf
EndIf


Flip ;flipt alles, damit die Bilder ect. bewegt werden
Until KeyHit(1) Or ballx < 0;ende der Hauptschleife
;jetzte wird sie auch noch beendet wenn der Ball beim Schläger durch geht
;Keyhit(code) ;code ist die Nummer der Taste , hier 1 für ESCAPE
End ;alles beenden , damit nicht immer das Fenster am Schluss kommt

;So, das war es auch schon mit dem Tutorial !



Viel Glück und Spaß !!!!!!!!!!!!!!!!!!!
MfG
cyby Very Happy

//edit
Teil 4 wurde etwas überarbeitet da was mit der Kollision nicht stimmte, danke an JOKIO wo mir den Fehler meldete !
  • Zuletzt bearbeitet von cyby am Fr, Apr 08, 2005 21:24, insgesamt 2-mal bearbeitet
 

cyby

BeitragMo, Jul 26, 2004 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
mir sind ein paar Fortsetzungen eingefallen:
- 2 Player auf einem Computer
- 2 Player über Internet
- viel bessere kollision

was wollt ihr am liebsten haben ?

shure_kyu

Newsposter

BeitragSo, Sep 12, 2004 4:15
Antworten mit Zitat
Benutzer-Profile anzeigen
bin gerade über das ping pong tut gestolpert...
hier meine erweiterung:
+ cpu (is zwar nicht perfekt aber fürn anfang...)
+ spielfeld pass sich eigestellter auflösung an

Code: [AUSKLAPPEN]
AppTitle "paDDl WaRs v0.1b"
Graphics 400,300,16,2
Global xv%,yh%,balpx,ballpy%,gh%,gw%,bspeedx%,bspeedy%,speed%,pp%,gp%,cyh%,cxv% = 0
gh%=GraphicsHeight()
gw%=GraphicsWidth()
pp%=0
gp%=0
cxv%= gw%/2-50
cyh%= gh%-gh%+5
xv%= gw%/2-50
yh%= gh%-15
ballpx%=gw%/2-100
ballpy%= gh%/2
speed%=2
bspeedx%=speed%
bspeedy%=speed%
   Oval ballpx%,ballpy%,8,8,1       ;ball
   Rect xv%,yh%,50,10,1          ;paddle -U_
   Rect cxv%,cyh%,50,10,1       ;paddle -cPu_
   Rect 0,0,10,gh%,1            ;rechter rand gezeichnet
   Rect gw%-10,0,10,gh%,1         ;linker rand gezeichnet
Repeat:Text 20,20,"(esc) weiter":Flip:Until KeyHit(1)

SetBuffer BackBuffer()
Repeat
Cls
   Oval ballpx%,ballpy%,8,8,1       ;ball
   Rect xv%,yh%,50,10,1          ;paddle -U_
   Rect cxv%,cyh%,50,10,1       ;paddle -cPu_
   Rect 0,0,10,gh%,1            ;rechter rand gezeichnet
   Rect gw%-10,0,10,gh%,1         ;linker rand gezeichnet
   ;Rect 0,gh%-gh%,gw%,10,1      ;oberer rand gezeichnet
If KeyDown(203) Then xv%=xv%-3
If KeyDown(205) Then xv%=xv%+3
If xv% > gw% -50 -12 Then xv%=gw% -50 -12 ;abfrage ob paddl gegen linke wand kracht dann setze paddl auf position graphiswidth()- 50- 12
If xv% < gw% -gw% + 12 Then xv%=gw%-gw%+12   ;abfrage ob paddl gegen rechte wand kracht dann setze paddl auf gw% -gw% +12
   ballpx%=ballpx%+bspeedx%
   ballpy%=ballpy%+bspeedy%
If ballpx% >gw%-16 Then bspeedx%=-speed%       ;linker rand
;If ballpy% >gh%-16 Then bspeedy%=-speed%      ;unterer rand
If ballpx% <gw%-gw%+16 Then bspeedx%=+speed%    ;rechter rand
;If ballpy% <gh%-gh%+16 Then bspeedy%=+speed%    ;oberer rand
If ballpx% > xv% And ballpx% <(xv%+50) And ballpy% > (yh% - 8) And ballpy% < gh% -3 Then bspeedy%= -speed% ;kollision mit spieler paddl
;cpu
;###########
If cxv%  > gw% -50 -13 Then cxv%=gw% -50 -13 ;abfrage ob paddl gegen linke wand kracht dann setze paddl auf position graphiswidth()- 100- 12
If cxv% < gw% -gw% + 13 Then cxv%=gw%-gw%+13   ;abfrage ob paddl gegen rechte wand kracht dann setze paddl auf gw% -gw% +12
If (cxv%+20)  < ballpx% Then cxv%=cxv%+speed%/1.3  ;abfrage ob cpu paddl beim ball ist
If (cxv%+40) > ballpx% Then cxv%=cxv%-speed%/1.3   ;this too
If ballpx% > cxv% And ballpx% <(cxv%+50) And ballpy% < (cyh% + 8) And ballpy% > 3 Then bspeedy%= +speed% ;kollision mit cpu paddl
;###########


;unwichtig erstmal
;###########
If GetKey()=114 Then ballpx%=gw%/2:ballpy% = gh%/2
If ballpy% > gh% Then gp%=gp%+1:ballpx%=gw%/2:ballpy%=gh%/2 ;punkte gegner +1
If ballpy% < 0 Then pp%=pp%+1:ballpx%=gw%/2:ballpy%=gh%/2 ; punkte spieler +1
Text 20,20,"U:"+pp%+" / cpu:"+gp%
;###########
Flip
Until KeyHit(1)
End
 

Sibitiger

BeitragMo, Sep 20, 2004 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab bei deinem Code cyby noch 'ne kleine Pause eingebaut, den Ball größer gemacht und einen Zähler(der zählt wie oft der Ball durchgeht) gemacht...
achso shure du solltest bei dir mal an der Übersicht arbeiten, aber sonst ist dein's auch gut Smile
hier mein Code:
Code: [AUSKLAPPEN]

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;Ping Pong Tutorial
;25.7.2004
;by cyby
;Tutorial4
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;e-mail: cyby-online@web.de <mailto:cyby-online@web.de> <mailto:cyby-online@web.de>
;homepage: www.selobrain.de <http://www.selobrain.de> <http://www.selobrain.de>
;Ihr dürft das Tutorial frei verwenden,weitergeben erändern ect. ! Wenn ihr es auf eure Seite stellen
;wollt wäre eine kleine Benachrichtigung nett , nicht das ich Überraschungen erlebe .
;Wie schon in Tutorial 3 gesagt werden wir jetzte den Ball bewegen .
;
;Am besten wir fangen mal an....
Graphics 640,480,16,2 ;das starten es Bildschiermes
;graphics breite,höhe,farbtiefe,modus (0 = normal , 2 = fenster)
SetBuffer BackBuffer();den Buffer starten wo die Grafiken rein geschrieben werden...

;variablen deklarieren(=zuweisen)
;nun werden wir ein paar Variablen für die Schlägerx/-Schlägery-Possition und Ballx/-Bally-Possition
;deklarieren

durchgegangen=0 ;zählt nachher wie oft der Ball durchgegangen ist
schlaegerx = 5 ;6 pixel vom linken Rand weg , da es bei 0 anfängt - x = waagerecht
schlaegery = (480/2)-15 ;226 pixel vom oberen Rand weg, da es bei 0 anfängt - y = senkrecht
;480/2 also, die Höhe des Bildschiermes ist 480 und die durch 2 Teilen = 240
;(480/2)-15 = 240-15 , da der Schläger 30 Pixel hoch ist und wir die obere Linke Ecke vom Schläger
;brauchen um ihn zu zeichnen

ballx = (640/2)-5; 314 Pixel vom linken Rand weg
bally = (480/2)-5; 234 Pixel vom oberem Rand weg
;die Formeln (640/2)-2 und (480/2)-2 sollten sich von oben her alleine erklären

;jetzte brauchen wir noch 2 variablen
bewegenx = 3;ist der speed womit sich später der Ball bewegt
bewegeny = 3;ist der speed womit sich später der Ball bewegt

;hauptschleife
Repeat ;starten der Repeat-Until Schleife
Cls ;löscht den Bildschierm bei den durchlauf der Schleife

;zeichnen von den Schlägern ...
;als erstes wollen wir mal eine Farbe für die Kästen und Kugel wählen
Color 255,255,255 ;alle Sachen wo jetzte danach geschrieben oder gezeichnet werden sind in der
;gewählten Farbe
;color rot,grün,blau
Rect schlaegerx,schlaegery,7,40;wir zeichnen einen Kasten mit der Breite 5 und der Höhe 30
;rect start x-possition,start y-possition,breite,höhe
Oval ballx,bally,10,10;wir zeichnen einen Ball in der Mitte des Bildschiermes
Rect 0,0,640,20;einen Balcken oben zeichnen
Rect 0,480-20,640,20;einen Balcken unten zeichnen
Rect 640-20,0,20,480;einen Balcken hinten zeichnen

;schläger bewegen
If KeyDown(200) Then ;wenn man die Pfeiltaste nach oben drückt
;dann wird der Schläger nach oben bewegt , also die Y-Possition vermindert
schlaegery = schlaegery - 5
EndIf
If KeyDown(208) Then ;das gleich nur nach unten
;nun wir die Y-Possition verhöht
schlaegery = schlaegery + 5
EndIf
;Da die Schläger aber unten und oben nicht weiter als die Balcken gehen dürfen müssen wir sie stoppen.
If schlaegery < 20 ;wenn der Schläger kleiner als 20 Pixel ist , wird er wieder auf 20 gesetzt
schlaegery = 20
EndIf
If schlaegery > 460-40;wenn er größer als 460 wird , wieder auf 460 setzten
schlaegery = 460-40;-40 , da der Schläger ja 40Pixel groß ist
EndIf


;Ball bewegen
ballx = ballx + bewegenx
bally = bally + bewegeny

;kollision vom ball mit Blöcken
If bally > 460-10 Then;mit dem unterem Block ; -4 da der Ball 4 Pixel groß ist
bewegeny = - 3;gerade die Y-Possition vermindern
EndIf
If bally < 20 Then;mit dem oberem Block
bewegeny = + 3;gerade die Y-Possition erhöhen
EndIf
If ballx > 620-10 Then ;mit dem hinterem Block
bewegenx = - 3;gerade die x-Possition vermindern
EndIf

;kollision mit dem Schläger
;ich habs in ein paar Schleife unterteilt das man es besser beschreiben kann, normal wird sowas
;aber mit and in eine Schleife gemacht !
If ballx < (schlaegerx+ 7);prüfen der vorderen Seite des Schlägers
;Wenn Ballx kleiner ( Schlägerx + Schläerbreite ) ist
If bally > schlaegery ;ist dazu da das nicht die ganze vordere Seite geprüft wird sonder nur
;unterhalb der Oberseite vom Schläger
;Wenn Bally größer Schlägery ist
If bally < (schlaegery+40);ist dazu da das nicht die ganze vordere Seite geprüft wird sonder nur
;oberhalb der Unterseite vom Schläger
;Wenn Ballx kleiner ( Schlägerx + Schlägerhöhe)

bewegenx = + 3;die X-Possition verhöhen

EndIf
EndIf
EndIf

If ballx+10<0 Then;+10, weil der Ball 10 Pixel groß ist.Wenn der Ball durchgeht...
durchgegangen=durchgegangen+1;ist er einmal mehr durchgegangen
;Ball wieder in die mitte setzen:
ballx=640/2
bally=480/2
EndIf
Text 50,50,"Durchgegangen: "+durchgegangen+" mal",0,1;schreibt wie oft der Ball durchgegangen ist

If KeyHit(25) Then Pause;wenn P gedrückt wird springt man zur Pause Funktion

Flip ;flipt alles, damit die Bilder ect. bewegt werden
Until KeyHit(1);ende der Hauptschleife
;Keyhit(code) ;code ist die Nummer der Taste , hier 1 für ESCAPE
End ;alles beenden , damit nicht immer das Fenster am Schluss kommt

;So, das war es auch schon mit dem Tutorial !

Function Pause();das ist die Pause Funktion
Repeat
Text 320,240,"Pause, weiter mit P",1,1
If KeyHit(1) Then End;wenn Escape gedrückt wird, Ende
Flip
Until KeyHit(25)
End Function

Neue Antwort erstellen


Übersicht BlitzBasic FAQ und Tutorials

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group