PDA

Volledige versie bekijken : Key movement 3


Energizer
%Europe/Berlin %686 %2007, 16:28
Aloha luitjes,

Alweer de 3de keer in 24h dat ik hulp nodig heb met key momvements ^^
Maargoed,

Wat wil ik?
Een poppetje dat rondloopt. Als er geen pijltje ingedrukt word moet hij stil blijven staan in de richting waar hij als laatste heen is gelopen. Als er een pijltje ingedrukt is moet hij die richting op lopen met een beweging van een lopend mannetje.

Wat heb ik?
4 graphics van het mannetje stilstaand in elke richting, en 4 MC's van het mannetje lopend in elke richting.

Nu het script, want hier loop ik behoorlijk op vast.

Eigenlijk heb ik op het moment niks omdat ik steeds vastloop. Ik ben het nu aan het uitproberen op maar 1 pijltje, maar dat lukt ook niet.
Ik heb,
onClipEvent(enterFrame){
snelheid = 5;
if(Key.isDown(Key.LEFT)){
this._x -= snelheid;
gotoAndPlay(2);
}
}

(gotoandplay(2) slaat op het feit dat de mc met de loopbeweging in het 2de frame van de algemene mc staat, en op frame 1 de stilstaande graphic.

Wie kan mij helpen? Of ben ik onduidelijk?
Ik hoor het wel

bvd

Energizer
%Europe/Berlin %700 %2007, 16:49
Laat ik anders stellen; bestaat er een code in as die zegt,
if(er geen toets is ingedrukt){
doe dit;
}

??
Dan kom ik er waarschijnlijk zelf wel uit namelijk. Ik hoor het wel.

ninetynine
%Europe/Berlin %704 %2007, 16:54
Jij definieert een variabele (snelheid) in een onEnterFrame = FOUT. (dit even ter zijde)
Lees eerst even dit :http://www.flashfocus.nl/forum/showthread.php?t=5504
heb je nog problemen roep je maar :)

Het springen doet er blijkbaar niet direct toe bij jou, maar het gaat om het pricipe van lopen ;)
btw posts kan je editten dus je hoeft niet te reageren op je eigen post

Mr. Black
%Europe/Berlin %707 %2007, 16:58
Laat ik anders stellen; bestaat er een code in as die zegt,
if(er geen toets is ingedrukt){
doe dit;
}

??
Dan kom ik er waarschijnlijk zelf wel uit namelijk. Ik hoor het wel.
niet direct, maar check deze (http://www.tutorialized.com/tutorial/Detecting-On-Key-Release/3068) tutorial effe. Daar heb je wel wat aan denk ik :)

sjors

ninetynine
%Europe/Berlin %709 %2007, 17:01
Waarom willen checken als er niet gebeurd? Terwijl het veel simpeler kan : checken
als iemand toets indrukt => lopen. Loslaten = stop. Maar laten we nu niet gaan prutsen
en overbodige dingen doen, zoals 20 maal per seconde kijken en zien dat de gebruiker nog steeds
niet doet...

Energizer
%Europe/Berlin %712 %2007, 17:05
@Houstonfeaks,
Het word geen mario-like game, maar een pokemon-like game ;)
Dus springen is niet van toepassing nu.

@Mr.Black
Ik heb er inderdaad wat aan :) Thanks a lot

ninetynine
%Europe/Berlin %719 %2007, 17:16
En dan nog, ik zeg het gaat om het lopen.
De horizontale bewegingen kan je gemakkelijk projecteren op de verticale beweging.

Alle code komt op frame 1 van de movie:


var stepS = 8;
this.onEnterFrame = function() {
if (Key.isDown(Key.LEFT)) {
hero._x -= stepS;
} else if (Key.isDown(Key.RIGHT)) {
hero._x += stepS;
}
};

En je character kan lopen!

Energizer
%Europe/Berlin %724 %2007, 17:22
Ja, dat is het probleem ook niet. Ik kan moeiteloos een graphic/mc rond laten lopen zoals ik wil. Maar het gaat erom, dat het poppetje een loopbeweging moet maken als er een x of y waarde word aangepast (in dit geval met pijltjes), en anders moet hij stilstaan. En dát lukt me niet.

Energizer
%Europe/Berlin %740 %2007, 17:46
AARG. Het lukt NIET en ik raak GEFRUSTREERD.
PROBLEEM:
Ik wil een poppetje laten lopen a la pokemon. Dus 4 richtingen op. Als het poppetje LOOPT moet het BEWEGEN. Als het poppetje STILSTAAT moet het poppetje NIET BEWEGEN(nu heb ik het niet over bewegingen in x of y richtingen, maar bewegen in de zin van dat het poppetje een loopbeweging maakt).

*weer beheerst*
En dat lukt niet helemaal. Voor de goede orde, ik weet best hoe ik een mc moet laten lopen, maar het gaat erom dat het me niet lukt dat als de knop is losgelaten(daarom vroeg ik eerder in het topic of daar een code voor was), het poppetje moet stoppen met bewegen, maar wel moet blijven staan in de richting die het laatst is ingedrukt.

Duss..... suggesties?

Mr. Black
%Europe/Berlin %751 %2007, 18:02
uit hoeveel frames bestaat je 'loop actie'? gewoon 2? of meerdere. zou handig zijn om dat te weten...

gb41
%Europe/Berlin %826 %2007, 19:50
Bestaat uit meerdere frames. Maar ik word achteraf toch niet wijs uit de link die je me stuurde Mr.Black... Zijn er misschien andere manieren voor een "KeyRelease"?

Energizer
%Europe/Berlin %829 %2007, 19:54
Uit meerdere frames. Achteraf werd ik trouwens toch niet wijs uit de link die je stuurde Mr.Black... Zijn er nog andere manieren voor een "KeyRelease" functie?

Energizer
%Europe/Berlin %863 %2007, 20:43
niemand?

rackdoll
%Europe/Berlin %418 %2007, 10:02
de code die je op het begin hebt gepost komt er aardig dicht in de buurt.
Ik zou zeggen zoek effe bij http://www.kirupa.com daar vindt je wel een aantal goede tuts voor je probleempje ;)
succes!

Energizer
%Europe/Berlin %513 %2007, 12:20
Oke, ik heb nu dit:


onClipEvent (enterFrame) {
snelheid = 4;
if (Key.isDown(Key.LEFT)) {
this._x -= snelheid;
keyc = links;
gotoAndStop(3);
} else if (Key.isDown(Key.RIGHT)) {
this._x += snelheid;
keyc = rechts;
gotoAndStop(4);
} else if (Key.isDown(Key.UP)) {
this._y -= snelheid;
keyc = omhoog;
gotoAndStop(8);
} else if (Key.isDown(Key.DOWN)) {
this._y += snelheid;
keyc = beneden;
gotoAndStop(7);
}
}
onClipEvent (keyUp) {
if (keyc == links) {
gotoAndStop(1);
} else if (keyc == rechts) {
gotoAndStop(3);
} else if (keyc == omhoog) {
gotoAndStop(6);
} else if (keyc == beneden) {
gotoAndStop(5);
}
}


Ik heb echt geen idee of dit ontzettend gepruts is, of dat ik de functie keyUp totaal verkeerd begrijp, maar ik dacht dat het misschien handig was dat ik in ieder geval een compleet niet functionerend script had, zodat jullie meer zicht op de zaak hebben.

Het resultaat van dit script is hier (http://www.projects.wac-entertainment.nl/keymovement.swf) te zien, en de .fla is hier (http://www.projects.wac-entertainment.nl/keymovementfla.zip) te downloaden.

Nu even voor de duidelijkheid wat er nu precies niet klopt,
Als je een key loslaat, gaat het mannetje automatisch naar de stilstaande positie met zijn gezicht naar links. Hij moet gewoon stil blijven staan in de richting waar hij het laatst is heen gelopen.

Ik hoop dat ik nu duidelijk genoeg ben geweest... Ik hoop dat jullie me verder kunnen helpen.

Alvast bedankt,
Energizer