Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-04-2004, 12:54   #1 (permalink)
AchimHomeZone
 
Benutzerbild von onip
 
Registriert seit: Feb 2002
Ort: Cöllefornia / Cologne / Kölle / Köln
Beiträge: 1.541
Question [for schleife] zu langsam

hallo zusammen,
mit einer for schleife überprüfe ich ob mc's andere mc's treffen.
auf mein hintergrund liegen 756 mc's die ein bild überdecken.
ist ein mc auf der position von einen der 756 mc's wird das abdeck mcX ausgeblendet (_visible=0).
so sieht man stück für stück das hintergrund bild.
da diese for schleife sehr lange braucht (ca. 1-2 sek),
wollte ich wissen ob es ne andere und schneller möglichkeit gibt,
zu kontrollieren ob eins oder mehrere mc eins der 756 berührt hat?

meine for schleife sieht so aus:
ActionScript:
  1. for (i=0; i<=_root.gegnerzahlstart; i++) {
  2.     // feldergesamt = 756 und this = spieler mc
  3.     for (n=0; n<_root.feldergesamt; n++) {
  4.         if (_root["gegner"+i].hitTest(_level0["mc"+n]) or this.hitTest(_level0["mc"+n])) {
  5.             _level0["mc"+n]._visible = 0;
  6.         }
  7.     }
  8. }
__________________
__________________


4. Lunyu 2.13.

Zi Gong fragte, was einen Flasher ausmache.
Konfuzius sprach: "Er predigt nur das, was er zuvor schon selbst in die Tat umgesetzt hat."
onip ist offline   Mit Zitat antworten
Alt 23-04-2004, 13:03   #2 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
hi onip.
wie schauts aus? liegen die abdeckmc´s nebeneinander und untereinander und in gleichen abständen, unbeweglich?
dann könntest du sie relativ zur position des hittestmc´s ansprechen.

grüße aus köln
smirgel.
__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 23-04-2004, 13:10   #3 (permalink)
AchimHomeZone
 
Benutzerbild von onip
 
Registriert seit: Feb 2002
Ort: Cöllefornia / Cologne / Kölle / Köln
Beiträge: 1.541
hi smirgel,
soweit bestens
dir hoffentlich auch?

also du meinst nicht nach hitTest abfragen, sondern nach posx und posy?

und die for schleife?
__________________
__________________


4. Lunyu 2.13.

Zi Gong fragte, was einen Flasher ausmache.
Konfuzius sprach: "Er predigt nur das, was er zuvor schon selbst in die Tat umgesetzt hat."
onip ist offline   Mit Zitat antworten
Alt 23-04-2004, 13:12   #4 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,

hmm, ich weiß ja nicht, wie diese MCs aussehen, aber angenommen, sie sind alle gleich groß und liegen in einem Raster nebeneinander, kannst du das betreffende MC mittels der Korrdinaten ermitteln.

Du musst nur die Position des einen MC ermitteln und durch die Höhe und Breite der anderen MCs teilen und erhälst die Position im Raster. Wenn deine MCs alle 10 Pixel breit und hoch sind und dein einzelnen MC befindet sich auf den Koordinaten x: 90 und y:23, dann ist das betreffende MC das 9. von links und 2 von oben. Mit einer geeigneten Bezeichnung kannst du dieses direkt ansprechen:

ActionScript:
  1. x =this._x;
  2. y = this._y;
  3.  
  4. posx = Math.ceil(x / mc._width);
  5. posy = Math.ceil(y / mc._height);
  6.  
  7. _root["mc"+posx +"_" + posy]._visible = 0;

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 23-04-2004, 13:15   #5 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
ist hier kölntreffen oder was?

jupp @onip alles paletti.
und ich meine es quasi so wie ludabruda es gepostet hat. dann brauchste keine forschleife und auch keinen hittest.
__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 23-04-2004, 13:22   #6 (permalink)
AchimHomeZone
 
Benutzerbild von onip
 
Registriert seit: Feb 2002
Ort: Cöllefornia / Cologne / Kölle / Köln
Beiträge: 1.541
hier könnt ihr mal sehen, wie es aussieht.
wenn euch die gegner entgegen kommen, braucht das mir etwas zu lange. da ist die for schleife die kontrolliert wo wer steht um die mc auszublenden.
__________________
__________________


4. Lunyu 2.13.

Zi Gong fragte, was einen Flasher ausmache.
Konfuzius sprach: "Er predigt nur das, was er zuvor schon selbst in die Tat umgesetzt hat."
onip ist offline   Mit Zitat antworten
Alt 23-04-2004, 13:22   #7 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Kölntreffen, jaja, wenn ich es schon nicht zu den Achim-Treffen schaffe, dann doch wenigstens hier

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 23-04-2004, 13:24   #8 (permalink)
AchimHomeZone
 
Benutzerbild von onip
 
Registriert seit: Feb 2002
Ort: Cöllefornia / Cologne / Kölle / Köln
Beiträge: 1.541
ich glaub schon das ich eine brauch, da level für level mehr gegner kommen.
__________________
__________________


4. Lunyu 2.13.

Zi Gong fragte, was einen Flasher ausmache.
Konfuzius sprach: "Er predigt nur das, was er zuvor schon selbst in die Tat umgesetzt hat."
onip ist offline   Mit Zitat antworten
Alt 23-04-2004, 13:26   #9 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
ja, da hast du doch genau dein Raster. Und deinem beweglichen MC musst du doch nur beim Ziehen mitgeben, an welcher Position er im Raster steht. Bei Bewegung musst du nur den richtigen Achsenwert inkrementieren oder dekrementieren. Mit diesen Werten kannst du direkt den darunterliegenden MC anquatschen.


Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 23-04-2004, 13:28   #10 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
ja, aber du brauchst die Schleife nicht über alle 756 Blöcke, sondern nur über alle Gegner und vor allem immer noch ohne hitTest...

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 23-04-2004, 14:00   #11 (permalink)
AchimHomeZone
 
Benutzerbild von onip
 
Registriert seit: Feb 2002
Ort: Cöllefornia / Cologne / Kölle / Köln
Beiträge: 1.541
ja das ist deutlich besser, das fluppt ja richtig.
jetzt hab ich nur das problem die abdeckmc richtig zu errechen.
die heißen mc0 - mc755

z.b.:

x =100;
y = 100;

posx = Math.ceil(x / 20); // 5
posy = Math.ceil(y / 20); // 5

welches von 756 mc wird jetzt angesprochen?

oder anders, wie dupliziere ich 756 mc damit die bennung
mc5_5 heißt

meine bühne ist 720x420
die mc's sind 20x20
hätte dann 36x21 reihen zu verfügung

könnt ihr mir dabei noch helfen ?
__________________
__________________


4. Lunyu 2.13.

Zi Gong fragte, was einen Flasher ausmache.
Konfuzius sprach: "Er predigt nur das, was er zuvor schon selbst in die Tat umgesetzt hat."
onip ist offline   Mit Zitat antworten
Alt 23-04-2004, 14:04   #12 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
habe irgendwann mal n kleines tut u.a. darüber geschrieben:
http://www.flactory.de/stuff/tutorials/array1.swf (ab seite 2)

sonst frag nochmal
__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 23-04-2004, 14:22   #13 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
du kannst die Bezeichnung mc0-mc755 auch lassen....

Du weißt, du hast 21 Reihen à 36 MCs.
Bei Pos 5/5 hast du Element 5*36 + 5 - 1= 184

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 23-04-2004, 14:47   #14 (permalink)
AchimHomeZone
 
Benutzerbild von onip
 
Registriert seit: Feb 2002
Ort: Cöllefornia / Cologne / Kölle / Köln
Beiträge: 1.541
super ihr zwei, jetzt läuft es perfekt, danke.
__________________
__________________


4. Lunyu 2.13.

Zi Gong fragte, was einen Flasher ausmache.
Konfuzius sprach: "Er predigt nur das, was er zuvor schon selbst in die Tat umgesetzt hat."
onip ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 04:17 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele