Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 29-05-2006, 11:34
Nijpjes
Avatar van Nijpjes
Nijpjes is offline
Ik wil een interactieve draaiende limoen die steeds harder naar rechts draait als je met de muis verder naar rechts gaat en steeds harder naar links draait als je met de muis verder naar links gaat. Dit heb ik inmiddels voor elkaar.

De moeilijkheid zit m in het stoppen van het draaien. Ik wil namelijk dat als de muis niet over de limoen is (onRollOut) de limoen langzaam afremt met draaien tot ie stil staat.
De code:
Code:
mouseInterval = setInterval(rotation,10);

function rotation () {
	if(_root._ymouse < 200) {
		draai(limoen);
	}
	else {
		stoppen(limoen);
	}
}

function draai () {
pos = (_root._xmouse-limoen._x)/250;
	limoen._rotation += pos;
}

function stoppen () {
	limoen._rotation += pos/250;
}
In de functie "stoppen" moet volgens mij 1 of andere wiskundige formule die 0 nadert.

De variabele "pos" geeft de positie aan van de limoen op elk moment. Dit heb ik gedaan zodat ik in de "stoppen" functie aan kan geven dat de limoen moet beginnen met afremmen bij de positie "pos"...

Iemand een idee?
__________________
Muziek moet ballen hebben, maar niet van die vieze harige... | www.breaktrack.com
Met citaat reageren
Advertentie
Oud 29-05-2006, 16:31
Engadin
Avatar van Engadin
Engadin is offline
functies als 1/x of andere functies met een assymptoot gebruiken?
__________________
Jongeren - Natuur: http://www.njn.nl
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kom mee op zomerkamp: http://www.zomerkampen.njn.nl
Met citaat reageren
Oud 29-05-2006, 16:34
Nijpjes
Avatar van Nijpjes
Nijpjes is offline
Citaat:
Engadin schreef op 29-05-2006 @ 17:31 :
functies als 1/x of andere functies met een assymptoot gebruiken?
ja, maar hoe?

Ik heb niet echt een variabele ofzo. Ik lijk die variabele "pos" niet te kunnen gebruiken ofzo...of moet ik m buiten die functie zetten?
__________________
Muziek moet ballen hebben, maar niet van die vieze harige... | www.breaktrack.com
Met citaat reageren
Oud 29-05-2006, 18:31
Engadin
Avatar van Engadin
Engadin is offline
pos is een private variabele van functie draai

je zou dus voor functie stoppen eerst die variabele weer aan moeten maken. Ju kunt ook gewoon meteen _root._xmouse-limoen._x gebruiken, wat je waarschijnlijk wilt.

Ik denk dat je dat ding iedere 10ms iets langzamer langzamer gaten draaien, totdat hij stilstaat, dus:

Code:
function stoppen () {
	if(limoen._rotation != 0) limoen._rotation -= limoen._rotation/250;
}
Die 250 moet je zo zetten dat je hem snel genoeg langzamer wil laten gaan.
__________________
Jongeren - Natuur: http://www.njn.nl
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kom mee op zomerkamp: http://www.zomerkampen.njn.nl

Laatst gewijzigd op 29-05-2006 om 18:34.
Met citaat reageren
Oud 29-05-2006, 18:55
Nijpjes
Avatar van Nijpjes
Nijpjes is offline
Citaat:
Engadin schreef op 29-05-2006 @ 19:31 :
pos is een private variabele van functie draai

je zou dus voor functie stoppen eerst die variabele weer aan moeten maken. Ju kunt ook gewoon meteen _root._xmouse-limoen._x gebruiken, wat je waarschijnlijk wilt.

Ik denk dat je dat ding iedere 10ms iets langzamer langzamer gaten draaien, totdat hij stilstaat, dus:

Code:
function stoppen () {
	if(limoen._rotation != 0) limoen._rotation -= limoen._rotation/250;
}
Die 250 moet je zo zetten dat je hem snel genoeg langzamer wil laten gaan.
Vet dat je een poging hebt gewaagd

Ik moet die 250 best wel laag maken om m snel te laten vertragen (waarschijnlijk zat hier mijn fout in, ik had steeds een waarde van ongeveer 250 aangehouden waardoor de vertraging nagenoeg niet te zien is...ik heb nu een waarde van 20).
Dus het werkt!! Fucking eindelijk.

Er zijn nog 2 dingetjes waardoor het niet 100% naar behoren werkt:
De limoen remt af in de omgekeerde richting. Dus als ie bijv. naar rechts draait, je onrollOut, dan gaat ie opeens naar links draaien en remt tegelijkertijd af.
En de limoen stopt op een vast punt (hetzelfde punt als dat ie begint).

Ik weet dat ik dit kan oplossen door de functie aan te passen, ik ben niet slecht in wiskunde, maar niet goed genoeg om te zien wat ik aan moet passen. Dus als je me daar ook nog even bij zou willen helpen ben ik je nog dankbaarder dan ik al was
__________________
Muziek moet ballen hebben, maar niet van die vieze harige... | www.breaktrack.com
Met citaat reageren
Oud 29-05-2006, 22:00
Engadin
Avatar van Engadin
Engadin is offline
Hij gaat misschien de verkeerde kant op omdat -= niet goed werkt ofzo. Je zou
limoen._rotation -= limoen._rotation/250;
kunnenn vervangen door
limoen._rotation = limoen._rotation - limoen._rotation/250;

Dat hij altijd op hetzelfde punt stopt omdat hij stopt als de het ding 0 geroteerd is. Om dit te verhelpen zou je iets moeten hebben om de snelheid te kunnen bepalen, bijvoorbeeld een hulpvariabele. Het zou zo kunnen:

Code:
mouseInterval = setInterval(rotation,10);

function rotation () {
	if(_root._ymouse < 200) {
		draai(limoen);
	}
	else {
		stoppen(limoen);
	}
pos = limoen._rotation;
}

function draai () {
pos = (_root._xmouse-limoen._x)/250;
	limoen._rotation += pos;
}

function stoppen () {
global pos;
	limoen._rotation = limoen._rotation - (pos-limoen._rotation)/250;
pos = limoen._rotation;
}
Ik weet niet of de code zo goed is (ik ken alleen php en c). Het gaat fout als de snelheid zo hoog is dat hij in 10ms meer dan 1 rondje draait.
__________________
Jongeren - Natuur: http://www.njn.nl
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kom mee op zomerkamp: http://www.zomerkampen.njn.nl
Met citaat reageren
Oud 30-05-2006, 12:11
Nijpjes
Avatar van Nijpjes
Nijpjes is offline
Ik weet waarom de limoen de verkeerde kant op draait, dat heeft met het 2e probleem te maken:
Als de limoen afremt gaat ie terug naar zijn beginpositie, hiervoor neemt ie de kortste weg (geloof ik) en als je dus naar rechts draait als je onRollOvert, dan draait ie terug naar links om weer in zijn oude positie te komen.

Ik heb je code geïmporteerd, maar hij werkt niet helemaal. En omdat ik het probleem dus inmiddels weet heb ik ook niet uitgezocht wat er niet aan klopt. Daarbij weet ik ook helemaal nix van de "_global property" of wat het ook is (in Flash moet er nog een underscore voor).

Ik ben inmiddels aan een volgende uitdaging begonnen. Ik wil namelijk knoppen op de limoen hebben, maar geen simpele, maar van die fancy die langzaam wit worden als je onRollOvert en langzaam weer uitfaden als je onRollOut. Dit kan door er movieclips van te maken, maar aangezien deze movieclip-buttons op de limoen zitten (ze moeten meedraaien) zitten ze dus in de limoen movieclip...
En dan werkt het dus niet meer zo goed.

Dit is de code die ik heb in de limoen (dus in een movieclip):
Code:
home.onRollOver = over;
home.onRollOut = out;

function over() {
	this.gotoAndPlay(2);
}

function out() {
	this.gotoAndPlay(11);
}
home is de instance name van de knop waar het over gaat.
De verwijzingen die bij die gotoAndPlay horen (frame 2 en 11) verwijzen naar de frames in de movieclip "home".
Volgens mij moet ik met _parent en _root werken...maar daar ben ik niet zo goed in enzo...

Iemand?
__________________
Muziek moet ballen hebben, maar niet van die vieze harige... | www.breaktrack.com
Met citaat reageren
Oud 30-05-2006, 14:10
Nijpjes
Avatar van Nijpjes
Nijpjes is offline
Cancel that.

Heb een andere manier gevonden om bovenstaande te bereiken. Beetje omslachtig misschien, maar het werkt!
Ik hoop binnenkort mn creatie hier te posten voor de mensen die het willen zien
__________________
Muziek moet ballen hebben, maar niet van die vieze harige... | www.breaktrack.com
Met citaat reageren
Oud 30-05-2006, 16:01
Engadin
Avatar van Engadin
Engadin is offline
Jaaa
__________________
Jongeren - Natuur: http://www.njn.nl
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kom mee op zomerkamp: http://www.zomerkampen.njn.nl
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 01:29.