vinTagesworld Flash forum
door W0utah op 07-01-07 om 14:36
actionscript codefunction shoot() {
if (shooting == true && reload == false) {
removeMovieClip(mc_bullet);
var kogel:MovieClip = attachMovie("mc_bullet", "mc_bullet", this.getNextHighestDepth());
kogel._x = mc_kannon.kannon_loop._x;
kogel._y = mc_kannon.kannon_loop._y;
var tx:Tween = new Tween(kogel, "_x", mx.transitions.easing.None.easeNone, kogel._x, mc_crosshair._x, 0.5, true);
var ty:Tween = new Tween(kogel, "_y", mx.transitions.easing.None.easeNone, kogel._y, mc_crosshair._y, 0.5, true);
}
}
ik gebruik deze code om de kogel uit mijn loop van het kannon te laten komen, maar wat zie ik als ik mijn kannon verplaats, de kogel komt er niet meer mooi uit, maar 100 pixels ernaast, weet iemand hier de oplossing voor?
Je moet wel de startpositie van je kogel meegeven, ik weet niet waar je die nu vandaan hebt, maar die zou je kunnen opvragen dmv zoiets:
in een onEnterFrame
startPosKogel._x = eindPuntVanJeLoop._x;
startPosKogel._y = eindPuntVanJeLoop._y;
en die waarde gebruik je in je tweenclass waar je nu kogel._x en kogel._y hebt
door W0utah op 07-01-07 om 15:06
hij moet dus uit de loop van het kannon komen
dat is die kogel._x
kogel._x = mc_kannon.kannon_loop._x;
kogel._y = mc_kannon.kannon_loop._y;
dat is de startpositie
hou je die wel bij in een onEnterFrame ?
door W0utah op 07-01-07 om 15:11
nee, maar de positie van het kannon blijft toch heel de tijd hetzelfde
ah, dan maakt dat niet uit idd.
Maar dan snap ik niet wat je bedoeld met "als ik mn kannon verplaats".
door W0utah op 07-01-07 om 15:18
Moet die kogel uit de loop komen ? want nu staat er een vierkanje ergens waar de kogel uitkomt ipv de loop ?
door W0utah op 07-01-07 om 15:49
dat vierkantje is een zogezegde vijand, dat moet ik nog veranderen
de kogel moet uit de loop komen
edithaal gewoon op regel 2 dit weg: moveEnemy();
laatst ge-edit op: 07-01-07 om 15:56
Okay, was ff zoeken want ik vind dit echt niet duidelijk :p
ik heb ook nog een paar opmerkingen waar ik eerst mee zal beginnen.
Die tweenclass is leuk, maar hij is niet echt goed (zoals je hem nu gebruikt)
Want als je nu op iets schiet wat dichtbij is, dan vliegt kogel traag, als je op iets schiet wat ver weg is, dan gaat hij snel.
Dit zou je moeten fixen door een berekining te maken die de afstand van crosshair naar kanon te nemen en dat terug te rekenen naar een variable die gebruikt word voor de duration.
Daarnaast kan je (wat veel mooier is) de bullits verwijderen door onderstaande scriptje:
actionscript codetx.onMotionFinished = function() {
removeMovieClip(mc_bullet);
};
Zo voorkom je dat je kogels verwijderd worden voordat hij aan het einde is.
Verder zit er een nutteloze onEnterFrame is, want moveLoop() kan je gewoon in je cursor code kwijt
actionscript code_root.mc_game.mc_crosshair.onMouseMove = function() {
_root.mc_game.mc_crosshair._x = _xmouse;
_root.mc_game.mc_crosshair._y = _ymouse;
updateAfterEvent();
moveLoop();
};
en de oplossing voor je probleem zit em in het pad.
Je gebruikt loop als begin, maar dat moet gewoon het middelpunt van je kanon zijn.
Dus bovenin je script plaats je
actionscript codekogelX = _root.mc_game.mc_kannon._x;
kogelY = _root.mc_game.mc_kannon._y;
en voor de tween gebruik je:
actionscript codevar tx:Tween = new Tween(kogel, "_x", mx.transitions.easing.None.easeNone, kogelX, mc_crosshair._x, 0.5, true);
var ty:Tween = new Tween(kogel, "_y", mx.transitions.easing.None.easeNone, kogelY, mc_crosshair._y, 0.5, true);
laatst ge-edit op: 07-01-07 om 16:27
door W0utah op 07-01-07 om 16:40
bedankt voor al je tips, dat van die kogel wist ik wil, maar moet dat nog aanpassen
editnu gaan mijn kogels altijd even snel, heb een berekening gedaan
heb maar wat geprobeert tot ik op dit uitkwam
actionscript codekogelX = _root.mc_game.mc_kannon._x;
kogelY = _root.mc_game.mc_kannon._y;
afstandX = _root.mc_game.mc_crosshair._x;
afstandY = _root.mc_game.mc_crosshair._y;
durationX = Math.abs(Math.round(afstandX-kogelX))/500;
durationY = Math.abs(Math.round(afstandY-kogelY))/500;
duration = durationX+durationY;
laatst ge-edit op: 07-01-07 om 17:00
Dit topic is gesloten.