Collision mit Type

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

pepetigo

Betreff: Collision mit Type

BeitragDi, Okt 16, 2007 22:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit der Collision funktioniert nicht, warum ???
thx
Code: [AUSKLAPPEN]

Function collide()
If ImagesCollide(spieler_1, Player_pos_X, 380, 0, gegner_1, gegner\x, 380, 0)
leben = leben - schaden
EndIf
End Function

The_Nici

BeitragDi, Okt 16, 2007 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
weil du im type-Feld das image speichern musst und nicht versuchen mit dem Type zu kollidieren? 0o

Xeres

Moderator

BeitragDi, Okt 16, 2007 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Tschüss... *wink* Rolling Eyes
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)

X-Calibur

BeitragDi, Okt 16, 2007 22:57
Antworten mit Zitat
Benutzer-Profile anzeigen
So wie ich das sehe hast du hier keine instanz von deinem type definiert. gegner\x wäre somit in dieser function unzulässig.

mfg Calibur
 

pepetigo

BeitragDi, Okt 16, 2007 23:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie???
So ...
Code: [AUSKLAPPEN]

Type rot
Field x
Field y
Field speed
[b]Field bild [/b]
End Type

und so... ???
Code: [AUSKLAPPEN]

Function collide()
If ImagesCollide(spieler_1, Player_pos_X, 380, 0, gegner\bild, gegner\x, 380, 0)
leben = leben - schaden
EndIf
End Function

The_Nici

BeitragDi, Okt 16, 2007 23:03
Antworten mit Zitat
Benutzer-Profile anzeigen
genau, und wenn spieler_1 auch ein type ist, dort auch.

X-Calibur

BeitragDi, Okt 16, 2007 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
eher so^^

Code: [AUSKLAPPEN]

Function collide()
for gegner.rot = each rot
If ImagesCollide(spieler_1, Player_pos_X, 380, 0, gegner_1, gegner\x, 380, 0)
leben = leben - schaden
EndIf
next
End Function

Das setzt vorraus dass alle gegner Gegnertyp 1 sind bzw die Grafik gegner_1 benutzen.

Calibur
  • Zuletzt bearbeitet von X-Calibur am Di, Okt 16, 2007 23:07, insgesamt einmal bearbeitet
 

pepetigo

BeitragDi, Okt 16, 2007 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
geht aber immer noch nicht, vielleicht liegt es am Code insgesamt???
Code: [AUSKLAPPEN]

;Grafikmodus setzen
Graphics 640, 480, 16, 2

;Fenstertitel bestimmen
AppTitle "Schuss frei"

;Alle benötigten Bilder laden und gegebenfalls mit transparenz versorgen
Global spieler_1 = LoadImage("gfx/Spieler_1.png")
MaskImage spieler_1 ,255, 0, 255
Global gegner_1 = LoadImage("gfx/gegner_2.png")
MaskImage gegner_1 ,255, 0, 255
Global gegner_2 = LoadImage("gfx/gegner_2.png")
MaskImage gegner_2 ,255, 0, 255
Global stars=LoadImage("gfx/stars.bmp")
Global loser=LoadImage("gfx/loser.png")
MaskImage loser, 255, 0, 255


;Hintergrundvariablen
Global x_star = 1
;Gegnervariablen
SeedRnd MilliSecs()
Global Gegner_pos_X = Rnd(1, 640)
Global Gegner_pos_Y = 1
Global gtimer = MilliSecs()

;Spielervariablen
Global leben = 3
Global schaden = 1
Global stimer = MilliSecs()
Global Player_pos_X

Global gegner.rot


;Type oder Dim, weiß ich nicht was könnt ihr mir empfehlen ???
Type rot
Field x
Field y
Field speed
Field bild
End Type


;buffer setzen u. Spieler zeichnen
SetBuffer BackBuffer()
DrawImage spieler_1, 0, 380
;Musik
Global titelsound = LoadSound("sound/17_sasha_-_goodbye.mp3");(namen ersetzen für eigenes lied)
sound()


neuesspiel()


;//////////////////FUNKTIONEN\\\\\\\\\\\\\\\\\\\\\\\

Function sound()
   LoopSound titelsound
   titelsound =PlaySound(titelsound)
End Function

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Function gegner_1()
   DrawImage gegner_1, Gegner_pos_X, Gegner_pos_Y
      If MilliSecs() > gtimer + 150
         Gegner_pos_Y=Gegner_pos_Y+5
         gtimer=MilliSecs()
      EndIf
End Function

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Function lose()
   Cls
      DrawImage loser, 20, 140
        star()
      Flip
      If KeyHit(57) Or KeyHit(28) Or KeyHit(1) neuesspiel()
End Function

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Function star()
   TileImage stars, x_star, 1

   x_star = x_star + 1
   If x_star = 201 Then x_star = 1
End Function

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Function collide()
If ImagesCollide(spieler_1, Player_pos_X, 380, 0, gegner\bild, gegner\x, 380, 0)
leben = leben - schaden
EndIf
End Function

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Function neuesspiel()
   DrawImage spieler_1, 0, 380
   leben = 3
   ;HAUPTSCHLEIFE
   Repeat
   SeedRnd MilliSecs()
   t = Rnd(1, 50)
    If t=2 Then neuergegner()

   ;funktionen
      star()
      collide()
      gegnerbewegen()

   ;Leben etc.
      Text 1,1,"Leben:" + leben
       If leben <= 0 Then lose()
      If KeyHit(57) Then leben = leben - 1

   ;Es sollen ungefähl 1000 Gegner auf 10000 der Achse y kommen und wenn die mit dem spieler Kollidieren soll ein Leben von 3 abgezogen werden ! ! !

   ;spieler bewegen
      If KeyDown(203)
      
         If MilliSecs() > stimer + 100
            Player_pos_X=Player_pos_X-20
            stimer=MilliSecs()
         EndIf
         If Player_pos_X=<0 Then Player_pos_X=1
      EndIf
      If KeyDown(205)
   
         If MilliSecs() > stimer + 100
            player_pos_x=player_pos_X +20
            stimer=MilliSecs()
         EndIf
         If Player_pos_X=>540 Then Player_pos_X=540
      EndIf
   ;Spieler zeichnen (positionswechsel?)
      DrawImage spieler_1,player_pos_x,380
   ;Buffer swap u. altes bild cls
      Flip
      Cls   

   ;ENDE HAUPTSCHLEIFE
   Until KeyHit(1)

   ;beenden
   End
End Function

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Function neuergegner()
gegner.rot = New rot
gegner\x = Rnd(1, 620)
gegner\y = 0
gegner\speed = Rnd(1,3)
gegner\bild = LoadImage("gfx/gegner_2.png")
End Function





Function gegnerbewegen()

For gegner.rot = Each rot


gegner\y = gegner\y + gegner\speed


; Helicopter zeichnen.
DrawImage gegner_1, gegner\x, gegner\y



; Wenn Heli am unteren Rand ist, wird er gelöscht.
If gegner\y > 480 Then
gegnerloeschen = 1
EndIf


If gegnerloeschen = 1 Then
Delete gegner.rot
gegnerloeschen = 0
EndIf


Next


End Function

Dottakopf

BeitragMi, Okt 17, 2007 10:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm

Also wenn du nicht-type type kollision machst, müsste das so eig gehen: (ausn kopf)


Code: [AUSKLAPPEN]


 for info.bla  = each bla
 
     if imagescollide( hero, hx, hy, 0 , typ_bild , info\bild_x, info\bild_y,0) then
        delete info.bla
     end if
 next


typ zu type kollison funtz auch ohne, dass du das image in den type mit rein legst:
2 überprüfungen: einmal shoot - feind und feind - shoot.
Anmerkung : "es geht immer schöner und elleganter, aber funtzen tut das auch."

laser - shoot
Code: [AUSKLAPPEN]

For info.shot = Each shot            
  For info2.feind = Each feind
    If ImagesCollide(laser, info\sx,info\sy,0, feind, info2\fx, info2\fy,0) Then
      delete info2.feind
    end if                             
  Next 
Next


feind - laser
Code: [AUSKLAPPEN]

For info2.feind = Each feind     
  For info.shot = Each shot
      If ImagesCollide(feind, info2\fx, info2\fy,0,laser, info\sx,info\sy,0  ) Then
          Delete info.shot
      End If                             
   Next 
Next



Funktionsfähiges beispiel liegt im archiv: ("typ - typ colli") (link und datei werden in n paar tagen verschwinden)
- verschunden -

~edit~ achja ähm man ballert mit der maus ^^
mfg Dottakopf
  • Zuletzt bearbeitet von Dottakopf am Fr, Okt 19, 2007 11:50, insgesamt einmal bearbeitet
 

pepetigo

BeitragMi, Okt 17, 2007 16:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Noch mal das mit der Collision.
Das geht aber das zweite irgendwie nicht, vielleicht könnt ihr mir helfen.
thx
Das geht:
Code: [AUSKLAPPEN]

 For schuss.laser = Each laser
  For gegner1.mittel  = Each mittel

   If ImagesCollide(laser_g, schuss\lx, schuss\ly, 0, gegner_2, gegner1\mx, gegner1\my,0) Then
      Delete schuss.laser
      gegner1\mleben = gegner1\mleben - 1
     EndIf

   If gegner1\mleben = 0
      Delete gegner1.mittel
      punkte = punkte + 500
   EndIf
 Next
Next

Das nicht:
Code: [AUSKLAPPEN]

 For schuss.laser = Each laser
  For gegner.klein  = Each klein

   If ImagesCollide(laser_g, schuss\lx, schuss\ly, 0, gegner_1, gegner\kx, gegner\ky,0) Then
      Delete schuss.laser
      gegner\kleben = gegner\kleben - 1
   EndIf

   If gegner\kleben = 0
      Delete gegner.klein
      punkte = punkte +100
   EndIf
 Next
Next

Smily

BeitragMi, Okt 17, 2007 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Kannst du bitte in zukunft bessere fehlerbeschreibungen geben als "geht nicht!"?

Was für eine Fehlermeldung bekommst du?
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

pepetigo

BeitragMi, Okt 17, 2007 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok
ich bekomme die Fehlermeldung "Illegal Memory Adress", wenn der Schuss den Gegner trifft.
aber beim anderen gehts, warum ???
thx
P.S Vielleicht liegt es auch am ganzen Code:
Code: [AUSKLAPPEN]
;Grafikmodus setzen
Graphics 640, 480, 16, 2

;Fenstertitel bestimmen
AppTitle "Schuss frei"

;Alle benötigten Bilder laden und gegebenfalls mit transparenz versorgen
Global spieler_1 = LoadImage("gfx/Spieler_1.png")
MaskImage spieler_1 ,255, 0, 255
Global gegner_1 = LoadImage("gfx/gegner_2.png")
MaskImage gegner_1 ,255, 0, 255
Global gegner_2 = LoadImage("gfx/gegner_1.png")
MaskImage gegner_2 ,255, 0, 255
Global stars=LoadImage("gfx/stars.bmp")
Global loser=LoadImage("gfx/loser.png")
MaskImage loser, 255, 0, 255
Global fadenkreuz_1 = LoadImage("gfx/fadenkreuz_1.png")
MaskImage fadenkreuz_1, 255, 0, 255
Global fadenkreuz_2 = LoadImage("gfx/fadenkreuz_2.png")
MaskImage fadenkreuz_2, 255, 0, 255
Global fadenkreuz_3 = LoadImage("gfx/fadenkreuz_3.png")
MaskImage fadenkreuz_3, 255, 0, 255
Global fadenkreuz_4 = LoadImage("gfx/fadenkreuz_4.png")
MaskImage fadenkreuz_4, 255, 0, 255
Global schuss_frei_1 = LoadImage("gfx/schuss_frei_1.png")
MaskImage schuss_frei_1, 255, 0, 255
Global schuss_frei_2 = LoadImage("gfx/schuss_frei_2.png")
MaskImage schuss_frei_2, 255, 0, 255
Global laser_g = LoadImage("gfx/laser.bmp")


Global messzeit = MilliSecs()
Global zeit

Global punkte

Global schuss_laser = 380
Global xspieler

;Hintergrundvariablen
Global x_star = 1

;Spielervariablen
Global leben = 3
Global schaden = 1
Global stimer = MilliSecs()
Global Player_pos_X
Global warten_1_X = 45

Global titelsound

schrift = LoadFont("Bauhaus 93", 50)
SetFont schrift
Color 0, 255, 0

;Type oder Dim, weiß ich nicht was könnt ihr mir empfehlen ???
Type laser
Field lx
Field ly
End Type

Type klein
Field kx
Field ky
Field kspeed
Field kleben
End Type

Type mittel
Field mx
Field my
Field mspeed
Field mleben
End Type


fadenkreuz()


;buffer setzen u. Spieler zeichnen
SetBuffer BackBuffer()
DrawImage spieler_1, 0, 380

;Musik
Global goodbye = LoadSound("sound/17_sasha_-_goodbye.mp3")
Global hamma = LoadSound("sound/Culcha Candela - Hamma.mp3")
Global hupe = LoadSound("sound/autohupe-soundarchiv.com.mp3")
sound()


neuesspiel()


;//////////////////FUNKTIONEN\\\\\\\\\\\\\\\\\\\\\\\

Function sound()
   SeedRnd MilliSecs()
   titelsound = Rnd(1, 2)
   If titelsound = 1 Then titelsound = hamma
   If titelsound = 2 Then titelsound = goodbye
   LoopSound titelsound
   titelsound =PlaySound(titelsound)
End Function

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Function lose()
   Cls
      star()
      DrawImage loser, 20, 140
      Flip
         For gegner.klein = Each klein
            Delete gegner.klein
         Next
         For gegner1.mittel = Each mittel
            Delete gegner1.mittel
         Next
      If KeyHit(57) Or KeyHit(28) Or KeyHit(1) neuesspiel()
End Function

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Function star()
   TileImage stars, x_star, 1

   x_star = x_star + 1
   If x_star = 201 Then x_star = 1
End Function

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Function collide()

 For schuss.laser = Each laser
  For gegner.klein  = Each klein

   If ImagesCollide(laser_g, schuss\lx, schuss\ly, 0, gegner_1, gegner\kx, gegner\ky,0) Then
      Delete schuss.laser
      gegner\kleben = gegner\kleben - 1
   EndIf

   If gegner\kleben = 0
      Delete gegner.klein
      punkte = punkte +100
   EndIf
 Next
Next

 For schuss.laser = Each laser
  For gegner1.mittel  = Each mittel

   If ImagesCollide(laser_g, schuss\lx, schuss\ly, 0, gegner_2, gegner1\mx, gegner1\my,0) Then
      Delete schuss.laser
      gegner1\mleben = gegner1\mleben - 1
   EndIf

   If gegner1\mleben = 0
      Delete gegner1.mittel
      punkte = punkte + 500
   EndIf
 Next
Next



 For gegner.klein  = Each klein
 
     If ImagesCollide( spieler_1, Player_pos_x, 380, 0, gegner_1, gegner\kx, gegner\ky,0) Then
        Delete gegner.klein
      leben = leben - schaden
      punkte = punkte-50
      h = PlaySound(hupe)
   
     End If
   
 Next

 For gegner1.mittel  = Each mittel
 
     If ImagesCollide( spieler_1, Player_pos_x, 380, 0, gegner_2, gegner1\mx, gegner1\my,0) Then
        Delete gegner1.mittel
      leben = leben - schaden
      punkte = punkte-250
      h = PlaySound(hupe)
     End If
 Next

End Function

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Function neuesspiel()

StopChannel (h)
StopChannel (toi)

   leben = 3
   zeit = 60
   punkte = 0
   
   ;HAUPTSCHLEIFE
   Repeat
   SeedRnd MilliSecs()
   t = Rnd(1, 30)
    If t=2 Then neuergegnerk()

   t = Rnd(1, 1000)
    If t=2 Then neuergegnerm()

   ;funktionen
      star()
      gegnerbewegen()
      collide()
      zeitmessen()

   ; Überlebenszeit messen
   Text 550, 0, zeit
   Text 350, 0, punkte
   ;Leben etc.
      Text 1,1,"Leben:" + leben
       If leben <= 0 Then
         FlushKeys
         lose()
      EndIf
   
      If KeyHit(57)
      laser()
      EndIf
   
   ;spieler bewegen
      If KeyDown(203)
      
         If MilliSecs() > stimer + 100
            Player_pos_X=Player_pos_X-20
            stimer=MilliSecs()
         EndIf
         If Player_pos_X=<0 Then Player_pos_X=1
      EndIf
      If KeyDown(205)
   
         If MilliSecs() > stimer + 100
            player_pos_x=player_pos_X +20
            stimer=MilliSecs()
         EndIf
         If Player_pos_X=>540 Then Player_pos_X=540
      EndIf
      
   ;Spieler zeichnen (positionswechsel?)
      DrawImage spieler_1,player_pos_x,380
      
   ;Buffer swap u. altes bild cls
      Flip
      Cls   

   ;ENDE HAUPTSCHLEIFE
   Until KeyHit(1)

   ;beenden
   End
End Function

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Function neuergegnerk()
gegner.klein = New klein
gegner\kx = Rnd(1, 620)
gegner\ky = 0
gegner\kspeed = Rnd(1,3)
gegner\kleben = 1
End Function


Function neuergegnerm()
gegner1.mittel = New mittel
gegner1\mx = Rnd(1, 540)
gegner1\my = 0
gegner1\mspeed = Rnd(1, 2)
gegner1\mleben = 3
End Function


Function laser()
xspieler = Player_pos_x + 50
schuss.laser = New laser
schuss\lx = xspieler
schuss\ly = schuss_laser
End Function


Function gegnerbewegen()

For schuss.laser = Each laser
schuss\ly = schuss\ly - 5

DrawImage laser_g, schuss\lx, schuss\ly

If schuss\ly < 0 Then
gegnerloeschen = 1
EndIf


If gegnerloeschen = 1 Then
Delete schuss.laser
gegnerloeschen = 0
EndIf

Next
;klein
For gegner.klein = Each klein


gegner\ky = gegner\ky + gegner\kspeed


DrawImage gegner_1, gegner\kx, gegner\ky


If gegner\ky > 480 Then
gegnerloeschen = 1
EndIf


If gegnerloeschen = 1 Then
Delete gegner.klein
gegnerloeschen = 0
EndIf


Next

;mittel
For gegner1.mittel = Each mittel


gegner1\my = gegner1\my + gegner1\mspeed


DrawImage gegner_2, gegner1\mx, gegner1\my


If gegner1\my > 480 Then
gegnerloeschen = 1
EndIf


If gegnerloeschen = 1 Then
Delete gegner1.mittel
gegnerloeschen = 0
EndIf


Next


End Function

Function fadenkreuz()
fadenkreuz_1 = LoadImage("gfx/fadenkreuz_1.png")
MaskImage fadenkreuz_1, 255, 0, 255
fadenkreuz_2 = LoadImage("gfx/fadenkreuz_2.png")
MaskImage fadenkreuz_2, 255, 0, 255
fadenkreuz_3 = LoadImage("gfx/fadenkreuz_3.png")
MaskImage fadenkreuz_3, 255, 0, 255
fadenkreuz_4 = LoadImage("gfx/fadenkreuz_4.png")
MaskImage fadenkreuz_4, 255, 0, 255
schuss_frei_1 = LoadImage("gfx/schuss_frei_1.png")
MaskImage schuss_frei_1, 255, 0, 255
schuss_frei_2 = LoadImage("gfx/schuss_frei_2.png")
MaskImage schuss_frei_2, 255, 0, 255

DrawImage schuss_frei_1, 20, 10
Delay 1000

DrawImage schuss_frei_2, 370, 50
Delay 1000

schuss_frei_1()

SeedRnd MilliSecs()
fad_i = Rnd(3, 5)

For i = 1 To fad_i
DrawImage fadenkreuz_1, 220, 140
Delay 300
DrawImage fadenkreuz_2, 220, 140
Delay 300
DrawImage fadenkreuz_3, 220, 140
Delay 300
DrawImage fadenkreuz_4, 220, 140
Delay 300
Next
Cls
End Function

Function schuss_frei_1()
 schuss_frei_1 = LoadSound("sound/schuss_frei_1.mp3")
 schuss_frei_1   = PlaySound(schuss_frei_1)
End Function

Function zeitmessen()

; Alle 1000 Millisekunden geht zeit eins runter.
If MilliSecs() - messzeit >= 1000 Then
messzeit = MilliSecs()
zeit = zeit - 1
EndIf

If zeit = 0
End
EndIf

End Function

Smily

BeitragMi, Okt 17, 2007 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
ganz einfach, du versuchst auf das objekt zuzugreifen, nachdem du es gelöscht hast:

mal aufs wichtige komprimiert:
Code: [AUSKLAPPEN]
 For schuss.laser = Each laser
  For gegner.klein  = Each klein
   If [.....] Then
      Delete schuss.laser
   EndIf
 Next
Next


das objekt "schuss.laser" wird zwar gelöscht, aber die innere for-next-schleife läuft weiter.. und beim nächsten durchlauf wird dann versucht auf ein objekt zuzugreifen, das nicht (mehr) exisitiert.

gruß,
Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

pepetigo

BeitragMi, Okt 17, 2007 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie soll ich es denn beheben???
thx

The_Nici

BeitragMi, Okt 17, 2007 18:46
Antworten mit Zitat
Benutzer-Profile anzeigen
denk selber mal nach.
Also, mach, dass es überprüft ob ein Schuss=Alive ist.

Und wenn jetzt kommt: "Wie mach ich das????" dann werde ich dir nicht weiterhelfen.
 

pepetigo

BeitragMi, Okt 17, 2007 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
was soll "Schuss=Alive" bedeuten???
ich meine das Alive
Und warum klappt das beim 2.-mal???

Eingeproggt

BeitragMi, Okt 17, 2007 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
"Alive" ist englisch und bedeutet "lebend", in diesem Sinne wohl besser übersetzt mit "existent".
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

pepetigo

BeitragMi, Okt 17, 2007 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber warum geht es bei dem 2-ten???
thx

Dottakopf

BeitragMi, Okt 17, 2007 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
was ist das 2te ?


denkanstoß: zu deinem fehler.

lösche das objekt
male das objekt hin


und warum findet bb das objekt nicht ?

mfg Dottakopf
 

pepetigo

BeitragMi, Okt 17, 2007 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich meine:
Das erste, functionier nicht:
Und warum functioniert das "Erste" nicht, aber das "zweite", ist doch eigentlich das gleicht???
Code: [AUSKLAPPEN]

 For gegner.klein  = Each klein
  For schuss.laser = Each laser

   If ImagesCollide(laser_g, schuss\lx, schuss\ly, 0, gegner_1, gegner\kx, gegner\ky,0) Then
      Delete schuss.laser
      gegner\kleben = gegner\kleben - 1
   EndIf

   If gegner\kleben = 0
      Delete gegner.klein
      punkte = punkte +100
   EndIf
 Next
Next


Und das 2-te, functioniert:
Code: [AUSKLAPPEN]

 For gegner1.mittel  = Each mittel
  For schuss.laser = Each laser

   If ImagesCollide(laser_g, schuss\lx, schuss\ly, 0, gegner_2, gegner1\mx, gegner1\my,0) Then
      Delete schuss.laser
      gegner1\mleben = gegner1\mleben - 1
   EndIf

   If gegner1\mleben = 0
      Delete gegner1.mittel
      punkte = punkte + 500
   EndIf
  Next
 Next

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group