Volledige versie bekijken : hitTest probleem
Fatty Owl
%Europe/Berlin %526 %2005, 13:38
owk zie de onderstaande fla, ik zou graag hebben dat je als je tegen de muur botst i op 0 wordt gezet. dit gaat met hittest maar omdat dit in 3D is zijn er daar wel probleempjes mee [:o)] ik heb al geprobeert met een "hitgebied" te zetten maar dit brengt ook weer problemen mee 8~
rackdoll
%Europe/Berlin %548 %2005, 14:09
als je iets op het net zet.....doe het dan niet in flash 8....er zijn nog te weinig mensen die hem hebben en kunnen het dus niet bekijken.......export hem effe naar flash 7...dan kijk k effe ;)
Fatty Owl
%Europe/Berlin %626 %2005, 16:01
ok sorry lette even niet op.
oh ja vergeten te zeggen, ik ben in een goed humeur dus geef ik graag reputatiepunten ;)
rackdoll
%Europe/Berlin %657 %2005, 16:46
nog steeds flash 8 file..:D
haampie
%Europe/Berlin %677 %2005, 17:15
ik heb ook wat geprobeerd... moeilijk zeg :) ik kom er ook niet verder mee... sorry. wel laten showen alsie klaar is
Fatty Owl
%Europe/Berlin %716 %2005, 18:12
nee ik heb hem gepublished als flash 7... haampie heeft zo te zien ook de 7 en daar lukt het wel.
haampie
%Europe/Berlin %797 %2005, 20:08
ik heb flash 8.. alleen de trial.. :)
Fatty Owl
%Europe/Berlin %798 %2005, 20:10
en wat staat er bij jouw als publish setting? flashplayer 8 of 7
mrijsdijk
%Europe/Berlin %811 %2005, 20:28
het gaat niet om de publish settings... maar om het fla bestand... je moet hem saven als mx
Fatty Owl
%Europe/Berlin %813 %2005, 20:31
ah sorry hupsakee
mateo)
%Europe/Berlin %437 %2005, 11:30
ha fatty,
hier is een werkende versie terug. wat ik gedaan heb is het volgende.
1) rond de bumper van de auto heb ik een paar 'point mc's' aangebracht. op die mc's staat de volgende code:
onClipEvent(load){
_root.reg(this);
}
daarmee worden de mc's 'geregistreerd', dat is voorzien van een point object en opgeslagen in een points array:
var points:Array = new Array();
function reg(pointMC:MovieClip):Void{
var point:Object = {x:pointMC._width/2, y:pointMC._height/2};
pointMC.point = point;
pointMC.localToGlobal(pointMC.point);
pointMC.gotoAndStop(1);
points.push(pointMC);
}
3) Ik attach een extra movieClip (en maak die invisible). Die movieClip stelt de basis van de muur voor. Als de auto tegen de basis van de muur aankomt, heb je een botsing, dacht ik zo.
(...)
removeMovieClip("muur_mc");
removeMovieClip("basis_mc");
attachMovie("muur", "muur_mc", depth);
attachMovie("mb", "basis_mc", depth + 100);
basis_mc._visible = false;
muur_mc._x = xpos;
muur_mc._y = ypos;
basis_mc._x = xpos;
basis_mc._y = ypos + 190;
(...)
aan het eind van jouw onEnterFrame acties is nu een call naar de checkHit functie geplaatst. Die functie loopt door het points array en kijkt of een van de punten de muur-basis raakt:
function checkHit(){
var pointMC:MovieClip;
trace(points.length);
for(var i = 0; i < points.length; i++){
pointMC = points[i];
if(basis_mc.hitTest(pointMC.point.x,pointMC.point. y,true)){
pointMC.gotoAndPlay(2);
break;
}
}
}
That's it. Je kan dit ook anders aanpakken, maar hier heb je in ieder geval wel de basis.
succes :)
Fatty Owl
%Europe/Berlin %629 %2005, 16:06
zeer mooi, maar het werkt niet ;) de hittest wordt altijd uitgevoerd ookal rijdt je langs de muur
mateo)
%Europe/Berlin %649 %2005, 16:35
ah yes, stom, dat komt doordat je de auto zelf over de y-as beweegt (i.p.v. dat je de weg over de y-as beweegt). dat betekent dat je dat point object steeds opnieuw zal moeten aanmaken. De checkHit functie komt er dan zo uit te zien.
function checkHit(){
var pointMC:MovieClip;
for(var i = 0; i < points.length; i++){
pointMC = points[i];
var point:Object = {x:pointMC._width/2, y:pointMC._height/2};
pointMC.point = point;
pointMC.localToGlobal(pointMC.point);
if(basis_mc.hitTest(pointMC.point.x,pointMC.point. y,true)){
pointMC.gotoAndPlay(2);
break;
}
}
}
deze regel
var point:Object = {x:pointMC._width/2, y:pointMC._height/2};
kan je trouwens ook wel zo schrijven:
var point:Object = {x:pointMC._x, y:pointMC._y};
(die puntjes zijn al klein genoeg)
Fatty Owl
%Europe/Berlin %662 %2005, 16:53
de weg beweegt wel over de y as hoor;) de aut staat stil
maar bedankt ht werkt :D
Fatty Owl
%Europe/Berlin %666 %2005, 17:00
ik ondervind wel prblemen, zoals dat je langs zij in de muur kan rijden. ik heb al geprobeert om meet hitpoints te zetten maar dat lukt langs een kant niet...
mateo)
%Europe/Berlin %670 %2005, 17:05
@post 14:
if (Key.isDown(Key.UP)) {
auto_mc._y -= 5;
(...)
da's niet de weg, maar de auto :)
@post 15: ik denk dat je beter de muur_basis mc iets kan verkleinen als het je te krap wordt
of juist MINDER hitpoints plaatsen
en eh:
Je kan dit ook anders aanpakken, maar hier heb je in ieder geval wel de basis.
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.