| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jul 2004
Beiträge: 92
| Problem: Instanz Variabel hochrechnen von einer anderen Instanz aus...
Also mein Problem: Ich mach gerade ein kleines Weltraumshottergame in Flash und die Schüsse die abgefeuert werden sollen bei Kollision mit einem Raumschiff dessen Variabel um 50 erhöhen. Es werden automatisch neue Schiffe erzeugt, die jedesmal "Enemy1"+zahl (zahl wird jedesmal um 1 erhöht, also die Anzahl der bereits erstellten Schiffe) heißen, nun hier mein Script im Schuss: _root.Enemy1Zahl = Gesamtanzahl der Schiffe _root.Enemy1 = 1. Instanz der Gegnerschiffe (die, die immer kopiert wird) ShipDamage = spezieller Schiffsschaden (bei jedem Schiff einzeln) for (var i=0; i<=_root.Enemy1Zahl; ++i) { var SchiffHit=0; SchiffHit = String(_root.Enemy1) + String(i); if (this.hitTest(SchiffHit)) { SchiffHit.ShipDamage += 50; this.removeMovieClip(); } } Der Script tut soweit, nur das SchiffHit.ShipDamage += 50 nicht passiert... heißt das Schiff, mit dem Kollidiert wird bekommt keinen Schaden... kann mir wer helfen? |
| | |
| | #2 (permalink) |
| All-rounder Registriert seit: Mar 2004 Ort: Bayerische Rhön
Beiträge: 2.507
|
Also die for-i Schleife läuft einmal durch und das wird hitTest() nie mehr abgefragt. ![]() Das müsste in einer Schleife abgefragt werden. entweder onEnterFrame oder setInterval.
__________________ -------------------------------- Ich klicke, ergo bin ich. (me) -------------------------------- |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Jul 2004
Beiträge: 92
|
mh? soweit ich weiß wird eine for schleife solange ausgeführt bis (hier in meinem fall) "i" größer als "_root.Enemy1Zahl" ist... btw. da liegt das Problem ja garnicht... die Instanz, die diesen Script aufruft, wird ja auch gelöscht wie es dort steht wenn sie Kollidiert... nur es wird halt nicht die Variabel in der Instanz mit der Kollidiert wird hochgerechnet |
| | |
| | #4 (permalink) |
| All-rounder Registriert seit: Mar 2004 Ort: Bayerische Rhön
Beiträge: 2.507
|
Ja aber wenn Du das Schiff löschst, dann löschst Du die Variable gleich mit. Die existiert doch nur auf der Zeitleiste der Instanz. Du müsstest eine _globale Variable hochrechnen, damit der Wert erhalten bleibt.
__________________ -------------------------------- Ich klicke, ergo bin ich. (me) -------------------------------- |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jul 2004
Beiträge: 92
|
oh vllt habsch mich nich klar genug ausgedrückt... sorry mein fehler... also die Schuss-Instanz führt die for schleife aus und "SchiffHit = String(_root.Enemy1) + String(i);" ist halt das gegnerschiff... das wird ja garnicht gelöscht sondern die Schuss-Instanz |
| | |
| | #6 (permalink) |
| All-rounder Registriert seit: Mar 2004 Ort: Bayerische Rhön
Beiträge: 2.507
|
Ich würde sagen dein Skript ist ein völliges Gewurschtel ![]() PHP-Code:
__________________ -------------------------------- Ich klicke, ergo bin ich. (me) -------------------------------- |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Jul 2004
Beiträge: 92
|
ich mach eigentlich nie Kommentare in meine Scripte... da das bei Flash irgendwie kompliziert ist ;-) und zu lange dauert, da mann jede funktion ja entweder komplet selber reichschreiben muss oder suchen muss in der liste... und da ich bei C sonst immer alles selber schreib (und da auch Kommentare rein schreib) geht das bei flash nich so schnell wegen dem ständigen Evaluate einfügen aus der liste und nicht einfach Enter drücken für zeilenumbruch oder so... @unübersichtlich: Deine Kommentare sind meiner meinung aber irgndwie nicht sehr sinnvoll... nur halt für leute die nichts davon verstehen... aaber die wollen bzw. bekommen den script eh nie zugesicht (meiner meinung nach) das this sich auf den aufrufer des scripts bezeiht sollte klar sein wenn man sich etwas mit actionscript auskennt... und das "= 0" bedeutet das etwas auf 0 gesetzt wird auch... |
| | |
| | #8 (permalink) |
| All-rounder Registriert seit: Mar 2004 Ort: Bayerische Rhön
Beiträge: 2.507
|
Sorry, wenn meine Kommentare schlecht waren. ![]() Versuche mal mit trace() herauszufinden, wo was funktioniert und welcher Werte entstehen. Wenn Du das ganze Ding hochladen könntest, dann wäre der Fehler sicherlich einfacher zu finden.
__________________ -------------------------------- Ich klicke, ergo bin ich. (me) -------------------------------- |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |