vinTagesworld Flash forum

Stel zelf een vraag in het flash forum!


bolletje laten botsen
blokje door Sikken op 02-02-07 om 20:12
hoi, ik zit me hier blind te staren op een stukje code:
dit laat een bolletje botsen op een "floor"-lijntje:

actionscript code

onClipEvent(load){
velocity = 0
gravity = 2
friction = 0.01
}
onClipEvent(enterFrame){
velocity += gravity
velocity -= friction*velocity
_y += velocity
if(_y>_root.floor._y){
_y = _root.floor._y
velocity *= -0.9
}
}

 


vooral de lijn :
if(_y>_root.floor._y){
_y = _root.floor._y

als je root.floor._y nu op 0 ligt, dan is Y altijd nul... ?
Of zie ik iets over het hoofd??

thx!

 


Reply
blokje door vinTage op 02-02-07 om 21:15
Ik snap je vraag niet zo goed.

Als je een movieclip hebt (genaamd floor) en je voegt dat script toe aan een andere mc(een bolletje wss) dan zal dat bolletje eropvallen en stuiteren tot het stil ligt (ervanuitgaand dat het balletje BOVEN floor hangt).

if(_y>_root.floor._y){
_y = _root.floor._y
}

betekent
als(_yPositie hoger is dan de _yPositie van floor){
//balletje moet dus niet meer stuiteren en stil blijven liggen OP de floor
}

de _y van een object hoeft niet persee 0 te zijn, las de _y van floor 428 zou zijn, dan is de _y van bolletje ook 428 (als hij uitgestuitert is)

 
Reply
blokje door Sikken op 02-02-07 om 21:46
jah, ik zie net dat het assenstelsel van Flash iets anders is dan ik gewend ben De (0,0) ligt blijkbaar links boven??

lol das de eerste keer dat ik dat zie :)

Maar nog 1 iets: waar wordt er van richting verandert? het bolletje stuitert zoals je zegt, maar ik zie nergens een verandering van richting.

Ik zie gewoon de dingen verkeerd denk ik, maar soms kan een klein woordje uitleg meteen alles opklaren ;)

stel je begint met een velocity=0 --> die wordt dan 2 als je gravity erbij optelt, vervolgens 1.98 en als je in de IF-lus komt, dan is die zo'n -1.8

Dan wordt er weer twee bij opgeteld -> 0.2, deze wordt dan 0.198 , en dus POSITIEF, dus de y stijgt nog steeds, ook al zat je in de IF-lus...

Zie je het probleem? Die Velocity wordt precies nooit NEGATIEF, dus de Y van het bolletje daalt gelijk nergens...terwijl het toch ergens terug omhoog moet om te stuiteren...

merci voor de uitleg toch ;) Ik zal het sebiet nog eens goed bekijken.
Ik staar me gewoon blind denk ik

cheers


 
Reply
blokje door vinTage op 02-02-07 om 22:09
Mischien helpt dit iets beter.
En er is wel een positieve en negative waarde hoor.

sidenote, ik heb de AS in een keyFrame gezet ipv aan de objecten, ik vind dat je deze gewoonte zoveel mogelijk moet toepassen/gebruiken/aanleren.

Als er maar een klein aantal objecten zijn is het niet zo'n probleem, maar bij uitgebreide bestanden kan het knap lastig zijn om te debuggen als je niet weet waar alle code staat.

 
Reply
blokje door Sikken op 02-02-07 om 22:14
hah, netjes gedaan

wat de sidenote betreft, je hebt gelijk, er idd niks zo lastig als zoeken naar code

ik snap alles nu, merci voor de uitleg ;)

 
Reply
blokje door vinTage op 02-02-07 om 22:15
hef phun flashing

 
Reply
blokje door furax op 04-02-07 om 21:09
hopelijk neemt niemand die zin dubbelzinnig op...

 
Reply
blokje door vinTage op 04-02-07 om 21:19
Laten we het erophouden dat flash 18+ is dan

 
Reply
blokje door W0utah op 04-02-07 om 22:46
ik wil niet moeilijk doen vintage, maar je voorbeeld met dat balkje klopt niet (als je precies wilt doen), als je jouw balkje uit het scherm doet dan bots het balletje op een onzichtbare balk

 
Reply
blokje door vinTage op 04-02-07 om 22:48
Nee hoor, hij houd dan nog steeds de _Y van floor aan, alleen kan je floor dan niet meer verplaatsen omdat hij buiten de swf zit.

 
Dit topic is gesloten.