15. marts 2005 - 14:42Der er
8 kommentarer og 1 løsning
hitTest skal kun virker en gang
Hejsa
Hittesten virker fint men den skal kun virke en gang så this efterfølgende kan move igen?
onClipEvent (enterFrame) { this.ramt =false;
if (this.ramt) continue; if(this.hitTest(_parent.wall1)){ moveSpeed=0; this.ramt = true;}
this.ramt er noget jeg har brugt et andet sted som virker der, men ikke her?
Et andet spørgsmål er ang. at fjerne Attached Movieclips (container), jeg har forsøgt med removeMovieClip men uden held, er der nogen der har en ide om hvad der kan være galt.
Du starter jo med at sætte this.ramt til at være false - hvilket sker hver gang dit script kører. Derudover er vi ikke så meget for onClipEvent - flyt det ud til at framescript et andet sted - så har du også bedre styr på det.
Mht. attachMovieClip så fjernes du dem netop igen ved at bruge removeMovieClip - kom med lidt kontekst, så kigger vi på det :)
Jeg havde ikke taget den med, men den var placeret indenfor en onEnterFrame funktion Når jeg bruge return istedet for continue står den og flipper mellem de 4 fire frames jeg har i min figur (i min figur ligger der et movieclip(med flere frames) pr. frame, ved ikke om det har nogen betydning)?
Jeg forsøger at forklare det...figur må ikke kunne gå igennem wall derfor hitTest og moveSpeed = 0. Figuren er styret af key-press og når jeg prøver at styre væk fra wall "hænger" figuren nærmest fast til wall, sikkert fordi den tjekker onEnterframe. Jeg har prøvet med figur.ramt og meget andet? Har sat stjerner ved problemet.
move_objects = function () { this._y -= this.yspeed; if (this._y>=500) {this.reset();} };
set_objects();
take_life = function (){ lives -=1; };
get_lives = function (){ return (lives); };
figur.ramt = false; figur.onEnterFrame = function(){ if (Key.isDown(Key.RIGHT)) { this.gotoAndPlay(2); this._x+=moveSpeed; } else if (Key.isDown(Key.LEFT)) { this.gotoAndPlay(3); this._x-=moveSpeed;
} else { this.gotoAndStop(1); }
*** Har prøvet med this.ramt men uden held***
if (this.ramt) return; if (this.hitTest(wall1)) { this.moveSpeed=0; this.ramt = true; }
if (this.hitTest(wall2)) { this.moveSpeed=0;} };
_root.onEnterFrame = function(){ if (lives == 0){ _root.gotoAndStop("game_over"); }
for (var i = 0; i < total_objects; i++) { if (this["object"+i].ramt) continue; if (figur.haand_mc.hitTest(this["object"+i])) { this["object"+i].gotoAndPlay(5); this["object"+i].ramt = true; _root.Sound_hit1.start(); _root.score +=1; this.stak.nextFrame();
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.