vinTagesworld Flash forum
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 codeonClipEvent(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!
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)
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
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.
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 ;)
hef phun flashing
door furax op 04-02-07 om 21:09
hopelijk neemt niemand die zin dubbelzinnig op...
Laten we het erophouden dat flash 18+ is dan
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
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.