Flash narazanie - pad symbolu
Flash narazanie - pad symbolu
neviete nekdo pls ako by sa dalo vo flashi urobit narazanie a pad symbolu, ze by sa po dotyku s inym symbolom - objektom vykonala animacia, pripadne neco ine?
-
weroro
Flash coder
- Príspevky: 3206
- Registrovaný: 14 feb 2009, 22:34
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Flash narazanie - pad symbolu
Daj lepší popis a hlavne verziu ActionScriptu, v ktorej to chceš robiť. Ja ti viem poradiť iba v ActionScript 2.0, ak to potrebuješ v ActionScripte 3.0 na hojku to bude ťažké.
-
weroro
Flash coder
- Príspevky: 3206
- Registrovaný: 14 feb 2009, 22:34
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Flash narazanie - pad symbolu
A lepší popis? Vieš koľko je spôsobov padania a detegovania objektu? Mňa v tejto chvíli napadá 17 spôsobov. Tak si vyber.
Re: Flash narazanie - pad symbolu
odpocitava od y speed, dotkne sa zeme, potom gotoAndPlay(1) a spusti sa animacia
-
weroro
Flash coder
- Príspevky: 3206
- Registrovaný: 14 feb 2009, 22:34
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Flash narazanie - pad symbolu
Kód: Vybrať všetko
function vytvor(sirka:Number, vyska:Number, farba:Number, poradie:String):MovieClip {
var vrstva:Number = this.getNextHighestDepth();
var mc:MovieClip = this.createEmptyMovieClip("stvorcek"+poradie, vrstva);
mc.beginFill(farba);
mc.lineTo(0, vyska);
mc.lineTo(sirka, vyska);
mc.lineTo(sirka, 0);
mc.lineTo(0, 0);
mc.endFill();
return mc;
}
//
/********************
/*Táto časť je len informatívna a môžeš ju zmazať*/
this.createTextField("stat", this.getNextHighestDepth(), (Stage.width-400)/2, (Stage.height-70)/2, 400, 70);
this.stat.selectable = false;
this.stat.type = "dynamic";
//
var styl:TextFormat = new TextFormat();
styl.color = 0xDDDDDD;
styl.font = "Arial";
styl.size = 60;
styl.align = "center";
/*koniec informatívnej časti
************************/
//
vytvor(20, 20, 0xFF0000, "0");
vytvor(30, 30, 0x0000FF, "1");
//
var rychlost:Number = 2;
var objekt:MovieClip = stvorcek0;
var kurzor:MovieClip = stvorcek1;
//
this.objekt._x = this.objekt._y=-20;
this.kurzor._x = this.kurzor._y=-120;
//
Mouse.hide();
startDrag(this.kurzor, true);
//
this.onEnterFrame = function():Void {
//
if (this.objekt.hitTest(this.kurzor)) {
//SEM PATRí FUNKCIA KTORA SA MA VYKONAT PRI KOLIZII KURZORU A OBJEKTU
//_root.gotoAndPlay(2);
}
/*************************************
/*Táto časť je len informatívna a môžeš ju zmazať*/
this.stat.text = "hitTest = "+this.objekt.hitTest(this.kurzor);
stat.setTextFormat(styl);
/*koniec informatívnej časti
***************************************/
//
/*Narážanie objektu do stien*/
if (objekt._x+objekt._width<Stage.width && !odraz) {
objekt._x += rychlost;
} else if (objekt._x>0) {
odraz = true;
objekt._x -= rychlost;
} else {
odraz = false;
}
//
if (objekt._y+objekt._height<Stage.height && !odraz2) {
objekt._y += rychlost;
} else if (objekt._y>0) {
odraz2 = true;
objekt._y -= rychlost;
} else {
odraz2 = false;
}
/* END Narážanie objektu do stien*/
};
Re: Flash narazanie - pad symbolu
dik. to vsetko si dal do frame?
//autoeditácia príspevku (25 Apr 2011, 16:48)
celý ten pohyb som zvládol sám, ale robím NPC pohyb bomby.
nejak mi to nejde.
//autoeditácia príspevku (25 Apr 2011, 16:59)
dam tam:
instance name objektu je objekt a kurzoru(
)
kurzor. Nefunguje a davam to do prilohy aj s untitled.
//autoeditácia príspevku (25 Apr 2011, 16:48)
celý ten pohyb som zvládol sám, ale robím NPC pohyb bomby.
nejak mi to nejde.
//autoeditácia príspevku (25 Apr 2011, 16:59)
dam tam:
Kód: Vybrať všetko
if (this.objekt.hitTest(this.kurzor)) {
_root.gotoandPlay(2);
}Kód: Vybrať všetko
onClipEvent(enterFrame){
this._y = root._ymouse;
this._x = root._xmouse;
}
kurzor. Nefunguje a davam to do prilohy aj s untitled.
-
weroro
Flash coder
- Príspevky: 3206
- Registrovaný: 14 feb 2009, 22:34
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Flash narazanie - pad symbolu
Áno, to všetko som dal do frame.
//
Toto je to tvoje.
//
Toto je to tvoje.
Re: Flash narazanie - pad symbolu
bo ale ja potrebujem cisto len ten hitTest
if (_root.objekt.hitTest(_root.kurzor)) {
_root.gotoAndStop(2);
}
potrebujem to po dotyku, nevyznam sa v tom velmi. co potrebujem urobit, aby mi to fungovalo. Kod si mi zmenil, to dik ale co potrebujem k samostatnej funkcnosti hitTestu?
if (_root.objekt.hitTest(_root.kurzor)) {
_root.gotoAndStop(2);
}
potrebujem to po dotyku, nevyznam sa v tom velmi. co potrebujem urobit, aby mi to fungovalo. Kod si mi zmenil, to dik ale co potrebujem k samostatnej funkcnosti hitTestu?
-
weroro
Flash coder
- Príspevky: 3206
- Registrovaný: 14 feb 2009, 22:34
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Flash narazanie - pad symbolu
Dal som ti už dve verzie zisťovania hitTest. Pomocou onEnterFrame alebo pomocou listeneru objektu onMouseMove. Z toho vyplýva, že pri hitTest je potrebné neustále kontrolovať kolíziu. Pri použití onEnterFrame sa testuje kolízia neustále dookola v rýchlosti podľa nastaveného framerate dokumentu (FPS). Pri použití onMouseMove sa kolízia kontroluje výhradne iba pri pohybe myšky. Máš to napísané správne, ale tú podmienku, ktorú používaš musíš neustále spúšťať dookola nejakým eventom, inak ti to nepôjde. Neviem čo presne chceš vyrobiť skús mi sem napísať scenár hry, alebo čo to má byť a ja ti stým pomôžem. Proste predtým ako začneš programovať naštuduj si teóriu hitTest ako funguje a ako ho použiť.
Čisto hitTest je toto:
Čisto hitTest je toto:
Kód: Vybrať všetko
_root.onEnterFrame = function():Void {
if (_root.objekt.hitTest(_root.kurzor)) {
_root.gotoAndStop(2);
}
};Re: Flash narazanie - pad symbolu
aha dik.
//autoeditácia príspevku (25 Apr 2011, 18:43)
a moze byt:
v clipe alebo vo frame?
//autoeditácia príspevku (25 Apr 2011, 18:54)
weroro:

//autoeditácia príspevku (25 Apr 2011, 18:43)
a moze byt:
Kód: Vybrať všetko
onClipEvent(eneterFrame){
if........
}//autoeditácia príspevku (25 Apr 2011, 18:54)
weroro:
-
weroro
Flash coder
- Príspevky: 3206
- Registrovaný: 14 feb 2009, 22:34
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Flash narazanie - pad symbolu
Dávaj to všetko na Frame, na clip script nedávaj odvykni si od toho, lebo ti to bude pôsobiť veľké problémy pri väčších aplikáciách (budeš v tom mať strašný bordel, nehovoriac o rýchlosti aplikácie viď. moj článok http://www.hojko.com/post1528998.html#p1528998
Najlepšie je naučiť sa písať script iba na jeden snímok v celej aplikácii, ale to sa niekedy nedá.). Proste scriptuj iba do Framu.Umiestňovanie scriptu:
Prvou a zásadnou zmenou, ktorú by sme mali preferovať pri zápise scriptu, je vyvarovať sa zapisovaniu scriptu priamo na inštancie objektov (návyk zo starších verzií flashu). Vykonávanie takto umiestneného scriptu je o cca 24ms pomalšie ako vykonávanie scriptu umiestneného v snímku časovej osy. Z tohto, ale aj iného dôvodu, bola možnosť umiestňovať script na inštancie v novej verzii ActionScript 3.0 zakázaná a ak script umiestnime na inštanciu, nebude fungovať (debuger bude hlásiť chybu a script bude nefunkčný). Preto je dobré sa naučiť písať script, najlepšie iba do jedného snímku pre celú aplikáciu.
Re: Flash narazanie - pad symbolu
takže preto mi seká kurzor, keď dám do clipu this._x = _root._xmouse....?
-
weroro
Flash coder
- Príspevky: 3206
- Registrovaný: 14 feb 2009, 22:34
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Flash narazanie - pad symbolu
Nie, kurzor ti seká preto, lebo máš nastavené FPS na 12 .. Nastav to aspoň na 25. Ja to nastavujem na 50.
Re: Flash narazanie - pad symbolu
aha. Nepoznas nejake dobre on-line kurzy?
-
weroro
Flash coder
- Príspevky: 3206
- Registrovaný: 14 feb 2009, 22:34
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Flash narazanie - pad symbolu
www.flash.cz
a otialto http://www.hojko.com/post1638423.html#p1638423 si zmaž smajlíky máš ich tam veľa a porušuješ tým pravidlá fóra.
a otialto http://www.hojko.com/post1638423.html#p1638423 si zmaž smajlíky máš ich tam veľa a porušuješ tým pravidlá fóra.
Re: Flash narazanie - pad symbolu
xD detail.