Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-02-2004, 15:21   #1 (permalink)
Flash-Bang
 
Registriert seit: Jan 2004
Beiträge: 210
hitTest zwischen dynamisch erstellten Objekten?

Frame1:
ActionScript:
  1. movebug = function () {
  2.     bugnumber = this["bug"+e1];
  3.     //
  4.     // variablen werden erstellt:
  5.     if (bugnumber.vars != 1) {
  6.         duplicateMovieClip(bug, "bug"+e1, e1);
  7.         bugnumber.rotationspeed = 0;
  8.         bugnumber.display = 0;
  9.         bugnumber.vars = 1;
  10.         bugnumber.minx = 10;
  11.         bugnumber.miny = 10;
  12.         bugnumber.maxx = 486;
  13.         bugnumber.maxy = 386;
  14.         bugnumber._x = Math.random()*bugnumber.maxx;
  15.         bugnumber._y = Math.random()*bugnumber.maxy;
  16.         bugnumber.count = 0;
  17.     }
  18.     // rotation:
  19.     bugnumber.rotation = Math.random()*20-10;
  20.     bugnumber.rotationspeed = bugnumber.rotationspeed+(bugnumber.rotation/10);
  21.     if (bugnumber.rotationspeed>10) {
  22.         bugnumber.rotationspeed = 10;
  23.     }
  24.     if (bugnumber.rotationspeed<-10) {
  25.         bugnumber.rotationspeed = -10;
  26.     }
  27.     // bewegung aus rotation
  28.     bugnumber._rotation = bugnumber._rotation+bugnumber.rotationspeed;
  29.     bugnumber.w = (bugnumber._rotation+180)/180*Math.PI;
  30.     bugnumber.yspeed = Math.sin(bugnumber.w);
  31. bugnumber.xspeed = Math.cos(bugnumber.w);
  32. bugnumber.display = bugnumber._rotation;
  33.     if (bugnumber._x+bugnumber.xspeed<bugnumber.minx or bugnumber._x+bugnumber.xspeed>bugnumber.maxx) {
  34.         bugnumber.xspeed = 0;
  35.         bugnumber.yspeed = bugnumber.yspeed-bugnumber.yspeed/5;
  36.     }
  37.     if (bugnumber._y+bugnumber.yspeed<bugnumber.miny or bugnumber._y+bugnumber.yspeed>bugnumber.maxy) {
  38.         bugnumber.yspeed = 0;
  39.         bugnumber.xspeed = bugnumber.xspeed-bugnumber.xspeed/5;
  40.     }
  41.     // positionierung
  42.     bugnumber._x = bugnumber._x+bugnumber.xspeed;
  43.     bugnumber._y = bugnumber._y+bugnumber.yspeed;
  44.  
  45. //HitTest
  46.  
  47.     while (bugnumber.count<numofbugs) {
  48.         bugnumber.count = bugnumber.count+1;
  49.         if (this.hitTest([bug add bugnumber.count]._x, [bug add bugnumber.count]._y, true)) {
  50.             numofbugs = numofbugs+1;
  51.         }
  52.     }
  53. };

Frame2:

ActionScript:
  1. e1 = 0;
  2. numofbugs = 10;
  3. while (e1<numofbugs) {
  4.     e1++;
  5.     movebug()
  6. }

Frame3:

ActionScript:
  1. gotoAndPlay(2);


soooo die bugs bewegen sich auch wie sie sollen (anzahl bestimmt durch numofbugs = 10; -> 10 käfer)

nur funzt der hittest nicht!

help pls
sauerkraut ist offline   Mit Zitat antworten
Alt 03-02-2004, 15:58   #2 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
if (this.hitTest....


wer soll denn da wen hitten ?
warrantmaster ist offline   Mit Zitat antworten
Alt 03-02-2004, 16:23   #3 (permalink)
Flash-Bang
 
Registriert seit: Jan 2004
Beiträge: 210
hmm stimmt
edit:

if (bugnumber.hitTest([bug add bugnumber.count]._x, ....

auch so gehts nicht

Geändert von sauerkraut (03-02-2004 um 16:24 Uhr)
sauerkraut ist offline   Mit Zitat antworten
Alt 04-02-2004, 14:10   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
ActionScript:
  1. while (bugnumber.count<numofbugs) {
  2.                 bugnumber.count = bugnumber.count+1;
  3.                 if (this.hitTest([bug add bugnumber.count]._x, [bug add bugnumber.count]._y, true)) {
  4.                         numofbugs = numofbugs+1;
  5.                 }
  6.         }

wann setzt du bugnumber.count wieder auf 0?deine abfrage läuft so nur einmal, weil coutn danach schon bei 10 ist

if (bugnumber.hitTest(this[bug add bugnumber.count]._x

bei string und zahlen addition darfste auch nen plus verwenden

man testet zwei mcs gewöhnlich nicht über ihre mittelpunkte- so wie du testest hitten die nur wenn einer mit dem mittelpunkt über dem anderen liegt-unwahrscheinlicher

so testest du 2 verschiedene mcs
ActionScript:
  1. if (bugnumber.hitTest(this[bug add bugnumber.count])){
  2. //hit
  3. }

deluxe

Geändert von Deluxe (04-02-2004 um 14:11 Uhr)
Deluxe 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 17:53 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele