Bei Ping-Pong auch hoch und runter
Übersicht

enazBetreff: Bei Ping-Pong auch hoch und runter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie bekomme ich das hin dass ich bei ping-pong auch hoch und runter gehen kann?
Quasi so wie bei einem Tennisspiel ohne Netz. Versuche es schon 3 Stunden,aber ich schaffe es einfach nicht. Hoffe ihr könnt mir helfen Code: [AUSKLAPPEN] global xmax=1024,ymax=768
Graphics xmax,ymax,32,1 SetBuffer BackBuffer() Global frametimer = CreateTimer(60) SeedRnd MilliSecs() Global kugel=LoadImage("kugel.bmp");damit wird die Kugel in eine Variable geladen MidHandle kugel ;der Urspung wird auf den Mittelpunkt gelegt, das macht sich bei Berechnungen besser ;auf das Einstellen der Tranzparenzfarbe kann verzichtet werden, weil sie Standard mäßig schwarz ist. MaskImage kugel,255,255,255 Global spieler1=LoadImage("schlaeger.bmp");damit ist der Untere gemeint MidHandle spieler1;auch dieser bekommt seine Ursprung in die Mitte (s.Kugel) MaskImage spieler1,255,255,255;hier müssen wir die Tranzparenzfarbe angeben, weil sie vom Standard abweicht Global spieler2=LoadImage("schlaeger.bmp");damit ist der Obere gemeint MidHandle spieler2;auch dieser bekommt seine Ursprung in die Mitte (s.Kugel) MaskImage spieler2,255,255,255;hier müssen wir die Tranzparenzfarbe angeben, weil sie vom Standard abweicht Global xsp1=xmax/2;also in der Mitte Global xsp2=xmax/2 Global sp1st Global sp2st Global xkugel# Global ykugel# Global winkel Global geschwindigkeit=5 Global fehlersp1 Global fehlersp2 Global beweglichkeit ClsColor 255,32,0;damit wird der Hintergrund rot, du kanst sonst die Spieler und Seitenwände nicht sehen resetkugel;damit sie an der richtigen Position ist Repeat Waittimer (frametimer) beweglichkeit=geschwindigkeit If KeyHit(14) Then resetkugel;wenn die Löschen Taste gedrückt wurde wird die Kugel zurück gesetzt ;die Spielersteuerung If KeyHit(2) Then sp1st=sp1st+1;die Zahlentaste 1 If KeyHit(3) Then sp2st=sp2st+1;die Zahlentaste 2 If sp1st>2 then sp1st=0 If sp2st>2 then sp2st=0 ;die automatische Steuerung, wenn die Steuerungsvariable 0 ist: If xsp1>xkugel And sp1st=0 Then xsp1=xsp1-beweglichkeit If xsp1<xkugel And sp1st=0 Then xsp1=xsp1+beweglichkeit If xsp2>xkugel And sp2st=0 Then xsp2=xsp2-beweglichkeit If xsp2<xkugel And sp2st=0 Then xsp2=xsp2+beweglichkeit ;die Tastatursteuerung, wenn die Steuerungsvariable 1 ist: If KeyDown(203) And sp1st=1 Then xsp1=xsp1-beweglichkeit;linke Pfeiltaste If KeyDown(205) And sp1st=1 Then xsp1=xsp1+beweglichkeit;rechte Pfeiltaste If KeyDown(44) And sp2st=1 Then xsp2=xsp2-beweglichkeit;Y Taste If KeyDown(45) And sp2st=1 Then xsp2=xsp2+beweglichkeit;X Taste ;die Maussteuerung, wenn die Steuerungsvariable 2 ist: If sp1st=2 Then xsp1=xsp1+MouseXSpeed() If sp2st=2 then xsp2=xsp2+MouseXSpeed() ;die Überprüfung: If xsp1<70 Then xsp1=70 If xsp1>xmax-70 Then xsp1=xmax-70 If xsp2<70 Then xsp2=70 If xsp2>xmax-70 Then xsp2=xmax-70 ;die Kollisionsabfrage der Spieler If ImagesCollide(spieler1,xsp1,ymax-10,0,kugel,xkugel,ykugel,0) Then;wenn eine Kollision ist winkel=360-winkel ;prallt die Kugel ab abweichung=2*(xsp1-xkugel) ;damit kannst du die Richtung der Kugel steuern winkel=winkel+abweichung EndIf If ImagesCollide(spieler2,xsp2,10,0,kugel,xkugel,ykugel,0) Then winkel=360-winkel abweichung=2*(xsp2-xkugel) winkel=winkel-abweichung EndIf ;damit der Winkel nicht über den Bereich von 0-360 geht: If winkel>360 Then winkel=winkel-360 If winkel<0 Then winkel=winkel+360 ;Kollisionsabfrage Seitenwände If xkugel<60 Then winkel=180-winkel ;damit prallt die Kugel ab EndIf If xkugel>xmax-60 Then winkel=180-winkel EndIf ;wenn die Kugel durchgelassen wurde If ykugel<-10 Then ;oben fehlersp2=fehlersp2+1 ;der Obere bekommt einen Fehlerpunkt dazu resetkugel ;ein Funktionsaufruf EndIf If ykugel>ymax+10 Then ;unten fehlersp1=fehlersp1+1 ;der Untere bekommt einen Fehlerpunkt dazu resetkugel ;ein Funktionsaufruf EndIf ;das Berechnen der Kugelkoordinaten xkugel=xkugel+Cos(winkel)*geschwindigkeit ykugel=ykugel-Sin(winkel)*geschwindigkeit ;einige Informationen werden auf den Bildschirm gemalt Text 200,300,"Geschwindigkeit:" + geschwindigkeit Text 500,300,"Spielstand: "+fehlersp2 + " : " + fehlersp1 ;damit du die Steuerungsart sehen kannst Text 55,ymax-25,"Spieler1" If sp1st>0 Then If sp1st=2 Then Text 120,ymax-25,"Maussteuerung" Else Text 120,ymax-25,"Tastatursteuerung" Else Text 120,ymax-25,"Computer" EndIf ;If spieler1man>0 Then Text 250,ymax-25,scorep1 Text 55,5,"Spieler2" If sp2st>0 Then If sp2st=2 Then Text 120,5,"Maussteuerung" Else Text 120,5,"Tastatursteuerung" Endif Else Text 120,5,"Computer" EndIf DrawImage kugel,xkugel,ykugel;nur damit man sieht, das sie existiert DrawImage spieler1,xsp1,ymax-10 DrawImage spieler2,xsp2,10 Flip ;da wir den Hintergrundpuffer aktiviert haben, wechseln wir jetzt die Seiten, damit wir was sehen Cls ;der nichtsichtbare Bereich wird gelöscht Until KeyHit(1) End Function resetkugel() xkugel=xmax/2:ykugel=ymax/2 If Rand(0,1)=1 Then winkel=Rand(105,45) Else winkel=Rand(315,225);der Winkel wird durch Zufall ermittelt End Function |
||
![]() |
Kleiner satan |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie meinst du hoch und runter? | ||
enaz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
bei normalen Ping-Pong kan man nur nach Links und nach Rechts. Ich möchte jedoch dass man mit dem Schläger auch hoch un runter gehen kann.
Sorry hab mich ein bisschen schlecht ausgedrückt |
||
![]() |
Schranz0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] DrawImage spieler1,xsp1,MouseY()
Mit der Tastertursteuerung musst du halt per Tastendruck den Y wert verändern. EDIT: Oder MouseYSpeed() teste einfach, was dir lieber ist. |
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
- Zuletzt bearbeitet von Schranz0r am So, Okt 08, 2006 21:25, insgesamt einmal bearbeitet
![]() |
robotx |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du veränderst die Y Position deines Spielers. Genauso wie bei der X -Achse.
IF KeyDown(up_key) Then ypos = ypos +1 If KeyDown(down_key) Then ypos = ypos -1 DrawImage schläger,xpos,ypos Nur mal so als Pseudo Code. mfg robotx |
||
www.botbomb.robotzgames.de
www.robotzgames.de |
![]() |
Schranz0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
robotx hat Folgendes geschrieben: IF KeyDown(up_key) Then ypos = ypos +1 If KeyDown(down_key) Then ypos = ypos -1 Falsch, er hat B3D und net BMax deshalb: Code: [AUSKLAPPEN] If KeyDown(208) Then ypos = ypos +1 If KeyDown(200) Then ypos = ypos -1 |
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
![]() |
robotx |
![]() Antworten mit Zitat ![]() |
---|---|---|
War eigentlich auch für B3D gedacht, mir sind nur die Scancodes nicht eingefallen, deshalb up_key...und der Hinweis auf Pseudo Code.
![]() mfg robotx |
||
www.botbomb.robotzgames.de
www.robotzgames.de |
enaz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
könnnte einer das vll. einer an meinem Code zeigen?
Bin nämlcih noch nich so erfahren |
||
![]() |
Schranz0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
na das machst du schon schön selber.. ![]() ich gib dir nen Tip: Code: [AUSKLAPPEN] ;die Tastatursteuerung, wenn die Steuerungsvariable 1 ist:
If KeyDown(203) And sp1st=1 Then xsp1=xsp1-beweglichkeit;linke Pfeiltaste If KeyDown(205) And sp1st=1 Then xsp1=xsp1+beweglichkeit;rechte Pfeiltaste da kommt es hin ! |
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
enaz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] If KeyDown(208) And sp1st=1 Then ysp1=ysp1-beweglichkeit
If KeyDown(200) And sp1st=1 Then ysp1=ysp1+beweglichkeit x habe ich also mit y ersetzt doch es passiert nix. |
||
![]() |
robotx |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] ;die Tastatursteuerung, wenn die Steuerungsvariable 1 ist: If KeyDown(203) And sp1st=1 Then xsp1=xsp1-beweglichkeit;linke Pfeiltaste If KeyDown(205) And sp1st=1 Then xsp1=xsp1+beweglichkeit;rechte Pfeiltaste If KeyDown(208) And sp1st=1 Then ysp1 = ysp1 + beweglichkeit If KeyDown(200) And sp1st=1 Then ysp1 = ysp1 - beweglichkeit Hier mal die Tasterturabfrage für deinen Schläger 1. Dies musst du dann noch für deinen 2. Schläger einfügen. Code: [AUSKLAPPEN] DrawImage spieler1,xsp1,ysp1 Und das noch! mfg robotx PS: Fehler sind beabsichtigt und dienen der allgemeinen Belustigung Edit: Wieso bin ich so langsam?! |
||
www.botbomb.robotzgames.de
www.robotzgames.de |
![]() |
Schranz0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
enaz hat Folgendes geschrieben: Code: [AUSKLAPPEN]
If KeyDown(208) And sp1st=1 Then ysp1=ysp1-beweglichkeit
If KeyDown(200) And sp1st=1 Then ysp1=ysp1+beweglichkeit x habe ich also mit y ersetzt doch es passiert nix. Kann ja auch nicht: Code: [AUSKLAPPEN] Global xsp1=xmax/2 ;also in der Mitte Global ysp1=ymax-10 ;10 Pixel über den unteren Rand dann musst du noch den Player so zeichen: such die stelle: Code: [AUSKLAPPEN] DrawImage spieler1,xsp1,ymax-10
und ersetzte mit Code: [AUSKLAPPEN] DrawImage spieler1,xsp1,ysp1
|
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
enaz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
juhu vielen dank an euch.habt mir sehr weitergeholfen. | ||
![]() |
Schranz0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
enaz hat Folgendes geschrieben: juhu vielen dank an euch.habt mir sehr weitergeholfen.
Euch? Nagut wenn du das sagst... ![]() PS.: Schön tutorials lesen! |
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group