brick
Übersicht BlitzBasic Beginners-Corner
haubnaBetreff: brick |
Sa, Okt 11, 2008 16:37 Antworten mit Zitat |
|
---|---|---|
da ich nun mein ping pong spiel fertig habe wage ich mich an das spiel brick
aber ich habe ein problem ich möchte das mein ball bei jedem ziegel abprallt und wenn er ihn berührt das er verschwindet jedoch weis ich nicht wie ich das anstellen sollen bilddateien: ziegel 25*10 schläger 60*3 ball 6*6 hier der code: Code: [AUSKLAPPEN] Global xmax=1024, ymax=768 Global yy=xmax/2-150,yy2=712 Global xx=xmax/2+150,xx2=712 Global xkugel=xx+30,ykugel=706 Global xkugel2=yy+30,ykugel2=706 Global aziegel=17 Global bziegel=50 Global winkel=0 Global winkel2=0 Global kick1=0 Global kick2=0 Global menu2=1 Global leben=5 Global geschwindigkeit=6 Global geschwindigkeit2=6 Global b=1 Global a=Rnd(0,1) SeedRnd MilliSecs() Graphics xmax,ymax,32,1 SetBuffer BackBuffer() Global ball2=LoadImage("C:\Users\David\Pictures\ball.bmp") Global ball=LoadImage("C:\Users\David\Pictures\ball.bmp") Global schl=LoadImage("C:\Users\David\Desktop\Ping Pong\gfx\schlaeger.bmp") Global schlaeger2=LoadImage("C:\Users\David\Desktop\Ping Pong\gfx\schlaeger.bmp") Global ziegel2=LoadAnimImage("C:\Users\David\Desktop\Projekt\gfx\ziegel.bmp",25,10,0,1) Dim map(39,9) Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 For y = 0 To 9 For x = 0 To 39 Read map(x,y) Next Next Function ball() DrawImage ball,xkugel,ykugel DrawImage ball2,xkugel2,ykugel2 If kick2=0 Then xkugel2=yy+30 EndIf If kick2=1 Then xkugel2=xkugel2+Cos(winkel2)*geschwindigkeit2 ykugel2=ykugel2-Sin(winkel2)*geschwindigkeit2 EndIf If ykugel2>=768 Then kick2=0 ykugel2=706 leben=leben-1 EndIf If kick1=0 Then xkugel=xx+30 EndIf If kick1=1 Then xkugel=xkugel+Cos(winkel)*geschwindigkeit ykugel=ykugel-Sin(winkel)*geschwindigkeit EndIf If ykugel>=768 Then kick1=0 ykugel=706 leben=leben-1 EndIf End Function Function ziegel() ;DrawImage ziegel2 ,aziegel,bziegel End Function Function schlaeger() DrawImage schl,xx,xx2 DrawImage schlaeger2,yy,yy2 If KeyHit(28) And kick1=0 kick1=1 winkel=Rnd(135,45) EndIf If KeyHit(57) And kick2=0 kick2=1 winkel2=Rnd(135,45) EndIf If KeyDown(203) Then xx=xx-5 EndIf If KeyDown(205) Then xx=xx+5 EndIf If KeyDown(30) Then yy=yy-5 EndIf If KeyDown(32) Then yy=yy+5 EndIf If yy<5 Then yy=5 EndIf If yy>954 Then yy=954 EndIf If xx<5 Then xx=5 EndIf If xx>954 Then xx=954 EndIf End Function Function abprallen() If ImagesCollide(schl,yy,yy2,0,ball,xkugel,ykugel,0) Then winkel=0 abweichung=3*(yy-xkugel) winkel=180+abweichung If winkel>=175 Then winkel=winkel-5 If winkel<=5 Then winkel=winkel+5 EndIf If ImagesCollide(schlaeger2,xx,xx2,0,ball,xkugel,ykugel,0) Then winkel=0 abweichung=3*(xx-xkugel) winkel=180+abweichung If winkel>=175 Then winkel=winkel-5 If winkel<=5 Then winkel=winkel+5 EndIf If ImagesCollide(schl,yy,yy2,0,ball2,xkugel2,ykugel2,0) Then winkel2=0 abweichung2=3*(yy-xkugel2) winkel2=180+abweichung2 If winkel2>=175 Then winkel2=winkel2-5 If winkel2<=5 Then winkel2=winkel2+5 EndIf If ImagesCollide(schlaeger2,xx,xx2,0,ball2,xkugel2,ykugel2,0) Then winkel2=0 abweichung2=3*(xx-xkugel2) winkel2=180+abweichung2 If winkel2>=175 Then winkel2=winkel2-5 If winkel2<=5 Then winkel2=winkel2+5 EndIf If ImagesCollide(ball2,xkugel2,ykugel2,0,ziegel2,aziegel,bziegel,0) And ykugel2>=bziegel Then winkel2=360-winkel2 ElseIf ImagesCollide(ball2,xkugel2,ykugel2,0,ziegel2,aziegel,bziegel,0) And ykugel2<=bziegel+6 Then winkel2=360-winkel2 ElseIf ImagesCollide(ball2,xkugel2,ykugel2,0,ziegel2,aziegel,bziegel,0) Then winkel2=180-winkel2 EndIf If ImagesCollide(ball,xkugel,ykugel,0,ziegel2,aziegel,bziegel,0) And ykugel>=bziegel Then winkel=360-winkel ElseIf ImagesCollide(ball,xkugel,ykugel,0,ziegel2,aziegel,bziegel,0) And ykugel<=bziegel+6 Then winkel=360-winkel ElseIf ImagesCollide(ball,xkugel,ykugel,0,ziegel2,aziegel,bziegel,0) Then winkel=180-winkel EndIf If xkugel<=0 Then winkel=180-winkel EndIf If xkugel>=1018 Then winkel=180-winkel EndIf If ykugel<=0 Then winkel=winkel*-1 EndIf If xkugel2<=0 Then winkel2=180-winkel2 EndIf If xkugel2>=1018 Then winkel2=180-winkel2 EndIf If ykugel2<=0 Then winkel2=winkel2*-1 EndIf End Function While Not KeyHit(1) For y = 0 To 9 For x = 0 To 39 DrawImage ziegel2,x*32,y*32,map(x,y) Next Next ziegel() ball() abprallen() schlaeger() Text 1,1,("Leben: "+leben) Flip Cls Wend |
||
sheldon |
Sa, Okt 11, 2008 16:42 Antworten mit Zitat |
|
---|---|---|
Ich würde einen Type 'Ziegel' machen und beim abprallen 'Delete Ziegel'.
http://de.wikibooks.org/wiki/B...y-Tutorial Da steht was darüber drin. |
||
haubna |
Sa, Okt 11, 2008 16:47 Antworten mit Zitat |
|
---|---|---|
ok danke hab erst vor 1 woche mit b3d angefangen deswegen kenn ich mich nicht so gut aus | ||
haubna |
Sa, Okt 11, 2008 17:05 Antworten mit Zitat |
|
---|---|---|
wie meinst du das genau meinst du das ich soviele types erstellen soll soviel es ziegel gibt oder wie? | ||
Xaymarehemals "Cgamer" |
Sa, Okt 11, 2008 18:58 Antworten mit Zitat |
|
---|---|---|
ich glaube er meint das du eiine Type erstellen sollst, z.b. so:
Code: [AUSKLAPPEN] Type Ziegel
Field X, Y End Type Beim Level laden dann für jeden Block: Code: [AUSKLAPPEN] Z.Ziegel = New Ziegel
Z\X = ;Ziegel X Position Z\Y = ;Ziegel Y Position Kollision überprüfen: Code: [AUSKLAPPEN] For Z.Ziegel = Each Ziegel
If ImagesOverlap(ziegel2, Z\X*20, Z\Y*10, ball, xkugel, ykugel) = 1 delete Z.Ziegel Else DrawImage ziegel2, Z\X*20, Z\Y*10 EndIf Next MfG |
||
Warbseite |
haubna |
So, Okt 12, 2008 11:49 Antworten mit Zitat |
|
---|---|---|
ok dankeschön | ||
haubna |
So, Okt 12, 2008 12:55 Antworten mit Zitat |
|
---|---|---|
ich habs jetzt so gemacht und wenn der ball den ziegel berührt ist der ziegel nur so lange weg solange er ihn berührt
aber ich möchte das er immer weg ist und nach der zeit läuft das spiel langsamer hoffe ihr könnt mir helfen Code: [AUSKLAPPEN] Global xmax=1024, ymax=768 Global yy=xmax/2-150,yy2=712 Global xx=xmax/2+150,xx2=712 Global xkugel=xx+30,ykugel=706 Global xkugel2=yy+30,ykugel2=706 Global winkel=0 Global winkel2=0 Global kick1=0 Global kick2=0 Global menu2=1 Global leben=5 Global geschwindigkeit=6 Global geschwindigkeit2=6 Type Ziegel Field X, Y End Type SeedRnd MilliSecs() Graphics xmax,ymax,32,1 SetBuffer BackBuffer() Global ball2=LoadImage("C:\Users\David\Pictures\ball.bmp") Global ball=LoadImage("C:\Users\David\Pictures\ball.bmp") Global schl=LoadImage("C:\Users\David\Desktop\Ping Pong\gfx\schlaeger.bmp") Global schlaeger2=LoadImage("C:\Users\David\Desktop\Ping Pong\gfx\schlaeger.bmp") Global ziegel=LoadImage("C:\Users\David\Desktop\Projekt\gfx\ziegel.bmp") ;Hauptschleife While Not KeyHit(1) ziegel() ball() abprallen() schlaeger() Text 1,1,("Leben: "+leben) Flip Cls Wend ;Functions Function ball() DrawImage ball,xkugel,ykugel DrawImage ball2,xkugel2,ykugel2 If kick2=0 Then xkugel2=yy+30 EndIf If kick2=1 Then xkugel2=xkugel2+Cos(winkel2)*geschwindigkeit2 ykugel2=ykugel2-Sin(winkel2)*geschwindigkeit2 EndIf If ykugel2>=768 Then kick2=0 ykugel2=706 leben=leben-1 EndIf If kick1=0 Then xkugel=xx+30 EndIf If kick1=1 Then xkugel=xkugel+Cos(winkel)*geschwindigkeit ykugel=ykugel-Sin(winkel)*geschwindigkeit EndIf If ykugel>=768 Then kick1=0 ykugel=706 leben=leben-1 EndIf End Function Function schlaeger() DrawImage schl,xx,xx2 DrawImage schlaeger2,yy,yy2 If KeyHit(28) And kick1=0 kick1=1 winkel=Rnd(135,45) EndIf If KeyHit(57) And kick2=0 kick2=1 winkel2=Rnd(135,45) EndIf If KeyDown(203) Then xx=xx-5 EndIf If KeyDown(205) Then xx=xx+5 EndIf If KeyDown(30) Then yy=yy-5 EndIf If KeyDown(32) Then yy=yy+5 EndIf If yy<5 Then yy=5 EndIf If yy>954 Then yy=954 EndIf If xx<5 Then xx=5 EndIf If xx>954 Then xx=954 EndIf End Function Function abprallen() If ImagesCollide(schl,yy,yy2,0,ball,xkugel,ykugel,0) Then winkel=0 abweichung=3*(yy-xkugel) winkel=180+abweichung If winkel>=175 Then winkel=winkel-5 If winkel<=5 Then winkel=winkel+5 EndIf If ImagesCollide(schlaeger2,xx,xx2,0,ball,xkugel,ykugel,0) Then winkel=0 abweichung=3*(xx-xkugel) winkel=180+abweichung If winkel>=175 Then winkel=winkel-5 If winkel<=5 Then winkel=winkel+5 EndIf If ImagesCollide(schl,yy,yy2,0,ball2,xkugel2,ykugel2,0) Then winkel2=0 abweichung2=3*(yy-xkugel2) winkel2=180+abweichung2 If winkel2>=175 Then winkel2=winkel2-5 If winkel2<=5 Then winkel2=winkel2+5 EndIf If ImagesCollide(schlaeger2,xx,xx2,0,ball2,xkugel2,ykugel2,0) Then winkel2=0 abweichung2=3*(xx-xkugel2) winkel2=180+abweichung2 If winkel2>=175 Then winkel2=winkel2-5 If winkel2<=5 Then winkel2=winkel2+5 EndIf If xkugel<=0 Then winkel=180-winkel EndIf If xkugel>=1018 Then winkel=180-winkel EndIf If ykugel<=0 Then winkel=winkel*-1 EndIf If xkugel2<=0 Then winkel2=180-winkel2 EndIf If xkugel2>=1018 Then winkel2=180-winkel2 EndIf If ykugel2<=0 Then winkel2=winkel2*-1 EndIf End Function Function ziegel() Z.Ziegel = New Ziegel Z\X = 10 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 35 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 60 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 85 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 110 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 135 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 160 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 185 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 210 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 235 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 260 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 285 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position For Z.Ziegel = Each Ziegel If ImagesCollide(ball2,xkugel2,ykugel2,0,ziegel,Z\X,Z\Y,0) And ykugel2>=Z\Y Then winkel2=360-winkel2 Delete Z.Ziegel ElseIf ImagesCollide(ball2,xkugel2,ykugel2,0,ziegel,Z\X,Z\Y,0) And ykugel2<=Z\Y+10 Then winkel2=360-winkel2 Delete Z.Ziegel ElseIf ImagesCollide(ball2,xkugel2,ykugel2,0,ziegel,Z\X,Z\Y,0) Then winkel2=180-winkel2 Delete Z.Ziegel ElseIf ImagesCollide(ball,xkugel,ykugel,0,ziegel,Z\X,Z\Y,0) And ykugel>=Z\Y Then winkel=360-winkel Delete Z.Ziegel ElseIf ImagesCollide(ball,xkugel,ykugel,0,ziegel,Z\X,Z\Y,0) And ykugel<=Z\Y+10 Then winkel=360-winkel Delete Z.Ziegel ElseIf ImagesCollide(ball,xkugel,ykugel,0,ziegel,Z\X,Z\Y,0) Then winkel=180-winkel Delete Z.Ziegel Else DrawImage ziegel, Z\X, Z\Y EndIf Next End Function |
||
ozzi789 |
So, Okt 12, 2008 13:15 Antworten mit Zitat |
|
---|---|---|
So weit ich das gesehn hab, hast du die function ziegel() in der schleife, die werden also immer neu gemacht, nimm die function mal vor das while | ||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
XeresModerator |
So, Okt 12, 2008 13:16 Antworten mit Zitat |
|
---|---|---|
Klar wird das Spiel langsamer, du erstellst ja in jedem Schleifendurchlauf ein dutzend neue Ziegel! Der Block mit den ganzen New Ziegel solltest du erstmal vor die Hauptschleife packen. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
haubna |
So, Okt 12, 2008 14:52 Antworten mit Zitat |
|
---|---|---|
habs jetzt so gemacht und es funktioniert vielen dank für eure hilfe!!!
Code: [AUSKLAPPEN] Global xmax=1024, ymax=768 Global yy=xmax/2-150,yy2=712 Global xx=xmax/2+150,xx2=712 Global xkugel=xx+30,ykugel=706 Global xkugel2=yy+30,ykugel2=706 Global winkel=0 Global winkel2=0 Global kick1=0 Global kick2=0 Global menu2=1 Global leben=5 Global geschwindigkeit=6 Global geschwindigkeit2=6 Type Ziegel Field X, Y End Type SeedRnd MilliSecs() Graphics xmax,ymax,32,1 SetBuffer BackBuffer() Global ball2=LoadImage("C:\Users\David\Pictures\ball.bmp") Global ball=LoadImage("C:\Users\David\Pictures\ball.bmp") Global schl=LoadImage("C:\Users\David\Desktop\Ping Pong\gfx\schlaeger.bmp") Global schlaeger2=LoadImage("C:\Users\David\Desktop\Ping Pong\gfx\schlaeger.bmp") Global ziegel=LoadImage("C:\Users\David\Desktop\Projekt\gfx\ziegel.bmp") Z.Ziegel = New Ziegel Z\X = 10 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 35 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 60 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 85 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 110 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 135 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 160 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 185 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 210 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 235 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 260 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position Z.Ziegel = New Ziegel Z\X = 285 ;Ziegel X Position Z\Y = 1 ;Ziegel Y Position ;Hauptschleife While Not KeyHit(1) ziegel() ball() abprallen() schlaeger() Text 1,1,("Leben: "+leben) Flip Cls Wend ;Functions Function ball() DrawImage ball,xkugel,ykugel DrawImage ball2,xkugel2,ykugel2 If kick2=0 Then xkugel2=yy+30 EndIf If kick2=1 Then xkugel2=xkugel2+Cos(winkel2)*geschwindigkeit2 ykugel2=ykugel2-Sin(winkel2)*geschwindigkeit2 EndIf If ykugel2>=768 Then kick2=0 ykugel2=706 leben=leben-1 EndIf If kick1=0 Then xkugel=xx+30 EndIf If kick1=1 Then xkugel=xkugel+Cos(winkel)*geschwindigkeit ykugel=ykugel-Sin(winkel)*geschwindigkeit EndIf If ykugel>=768 Then kick1=0 ykugel=706 leben=leben-1 EndIf End Function Function schlaeger() DrawImage schl,xx,xx2 DrawImage schlaeger2,yy,yy2 If KeyHit(28) And kick1=0 kick1=1 winkel=Rnd(135,45) EndIf If KeyHit(57) And kick2=0 kick2=1 winkel2=Rnd(135,45) EndIf If KeyDown(203) Then xx=xx-5 EndIf If KeyDown(205) Then xx=xx+5 EndIf If KeyDown(30) Then yy=yy-5 EndIf If KeyDown(32) Then yy=yy+5 EndIf If yy<5 Then yy=5 EndIf If yy>954 Then yy=954 EndIf If xx<5 Then xx=5 EndIf If xx>954 Then xx=954 EndIf End Function Function abprallen() If ImagesCollide(schl,yy,yy2,0,ball,xkugel,ykugel,0) Then winkel=0 abweichung=3*(yy-xkugel) winkel=180+abweichung If winkel>=175 Then winkel=winkel-5 If winkel<=5 Then winkel=winkel+5 EndIf If ImagesCollide(schlaeger2,xx,xx2,0,ball,xkugel,ykugel,0) Then winkel=0 abweichung=3*(xx-xkugel) winkel=180+abweichung If winkel>=175 Then winkel=winkel-5 If winkel<=5 Then winkel=winkel+5 EndIf If ImagesCollide(schl,yy,yy2,0,ball2,xkugel2,ykugel2,0) Then winkel2=0 abweichung2=3*(yy-xkugel2) winkel2=180+abweichung2 If winkel2>=175 Then winkel2=winkel2-5 If winkel2<=5 Then winkel2=winkel2+5 EndIf If ImagesCollide(schlaeger2,xx,xx2,0,ball2,xkugel2,ykugel2,0) Then winkel2=0 abweichung2=3*(xx-xkugel2) winkel2=180+abweichung2 If winkel2>=175 Then winkel2=winkel2-5 If winkel2<=5 Then winkel2=winkel2+5 EndIf If xkugel<=0 Then winkel=180-winkel EndIf If xkugel>=1018 Then winkel=180-winkel EndIf If ykugel<=0 Then winkel=winkel*-1 EndIf If xkugel2<=0 Then winkel2=180-winkel2 EndIf If xkugel2>=1018 Then winkel2=180-winkel2 EndIf If ykugel2<=0 Then winkel2=winkel2*-1 EndIf End Function Function ziegel() For Z.Ziegel = Each Ziegel If ImagesCollide(ball2,xkugel2,ykugel2,0,ziegel,Z\X,Z\Y,0) And ykugel2>=Z\Y Then winkel2=360-winkel2 Delete Z.Ziegel ElseIf ImagesCollide(ball2,xkugel2,ykugel2,0,ziegel,Z\X,Z\Y,0) And ykugel2<=Z\Y+10 Then winkel2=360-winkel2 Delete Z.Ziegel ElseIf ImagesCollide(ball2,xkugel2,ykugel2,0,ziegel,Z\X,Z\Y,0) Then winkel2=180-winkel2 Delete Z.Ziegel ElseIf ImagesCollide(ball,xkugel,ykugel,0,ziegel,Z\X,Z\Y,0) And ykugel>=Z\Y Then winkel=360-winkel Delete Z.Ziegel ElseIf ImagesCollide(ball,xkugel,ykugel,0,ziegel,Z\X,Z\Y,0) And ykugel<=Z\Y+10 Then winkel=360-winkel Delete Z.Ziegel ElseIf ImagesCollide(ball,xkugel,ykugel,0,ziegel,Z\X,Z\Y,0) Then winkel=180-winkel Delete Z.Ziegel Else DrawImage ziegel, Z\X, Z\Y EndIf Next End Function |
||
sheldon |
So, Okt 12, 2008 15:19 Antworten mit Zitat |
|
---|---|---|
Wie wäre es noch, wenn du eine Schleife für die Ziegel machst anstatt jeden einzeln zu erstellen?
Code: [AUSKLAPPEN] For x = 0 to 285 step 25
for y = 0 to 0 Z.Ziegel = new Ziegel z\x = x z\y = y next next |
||
haubna |
So, Okt 12, 2008 15:49 Antworten mit Zitat |
|
---|---|---|
hab ich schon gemacht(trotzdem danke) hier kannste es dir ansehen
Code: [AUSKLAPPEN] Global xmax=1024, ymax=768 Global yy=xmax/2-150,yy2=712 Global xx=xmax/2+150,xx2=712 Global xkugel=xx+30,ykugel=706 Global xkugel2=yy+30,ykugel2=706 Global winkel=0 Global winkel2=0 Global kick1=0 Global kick2=0 Global scorezahl=0 Global scorezahl2=0 Global score=0 Global leben=5 Global geschwindigkeit=6 Global geschwindigkeit2=6 Type Ziegel Field X, Y End Type SeedRnd MilliSecs() Graphics xmax,ymax,32,1 SetBuffer BackBuffer() Global ball2=LoadImage("C:\Users\David\Pictures\ball.bmp") Global ball=LoadImage("C:\Users\David\Pictures\ball.bmp") Global schl=LoadImage("C:\Users\David\Desktop\Ping Pong\gfx\schlaeger.bmp") Global schlaeger2=LoadImage("C:\Users\David\Desktop\Ping Pong\gfx\schlaeger.bmp") Global ziegel=LoadImage("C:\Users\David\Desktop\Projekt\gfx\ziegel.bmp") Include "leveldaten.bb" levels() ;Hauptschleife While Not KeyHit(1) ziegel() ball() abprallen() schlaeger() Text 1,1,("Leben: "+leben) Text 930,1,("Punkte:"+score) Flip Cls Wend ;Functions Function ball() DrawImage ball,xkugel,ykugel DrawImage ball2,xkugel2,ykugel2 If kick2=0 Then xkugel2=yy+30 EndIf If kick2=1 Then xkugel2=xkugel2+Cos(winkel2)*geschwindigkeit2 ykugel2=ykugel2-Sin(winkel2)*geschwindigkeit2 EndIf If ykugel2>=768 Then kick2=0 ykugel2=706 leben=leben-1 EndIf If kick1=0 Then xkugel=xx+30 EndIf If kick1=1 Then xkugel=xkugel+Cos(winkel)*geschwindigkeit ykugel=ykugel-Sin(winkel)*geschwindigkeit EndIf If ykugel>=768 Then kick1=0 ykugel=706 leben=leben-1 EndIf End Function Function schlaeger() DrawImage schl,xx,xx2 DrawImage schlaeger2,yy,yy2 If KeyHit(28) And kick1=0 kick1=1 winkel=Rnd(135,45) scorezahl=0 EndIf If KeyHit(57) And kick2=0 kick2=1 winkel2=Rnd(135,45) scorezahl2=0 EndIf If KeyDown(203) Then xx=xx-5 EndIf If KeyDown(205) Then xx=xx+5 EndIf If KeyDown(30) Then yy=yy-5 EndIf If KeyDown(32) Then yy=yy+5 EndIf If yy<1 Then yy=1 EndIf If yy>963 Then yy=963 EndIf If xx<1 Then xx=1 EndIf If xx>963 Then xx=963 EndIf End Function Function abprallen() If ImagesCollide(schl,yy,yy2,0,ball,xkugel,ykugel,0) Then winkel=0 abweichung=3*(yy-xkugel) winkel=180+abweichung scorezahl=0 If winkel>=175 Then winkel=winkel-5 If winkel<=5 Then winkel=winkel+5 EndIf If ImagesCollide(schlaeger2,xx,xx2,0,ball,xkugel,ykugel,0) Then winkel=0 abweichung=3*(xx-xkugel) winkel=180+abweichung scorezahl=1 If winkel>=175 Then winkel=winkel-5 If winkel<=5 Then winkel=winkel+5 EndIf If ImagesCollide(schl,yy,yy2,0,ball2,xkugel2,ykugel2,0) Then winkel2=0 abweichung2=3*(yy-xkugel2) winkel2=180+abweichung2 scorezahl2=0 If winkel2>=175 Then winkel2=winkel2-5 If winkel2<=5 Then winkel2=winkel2+5 EndIf If ImagesCollide(schlaeger2,xx,xx2,0,ball2,xkugel2,ykugel2,0) Then winkel2=0 abweichung2=3*(xx-xkugel2) winkel2=180+abweichung2 scorezahl2=1 If winkel2>=175 Then winkel2=winkel2-5 If winkel2<=5 Then winkel2=winkel2+5 EndIf If xkugel<=0 Then winkel=180-winkel EndIf If xkugel>=1018 Then winkel=180-winkel EndIf If ykugel<=0 Then winkel=winkel*-1 EndIf If xkugel2<=0 Then winkel2=180-winkel2 EndIf If xkugel2>=1018 Then winkel2=180-winkel2 EndIf If ykugel2<=0 Then winkel2=winkel2*-1 EndIf End Function Function ziegel() For Z.Ziegel = Each Ziegel If ImagesCollide(ball2,xkugel2,ykugel2,0,ziegel,Z\X,Z\Y,0) And ykugel2>=Z\Y Then score=score+5 winkel2=360-winkel2 Delete Z.Ziegel ElseIf ImagesCollide(ball2,xkugel2,ykugel2,0,ziegel,Z\X,Z\Y,0) And ykugel2<=Z\Y+20 Then score=score+5 winkel2=360-winkel2 Delete Z.Ziegel ElseIf ImagesCollide(ball2,xkugel2,ykugel2,0,ziegel,Z\X,Z\Y,0) Then score=score+5 winkel2=180-winkel2 Delete Z.Ziegel ElseIf ImagesCollide(ball,xkugel,ykugel,0,ziegel,Z\X,Z\Y,0) And ykugel>=Z\Y Then score=score+5 winkel=360-winkel Delete Z.Ziegel ElseIf ImagesCollide(ball,xkugel,ykugel,0,ziegel,Z\X,Z\Y,0) And ykugel<=Z\Y+20 Then score=score+5 winkel=360-winkel Delete Z.Ziegel ElseIf ImagesCollide(ball,xkugel,ykugel,0,ziegel,Z\X,Z\Y,0) Then score=score+5 winkel=180-winkel Delete Z.Ziegel Else DrawImage ziegel, Z\X, Z\Y EndIf Next End Function und hier die leveldaten Code: [AUSKLAPPEN] Global a=10 Global b=50 Function levels() For i=1 To 102 Z.Ziegel = New Ziegel Z\X = a ;Ziegel X Position Z\Y = b ;Ziegel Y Position a=a+60 If a>=974 Then a=10 b=b+30 Next End Function [/quote] |
||
sheldon |
So, Okt 12, 2008 16:05 Antworten mit Zitat |
|
---|---|---|
Dir ist schon klar, dass man die Bilder dafür braucht und vor allem würde ich nicht den ganzen Pfad angeben sondern nur z.B. "gfx\ziegel.bmp"
Weil sonst kann man das Spiel nur spielen wenn man die Dateien in genau den Ordnern hat. |
||
haubna |
So, Okt 12, 2008 18:26 Antworten mit Zitat |
|
---|---|---|
was meinste mit den bildern es funktioniert alles ich hab jetzt auch schon ein 2tes level erstellt
und wegen dem pfad ja könnt ich machen hast recht ^^ |
||
ozzi789 |
So, Okt 12, 2008 18:46 Antworten mit Zitat |
|
---|---|---|
Code: [AUSKLAPPEN] ball=LoadImage ("C:\Users\David\Pictures\ball.bmp")
ball2=ball Ist schöner und braucht soviel ich weis weniger speicher Jedoch nur kleinkram, freut mich das es funkt |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
- Zuletzt bearbeitet von ozzi789 am Mo, Okt 13, 2008 9:17, insgesamt einmal bearbeitet
haubna |
So, Okt 12, 2008 19:21 Antworten mit Zitat |
|
---|---|---|
oh ok danke werde es sofort umändern | ||
Übersicht BlitzBasic Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group