brick

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

haubna

Betreff: brick

BeitragSa, Okt 11, 2008 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Okt 11, 2008 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Okt 11, 2008 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
ok danke hab erst vor 1 woche mit b3d angefangen deswegen kenn ich mich nicht so gut aus
 

haubna

BeitragSa, Okt 11, 2008 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
wie meinst du das genau meinst du das ich soviele types erstellen soll soviel es ziegel gibt oder wie?

Xaymar

ehemals "Cgamer"

BeitragSa, Okt 11, 2008 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Okt 12, 2008 11:49
Antworten mit Zitat
Benutzer-Profile anzeigen
ok dankeschön
 

haubna

BeitragSo, Okt 12, 2008 12:55
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Okt 12, 2008 13:15
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Xeres

Moderator

BeitragSo, Okt 12, 2008 13:16
Antworten mit Zitat
Benutzer-Profile anzeigen
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

haubna

BeitragSo, Okt 12, 2008 14:52
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Okt 12, 2008 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Okt 12, 2008 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Okt 12, 2008 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Okt 12, 2008 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Okt 12, 2008 18:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
ball=LoadImage ("C:\Users\David\Pictures\ball.bmp")
ball2=ball


Ist schöner und braucht soviel ich weis weniger speicher Wink
Jedoch nur kleinkram, freut mich das es funkt Very Happy
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
  • Zuletzt bearbeitet von ozzi789 am Mo, Okt 13, 2008 9:17, insgesamt einmal bearbeitet
 

haubna

BeitragSo, Okt 12, 2008 19:21
Antworten mit Zitat
Benutzer-Profile anzeigen
oh ok danke werde es sofort umändern

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group