schuss wird immer schneller
Übersicht

mafaBetreff: schuss wird immer schneller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi
ich bins nochmal. Die kollision habe ich jetzt zwischen schuss und gegner, aber jedesmal wenn ich schieße wird die nächste kugel schneller und wenn es mehr als 3 kugeln sind die gleichzeitig auf dem bildschirm sind bekomme ich die fehler meldung das das Object nicht existiert. Wie mache ich das jeder schuss gleich schnell bleibt und das es mehr als 3 schüsse sein können? BlitzBasic: [AUSKLAPPEN]
|
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du bewegst die Schüsse mehrmals, in der for-Schleife, in der auch die Zombies getested werden. Mach eine seperate Schleife für die Bewegung der Schüsse. | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
mafa |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das hatte ich vorher gemacht und da hatte die kollision nicht funktioniert. | ||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie Nicdel schon schrieb: du benutzt eine extra Schleife. Die hat dann nichts mit Kollision zu tun.
Und besser du nennst deine Type-Variablen nicht "info" - da wäre z für Zombie und s für Schuss sogar noch aussagekräftiger. |
||
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) |
mafa |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe die 2 schleifen jetzt wieder getrennt und jede jeweils eine eigene funtion gesteckt. jetzt sind die schüsse immer gleich schnell, aber wenn es zu viele schüsse werden und einer dieser schüsse eine kollision hat dann sagt er das es das object nicht gibt.
BlitzBasic: [AUSKLAPPEN]
der ganze code sieht jetzt so aus: BlitzBasic: [AUSKLAPPEN]
|
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann teste zuerst ob alle Objekte vorhanden sind. (If obj <> Null) | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der eine Zombie wird gegen alle Schüsse getestet. Wenn der Erste Schuss trifft, und du das Objekt löschst, kommt im nächsten Schleifendurchlauf der Fehler, weil z=NULL ist.
Entweder auf Existenz prüfen, oder markieren und löschen, wenn sicher nicht mehr darauf zugegriffen wird. |
||
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) |
mafa |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da sind sie, werden auch alle angezeigt. Aber sobalt dann halt eine kollision stattfindet wo mehr als 3 kugeln aufm Bildschirm sind, bekomme ich die fehlermeldung(object does not exist) und er markiert die stelle wo ich die kollision abfrage.
edit: also heist das das ich alle schüsse löschen soll bei der kollision? |
||
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Beim groben überfliegen würde ich den Fehler an dieser stelle vermuten:
BlitzBasic: [AUSKLAPPEN] For s.schuss = Each schuss Sagt aus: Für jeden Schuss - wenn schuss-y kleiner als 5 ist, dann schuss löschen. Ansonsten, wenn die bilder Kollidieren, dann zombie UND schuss löschen. Du hast also einen Zombie und prüfst für diesen jeden Schuss. In dem moment wo ein Zombie getroffen und gelöscht wird, können aber noch weitere schüsse abgefragt werden, die eben genau den eben gelöschten zombie überprüfen wollen. Somit versucht dein programm etwas abzufragen, was nichtmehr Existiert und protestiert. Du könntest es zb so ganz leicht umbauen: BlitzBasic: [AUSKLAPPEN] For s.schuss = Each schuss Natürlich nur, sofern ich mich nicht beim überfliegen verguckt habe ![]() Ansonsten gibt es noch die möglichkeit, pro schuss zu fragen, ob z existiert. BlitzBasic: [AUSKLAPPEN] For s.schuss = Each schuss |
||
mafa |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es klappt jetzt alles. Danke für eure Hilfe ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group