collision mit types (als bilder)
Übersicht

sldierBetreff: collision mit types (als bilder) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo
mein nächstes prob (so langsam nerv ich was ![]() types Code: [AUSKLAPPEN] Type ctropfen Field x Field y Field r End Type Type etropfen Field x Field y Field r End Type Type btropfen Field x Field y Field xs Field ys Field r Field w Field s Field p End Type Type dtropfen Field x Field y Field xs Field ys Field r Field w Field s Field p End Type soldat gegner + abfragen Code: [AUSKLAPPEN] For bwasser.btropfen = Each btropfen
DrawImage play2,bwasser\x, bwasser\y bwasser\w=bwasser\w+1 If bwasser\w=16 Then bwasser\r=Rand(1,5) bwasser\w=0 bwasser\s=bwasser\s+1 If bwasser\s=120 Then bwasser\s=0 cwasser.ctropfen = New ctropfen cwasser\x = bwasser\x cwasser\y = bwasser\y If bwasser\r = 5 Then cwasser\r = 1 Else cwasser\r = bwasser\r EndIf If bwasser\r=1 Then feld(bwasser\x, bwasser\y) = 0 bwasser\xs= bwasser\x bwasser\ys= bwasser\y bwasser\y = bwasser\y - spped feld(bwasser\x, bwasser\y) = 2 EndIf If bwasser\r=2 Then feld(bwasser\x, bwasser\y) = 0 bwasser\xs= bwasser\x bwasser\ys= bwasser\y bwasser\y = bwasser\y + spped feld(bwasser\x, bwasser\y) = 2 EndIf If bwasser\r=3 Then feld(bwasser\x, bwasser\y) = 0 bwasser\xs= bwasser\x bwasser\ys= bwasser\y bwasser\x = bwasser\x - spped feld(bwasser\x, bwasser\y) = 2 EndIf If bwasser\r=4 Then feld(bwasser\x, bwasser\y) = 0 bwasser\xs= bwasser\x bwasser\ys= bwasser\y bwasser\x = bwasser\x + spped feld(bwasser\x, bwasser\y) = 2 EndIf If bwasser\r=5 Then bwasser\xs= bwasser\x bwasser\ys= bwasser\y EndIf If bwasser\y > 495 Or bwasser\y < 50 Or bwasser\x < 140 Or bwasser\x > 795 Then bwasser\x=bwasser\xs bwasser\y=bwasser\ys If bwasser\p<1 Then Delete bwasser.btropfen Next For bwasser.btropfen = Each btropfen If ImagesCollide(map,140,10,0,play2,bwasser\x,bwasser\y,0) Then bwasser\r=Rand(1,5) Next For stone.woll = Each woll For bwasser.btropfen = Each btropfen If ImagesCollide(bwand,stone\x,stone\y,0,play2,bwasser\x,bwasser\y,0) Then bwasser\r=Rand(1,5) Next Next For stein.wall = Each wall For bwasser.btropfen = Each btropfen If ImagesCollide(wand,stein\x,stein\y,0,play2,bwasser\x,bwasser\y,0) Then bwasser\x=bwasser\xs bwasser\y=bwasser\ys Next Next For wasser.tropfen = Each tropfen For bwasser.btropfen = Each btropfen If ImagesCollide(shot,wasser\x,wasser\y,0,play2,bwasser\x,bwasser\y,0) Then Delete wasser.tropfen bwasser\p=bwasser\p-1 Next Next For bwasser.btropfen = Each btropfen If ImagesCollide(play,x1,y1,0,play2,bwasser\x,bwasser\y,0) Then If panzer>0 Then panzer=panzer-51 Else leben=leben-99 EndIf Next schuss gegner Code: [AUSKLAPPEN] For cwasser.ctropfen = Each ctropfen DrawImage shot,cwasser\x, cwasser\y If cwasser\r=1 Then feld(cwasser\x, cwasser\y) = 0 cwasser\y = cwasser\y - speed feld(cwasser\x, cwasser\y) = 2 EndIf If cwasser\r=2 Then feld(cwasser\x, cwasser\y) = 0 cwasser\y = cwasser\y + speed feld(cwasser\x, cwasser\y) = 2 EndIf If cwasser\r=3 Then feld(cwasser\x, cwasser\y) = 0 cwasser\x = cwasser\x - speed feld(cwasser\x, cwasser\y) = 2 EndIf If cwasser\r=4 Then feld(cwasser\x, cwasser\y) = 0 cwasser\x = cwasser\x + speed feld(cwasser\x, cwasser\y) = 2 EndIf If cwasser\y >= 495 Or cwasser\y <= 5 Or cwasser\x <= 140 Or cwasser\x >= 795 Then Delete cwasser.ctropfen Next For cwasser.ctropfen = Each ctropfen For dwasser.dtropfen = Each dtropfen If ImagesCollide(play,dwasser\x,dwasser\y,0,shot,cwasser\x,cwasser\y,0) Then Delete cwasser.ctropfen dwasser\p=dwasser\p-1 Next Next For cwasser.ctropfen = Each ctropfen If ImagesCollide(map,140,10,0,shot,cwasser\x,cwasser\y,0) Then Delete cwasser.ctropfen Next For cwasser.ctropfen = Each ctropfen If ImagesCollide(play,x1,y1,0,shot,cwasser\x,cwasser\y,0) Then If panzer>0 Then panzer=panzer-41 Else leben=leben-51 Delete cwasser.ctropfen EndIf Next For stein.wall = Each wall For cwasser.ctropfen = Each ctropfen If ImagesCollide(wand,stein\x,stein\y,0,shot,cwasser\x,cwasser\y,0) Then Delete cwasser.ctropfen stein\p=stein\p-1 Next Next For stone.woll = Each woll For cwasser.ctropfen = Each ctropfen If ImagesCollide(bwand,stone\x,stone\y,0,shot,cwasser\x,cwasser\y,0) Then Delete cwasser.ctropfen stone\p=stone\p-1 Next Next schuss freund Code: [AUSKLAPPEN] For ewasser.etropfen = Each etropfen
DrawImage shot,ewasser\x, ewasser\y If ewasser\r=1 Then feld(ewasser\x, ewasser\y) = 0 ewasser\y = ewasser\y - speed feld(ewasser\x, ewasser\y) = 2 EndIf If ewasser\r=2 Then feld(ewasser\x, ewasser\y) = 0 ewasser\y = ewasser\y + speed feld(ewasser\x, ewasser\y) = 2 EndIf If ewasser\r=3 Then feld(ewasser\x, ewasser\y) = 0 ewasser\x = ewasser\x - speed feld(ewasser\x, ewasser\y) = 2 EndIf If ewasser\r=4 Then feld(ewasser\x, ewasser\y) = 0 ewasser\x = ewasser\x + speed feld(ewasser\x, ewasser\y) = 2 EndIf If ewasser\y >= 495 Or ewasser\y <= 5 Or ewasser\x <= 140 Or ewasser\x >= 795 Then Delete ewasser.etropfen Next For ewasser.etropfen = Each etropfen For bwasser.btropfen = Each btropfen If ImagesCollide(play2,bwasser\x,bwasser\y,0,shot,ewasser\x,ewasser\y,0) Then Delete ewasser.etropfen bwasser\p=bwasser\p-1 Next Next For ewasser.etropfen = Each etropfen If ImagesCollide(map,140,10,0,shot,ewasser\x,ewasser\y,0) Then Delete ewasser.etropfen Next For stein.wall = Each wall For ewasser.etropfen = Each etropfen If ImagesCollide(wand,stein\x,stein\y,0,shot,ewasser\x,ewasser\y,0) Then Delete ewasser.etropfen Next Next For stone.woll = Each woll For ewasser.etropfen = Each etropfen If ImagesCollide(bwand,stone\x,stone\y,0,shot,ewasser\x,ewasser\y,0) Then Delete ewasser.etropfen Next Next soldat gegner Code: [AUSKLAPPEN] For dwasser.dtropfen = Each dtropfen
DrawImage play,dwasser\x, dwasser\y dwasser\w=dwasser\w+1 If dwasser\w=16 Then dwasser\r=Rand(1,5) dwasser\w=0 dwasser\s=dwasser\s+1 If dwasser\s=120 Then dwasser\s=0 ewasser.etropfen = New etropfen ewasser\x = dwasser\x ewasser\y = dwasser\y If dwasser\r = 5 Then ewasser\r = 1 Else ewasser\r = dwasser\r EndIf If dwasser\r=1 Then feld(dwasser\x, dwasser\y) = 0 dwasser\xs= dwasser\x dwasser\ys= dwasser\y dwasser\y = dwasser\y - spped feld(dwasser\x, dwasser\y) = 2 EndIf If dwasser\r=2 Then feld(dwasser\x, dwasser\y) = 0 dwasser\xs= dwasser\x dwasser\ys= dwasser\y dwasser\y = dwasser\y + spped feld(dwasser\x, dwasser\y) = 2 EndIf If dwasser\r=3 Then feld(dwasser\x, dwasser\y) = 0 dwasser\xs= dwasser\x dwasser\ys= dwasser\y dwasser\x = dwasser\x - spped feld(dwasser\x, dwasser\y) = 2 EndIf If dwasser\r=4 Then feld(dwasser\x, dwasser\y) = 0 dwasser\xs= dwasser\x dwasser\ys= dwasser\y dwasser\x = dwasser\x + spped feld(dwasser\x, dwasser\y) = 2 EndIf If dwasser\r=5 Then dwasser\xs= dwasser\x dwasser\ys= dwasser\y EndIf If dwasser\y > 495 Or dwasser\y < 50 Or dwasser\x < 140 Or dwasser\x > 795 Then dwasser\x=dwasser\xs dwasser\y=dwasser\ys If dwasser\p<1 Then Delete dwasser.dtropfen Next For dwasser.dtropfen = Each dtropfen If ImagesCollide(map,140,10,0,play2,dwasser\x,dwasser\y,0) Then dwasser\r=Rand(1,5) Next For stone.woll = Each woll For dwasser.dtropfen = Each dtropfen If ImagesCollide(bwand,stone\x,stone\y,0,play2,dwasser\x,dwasser\y,0) Then dwasser\r=Rand(1,5) Next Next For stein.wall = Each wall For dwasser.dtropfen = Each dtropfen If ImagesCollide(wand,stein\x,stein\y,0,play2,dwasser\x,dwasser\y,0) Then dwasser\x=dwasser\xs dwasser\y=dwasser\ys Next Next so das waren alle wichtigen scriptstellen der fehler dritt nur auf wenn viele schüße fallen und 1. bwasser - ewasser trifft scriptstelle Code: [AUSKLAPPEN] For ewasser.etropfen = Each etropfen
For bwasser.btropfen = Each btropfen If ImagesCollide(play2,bwasser\x,bwasser\y,0,shot,ewasser\x,ewasser\y,0) Then Delete ewasser.etropfen bwasser\p=bwasser\p-1 Next Next oder2. cwasser - dwasser trifft scriptstelle Code: [AUSKLAPPEN] For cwasser.ctropfen = Each ctropfen
For dwasser.dtropfen = Each dtropfen If ImagesCollide(play,dwasser\x,dwasser\y,0,shot,cwasser\x,cwasser\y,0) Then Delete cwasser.ctropfen dwasser\p=dwasser\p-1 Next Next wisst ihr warum? hab auch probiert die geschwindigkeit zu verringern (der soldaten und der schüsse) aber bringt auch nichts ... mein gedanke war das 2 schüsse gleichzeitig einen soldaten berühren aber wie könnte ich das ändern? |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Du hast irgendwie nirgendswo beschrieben, was genau eigentlich das Problem ist? nur das es auftritt ...
Blitzbasic ist übrigens keine Scriptsprache. *lächel* |
||
sldier |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also es kommt dann eine meldung
"object does not exist" naja sorry hab script... wegen php geschrieben |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielleicht liegts daran, dass BB denkt du willst auch den Schuss löschen, an dem du p = p - 1 machst. Aber ehrlich gesagt hab ich eigentlich keine Ahnung *lol*
Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
sldier |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
den schuss lösche ich ja auch ...
mit p=p-1 hohl ich dem soldaten einen lebenspunkt weg |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann check ich deinen Code überhaupt nicht^^ Sollen jetzt ewasser und dwasser auch gelöscht werden oder sind das die Spieler?
Wenn sie nicht gelöscht werden sollen tu sie einfach mal in die nächste Zeile, vielleicht funzt es dann. Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
"Object does not exist!" sagt Dir auf jeden Fall, dass Du versuchst, ein Type-Element anzusprechen, dass nicht (oder nicht mehr) vorhanden ist. Ich würde Dir auch gern weiterhelfen, wie genau es zu diesem Problem kommt, aber ehrlich: ich bin irgendwie zu faul, mir den ganzen vielen Code da oben durchzugucken. ![]() |
||
sldier |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
würde es helfen wenn du den ganzen code hast?
aber hier ne auflistung wasser - schuss von dir (spieler bwasser-soldat gegner cwasser-schuss gegner dwasser-schuss freund ewasser-soldat freund |
||
sldier |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ava hat Folgendes geschrieben: "Object does not exist!" sagt Dir auf jeden Fall, dass Du versuchst, ein Type-Element anzusprechen, dass nicht (oder nicht mehr) vorhanden ist. Ich würde Dir auch gern weiterhelfen, wie genau es zu diesem Problem kommt, aber ehrlich: ich bin irgendwie zu faul, mir den ganzen vielen Code da oben durchzugucken.
![]() und wenn ich ganz lieb darum bitte... ich kann sonst nich weiter arbeiten ![]() |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hast du es denn jetzt probiert indem du das in die nächste Zeile tust?
Wenn es dann immer noch nicht funzt guck ich mir das ganze nochmal genauer an. Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
sldier |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja habs probiert aber klappt immernochnicht aber hab nochwas herrausgefunden:
wenn nur wenig (zB 1ner) gegner im spiel sind und von freunden getroffen werden kommt der fehler nicht... es passiert das was soll => 1 LP wird abgezogen schuss verschwindet aber wenn ein gewühl von gegnern ist kommt der fehler wieder (bei dem spiel kommen öfters mal "gewühle") |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Eventuel liegt es daran (wie Jake in deinem anderen Thread postete), dass du kein end if benutzt.
Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
sldier |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] For ewasser.etropfen = Each etropfen For bwasser.btropfen = Each btropfen If ImagesCollide(play2,bwasser\x,bwasser\y,0,shot,ewasser\x,ewasser\y,0) Then Delete ewasser bwasser\p=bwasser\p-1 EndIf Next Next so hab ichs jetzt (wenn ihr so meintet) aber es klappt trotzdem nicht das schlimmste ist ja das es wenn nur ein typ da ist klappts... ab 2 oder 3 nichtmehr warum? |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mach mal nach dem endif ein exit rein, genau daran hatte es bei mir nämlich auch mal gehangen^^
Ich weis nicht ob es dann funzt aber probieren kann man es ja. Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
sldier |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke wir sind denke ich der lösung einen schritt näher gerückt denn jetzt passiert folgendes:
hab 8 gegner gemacht hab selbst auf sie geschossen (gleicher code) 1 wurder zerstört die anderen blieben einfach da wo sie waren (haben sich weiter bewegt und weiter geschossen) also müssen die irgentwie alle als 1 soldat gesehen werden nur wo? ######### zusatz nochwas rausgefunden es geht doch ... mit nem hacken wenn ich 4 gegner mache muss ich erst den ersten erschießen weil sonst der 2te unverwundbar ist... wie kann ich das verändern ... oder was bringt es dazu? |
||
- Zuletzt bearbeitet von sldier am Di, Nov 09, 2004 18:14, insgesamt einmal bearbeitet
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Jiriki hat Folgendes geschrieben: Eventuel liegt es daran (wie Jake in deinem anderen Thread postete), dass du kein end if benutzt.
Jiriki LoL, wer verbreitet denn solche Gerüchte? *lächel* Aber ich habe Deinen Fehler soieben entdeckt: Code: [AUSKLAPPEN] For ewasser.etropfen = Each etropfen
For bwasser.btropfen = Each btropfen If ImagesCollide(play2,bwasser\x,bwasser\y,0,shot,ewasser\x,ewasser\y,0) Then Delete ewasser bwasser\p=bwasser\p-1 EndIf Next Next Denn es ist ganz klar, dass diese Schleife zu einem Fehler führt! Du löscht den ewasser-type, obwohl er sich in der äusseren Schleife befindet und weiterhin durchlaufen wird! Verschachtel die Schleifen in einer anderen Reihenfolge (ist ja in diesem Fall nicht sehr schwierig ![]() |
||
sldier |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
vielen vielen dank erstma @ ava
aber auch vielen dank allen anderen die sich zeit für den code genommen haben war echt so ich musste nur die reihenfolge ändern ... ok THX nochma mache jetzt weiter ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group