actionscript 3 - Can't move object of class in AS3 -
i'm making game in need hero shoot, can't realize why bullets aren't moving. appear on stage stay in place appear , don't move. can't find mistake. thanks!!
so class has make appear , move bullets when press space.
public class nivel_1 { public var mc:mainchar = new mainchar(); public var ene:enemigo = new enemigo(); public var bullet:bullet = new bullet(); public var back:mc_nivel_1 = new mc_nivel_1() public var spawn_boss:boolean =false; public var boss:boss = new boss(); public static var balavector:vector.<bullet> = new vector.<bullet>(); public var disparo:boolean = false; public function nivel_1() { } public function iniciar():void { main.escenario.addeventlistener(event.enter_frame, update); main.escenario.addchild(back); ene.init(600,630); mc.init(100,150); main.escenario.addeventlistener(keyboardevent.key_up, onkeyuplv1); main.escenario.addeventlistener(keyboardevent.key_down, onkeydownlv1); trace ("start"); } public function update(e:event = null):void { updatebala(); mc.update(); coliciones(); if(spawn_boss) { boss.update(); } } public function onkeyuplv1(e:keyboardevent):void { switch (e.keycode) { case keyboard.space: disparo = true; if (disparo == true) { var bala:bullet = new bullet(); bala.inicializar(mc.grafica.x, mc.grafica.y - mc.grafica.height/2 , mc.grafica.scalex); } break; } } public function onkeydownlv1(e:keyboardevent):void { switch (e.keycode) { case keyboard.space: disparo = false; break; } } public function coliciones():void { for(var i:int = 0; < balavector.length ;i++) { if(balavector[i].grafica_1.hittestobject(ene.grafica)) { ene.destroy(); balavector[i].destruir(); boss.init(600,650); spawn_boss = true; break; } if(balavector[i].grafica_1.hittestobject(boss.grafica)) { boss.destroy(); balavector[i].destruir(); break; } } if(mc.grafica.hittestobject(ene.grafica)) { mc.grafica.x = mc.grafica.x - 3; mc.vida --; } if(mc.grafica.hittestobject(boss.grafica)) { mc.vida -5; } } public function updatebala():void { for(var i:int=0;i<balavector.length;i++) { balavector[i].bulletupdate(); } } public function endgame():void { mc.destroy(); main.escenario.removeeventlistener(event.enter_frame,update); } }
and class of bullets.
public class bullet { public var grafica_1:mc_bala_1; public var velocidad_1:int = 15; public var damage_1:int = 1; public var direccion:int = 0; public function bullet() { } public function bulletupdate():void { mover(); } public function inicializar(posx:int , posy:int , dir:int):void { grafica_1 = new mc_bala_1(); grafica_1.x = posx; grafica_1.y = posy; this.direccion = dir; game.balavector.push(this); main.escenario.addchild(grafica_1); trace ("bala"); } public function mover():void { grafica_1.x += velocidad_1 * direccion; if (grafica_1.x < 0 || grafica_1.x > main.escenario.stagewidth) { destruir(); } } public function destruir():void { if (main.escenario.contains(grafica_1)) main.escenario.removechild(grafica_1); game.balavector.splice(game.balavector.indexof(this),1); trace ("destruir bala"); } }
your multiplying velocity * direction, 15*0 = 0, why not moving
Comments
Post a Comment