Ich check nicht wie ich Element Kollision mache. [Gelöst]
Verfasst: 01.06.2008 14:22
Hallo!
Ich hab da ma ne frage:
Wie kann ich machen das der Gegner, den ich abgeschossen habe verschwindet?
Bisher habe ich es nur so hinbekommen, das der aller neuste Gegner abgeschossen werden kann. Wenn ein weiterer kommt kann der nicht mehr abgeschossen werden?
Ps: sagt nicht "du bistt total dämlich, das is doch ganz leicht"
Ich kann eben noch nicht so viel. Die Beispiele haben mir auch nicht geholfen, da steige ich nicht durch.
Ich hab da ma ne frage:
Wie kann ich machen das der Gegner, den ich abgeschossen habe verschwindet?
Bisher habe ich es nur so hinbekommen, das der aller neuste Gegner abgeschossen werden kann. Wenn ein weiterer kommt kann der nicht mehr abgeschossen werden?
Ps: sagt nicht "du bistt total dämlich, das is doch ganz leicht"
Ich kann eben noch nicht so viel. Die Beispiele haben mir auch nicht geholfen, da steige ich nicht durch.
Code: Alles auswählen
InitSprite()
InitKeyboard()
OpenScreen(800,600,32,"Vollbild")
Structure Schuss
SchussX.f
SchussY.f
EndStructure
Structure Ufo1
Ufo1X.f
Ufo1Y.f
EndStructure
Global NewList Schuss.Schuss()
Global NewList Ufo1.Ufo1()
LoadSprite(1,"F:\Kai´s Spiel\Pics\Shuttle32x32.bmp",0)
LoadSprite(2,"F:\Kai´s Spiel\Pics\Schuss8x16.bmp",0)
LoadSprite(3,"F:\Kai´s Spiel\Pics\Ufo1.bmp",0)
IchX = 384
IchY = 550
SW = 0
Pause = 0
SWA = 0
SWB = 0
SWC = 1
Weapen = 2
UK = 0
Repeat
UK + 1
Pause + 1
ClearScreen(0+256*0+256*256*0)
ExamineKeyboard()
If Weapen = 1
SWA = 0
EndIf
If Weapen = 2
If KeyboardPushed(#PB_Key_Space)
If SWA > 20
SWA = 20
EndIf
If SWA < - 20
SWA = 20
EndIf
SWA + SWB
If SWA > 0
SWB - 1
EndIf
If SWA < 1
SWB + 1
EndIf
Else
SWB = -5
EndIf
EndIf
If Weapen = 3
If KeyboardPushed(#PB_Key_Space)
SWA + 15
If SWA > 15
SWA = -15
EndIf
EndIf
EndIf
If Weapen = 4
If KeyboardPushed(#PB_Key_Space)
If SWC = 1
SWB = 5
SWC = 0
EndIf
SWA + SWB
If SWA > 25
SWB = -5
EndIf
If SWA < -25
SWB = 5
EndIf
EndIf
EndIf
If KeyboardPushed(#PB_Key_Left)
If IchX > 0
IchX - 5
EndIf
EndIf
If KeyboardPushed(#PB_Key_Right)
If IchX < 768
IchX + 5
EndIf
EndIf
If KeyboardPushed(#PB_Key_Space) And Pause > -1
Pause = 0
AddElement(Schuss())
Schuss()\SchussX = IchX + 12 + SWA
Schuss()\SchussY = IchY
EndIf
If UK > 3
UK = 0
AddElement(Ufo1())
Ufo1()\Ufo1X = Random(816) - 16
Ufo1()\Ufo1Y = -16
EndIf
lcount.l = CountList(Schuss())
Ufo1Z.l = CountList(Ufo1())
DisplayTransparentSprite(1,IchX,IchY)
If lcount > 0
For n = 0 To lcount - 1
SelectElement(Schuss(), n)
If Schuss()\SchussX + 8 > Ufo1()\Ufo1X And Schuss()\SchussX < Ufo1()\Ufo1X + 16 And Schuss()\SchussY + 16 > Ufo1()\Ufo1Y And Schuss()\SchussY < Ufo1()\Ufo1Y + 16
DeleteElement(Schuss(),1)
DeleteElement(Ufo1(),1)
EndIf
Schuss()\SchussY - 16
DisplayTransparentSprite(2,Schuss()\SchussX ,Schuss()\SchussY)
Next
FirstElement(Schuss())
For n = 0 To lcount - 1
If Schuss()\SchussY < -1
DeleteElement(Schuss(),1)
EndIf
NextElement(Schuss())
Next
EndIf
If Ufo1Z > 0
For n1 = 0 To Ufo1Z - 1
SelectElement(Ufo1(), n1)
Ufo1()\Ufo1Y + 1
If Ufo1()\Ufo1Y > 600
DeleteElement(Ufo1(),1)
EndIf
DisplayTransparentSprite(3,Ufo1()\Ufo1X ,Ufo1()\Ufo1Y)
Next
FirstElement(Ufo1())
For n1 = 0 To Ufo1Z - 1
NextElement(Ufo1())
Next
EndIf
FlipBuffers()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
ForEver