anton_vas
17.06.2012, 18:18
У меня во время создании игры возникла проблема. Создавая игру танки, у меня не летит пуля вверх, а также еще множество багов с движением вверх помогите исправить:
Mouse.hide ();
qw.startDrag (true);
//создаем мышь
import flash.events.Event;
addEventListener (Event.ENTER_FRAME, onEnterFrame);
function onEnterFrame (e:Event):void
{
}
stage.addEventListener (KeyboardEvent.KEY_DOWN, onKDown);
function onKDown (e:KeyboardEvent):void
{
var mySpeed:Number = 3;//задаем скорость перемещения
if (e.keyCode == 37)
{
trace ("Влево");
tank.x -= mySpeed;
tank.rotation=180;
}
if (e.keyCode==38)
{
trace ("Вверх");
tank.y-=mySpeed;
tank.rotation=270;
}
if (e.keyCode==39)
{
trace ("Вправо");
tank.x+=mySpeed;
tank.rotation=0;
}
if (e.keyCode==40)
{
trace ("Вниз");
tank.y+=mySpeed;
tank.rotation=90;
}
if (tank.rotation==0)
{
while (tank.hitTestObject(box2))/*создаем столкновения с объектом, насчет способа не критикуйте я новичок лучше подскажите как сделать нормально*/
{
tank.x-=mySpeed;
}
}
if (tank.rotation==90)
{
while (tank.hitTestObject(box2))
{
tank.y-=mySpeed;
}
}
if (tank.rotation==180)
{
while (tank.hitTestObject(box2))
{
tank.x+=mySpeed;
}
}
if (tank.rotation==270)/*Вот с этим у меня тоже возникла проблема, при столкновении когда поворот на 270 градусов нечего не происходит*/
{
while (tank.hitTestObject(box2))
{
tank.y+=mySpeed;
}
}
}
}
}
}
var timerAdd:Timer=new Timer(1000);
var arrOfElements:Array=[];
timerAdd.addEventListener (TimerEvent.TIMER, onTAdd);
timerAdd.start ();
function onTAdd (e:TimerEvent):void
{
var element:Mc = new Mc ();
element.x=Math.random()*800-100;
element.y=Math.random()*800-100;
element.alpha=0.9;
addChild (element);
arrOfElements.push (element);
stage.addEventListener (MouseEvent.CLICK, Bullet);
function Bullet (e:Event):void
{
trace (e);
if (MouseEvent.CLICK)
{
var bullet:mcBullet = new mcBullet();
stage.addChild (bullet);
bullet.addEventListener (Event.ENTER_FRAME,BulletMovie);
bullet.x=tank.x;
bullet.y=tank.y;
function BulletMovie (e:Event):void
{
if (tank.rotation==180)
{
bullet.x-=10;
bullet.rotation==180
}
if (tank.rotation==270)
{
bullet.y-=10;
bullet.rotation=270
}
if (tank.rotation==0)
{
bullet.x+=10;
bullet.rotation=0
}
if (tank.rotation==90)
{
bullet.y+=10;
bullet.rotation=90// вот тут та и сама основная проблема с багами пуля никак не хочет лететь вверх
}
}
}
}
не ругайтесь я новичок изучаю АС 3, 2 дня, так что, есле что не так не судите строго, так же когда я создавал столкновения с обьектом тоже при движении вверх столкновения игнорировалось, не понимаю почему.
Mouse.hide ();
qw.startDrag (true);
//создаем мышь
import flash.events.Event;
addEventListener (Event.ENTER_FRAME, onEnterFrame);
function onEnterFrame (e:Event):void
{
}
stage.addEventListener (KeyboardEvent.KEY_DOWN, onKDown);
function onKDown (e:KeyboardEvent):void
{
var mySpeed:Number = 3;//задаем скорость перемещения
if (e.keyCode == 37)
{
trace ("Влево");
tank.x -= mySpeed;
tank.rotation=180;
}
if (e.keyCode==38)
{
trace ("Вверх");
tank.y-=mySpeed;
tank.rotation=270;
}
if (e.keyCode==39)
{
trace ("Вправо");
tank.x+=mySpeed;
tank.rotation=0;
}
if (e.keyCode==40)
{
trace ("Вниз");
tank.y+=mySpeed;
tank.rotation=90;
}
if (tank.rotation==0)
{
while (tank.hitTestObject(box2))/*создаем столкновения с объектом, насчет способа не критикуйте я новичок лучше подскажите как сделать нормально*/
{
tank.x-=mySpeed;
}
}
if (tank.rotation==90)
{
while (tank.hitTestObject(box2))
{
tank.y-=mySpeed;
}
}
if (tank.rotation==180)
{
while (tank.hitTestObject(box2))
{
tank.x+=mySpeed;
}
}
if (tank.rotation==270)/*Вот с этим у меня тоже возникла проблема, при столкновении когда поворот на 270 градусов нечего не происходит*/
{
while (tank.hitTestObject(box2))
{
tank.y+=mySpeed;
}
}
}
}
}
}
var timerAdd:Timer=new Timer(1000);
var arrOfElements:Array=[];
timerAdd.addEventListener (TimerEvent.TIMER, onTAdd);
timerAdd.start ();
function onTAdd (e:TimerEvent):void
{
var element:Mc = new Mc ();
element.x=Math.random()*800-100;
element.y=Math.random()*800-100;
element.alpha=0.9;
addChild (element);
arrOfElements.push (element);
stage.addEventListener (MouseEvent.CLICK, Bullet);
function Bullet (e:Event):void
{
trace (e);
if (MouseEvent.CLICK)
{
var bullet:mcBullet = new mcBullet();
stage.addChild (bullet);
bullet.addEventListener (Event.ENTER_FRAME,BulletMovie);
bullet.x=tank.x;
bullet.y=tank.y;
function BulletMovie (e:Event):void
{
if (tank.rotation==180)
{
bullet.x-=10;
bullet.rotation==180
}
if (tank.rotation==270)
{
bullet.y-=10;
bullet.rotation=270
}
if (tank.rotation==0)
{
bullet.x+=10;
bullet.rotation=0
}
if (tank.rotation==90)
{
bullet.y+=10;
bullet.rotation=90// вот тут та и сама основная проблема с багами пуля никак не хочет лететь вверх
}
}
}
}
не ругайтесь я новичок изучаю АС 3, 2 дня, так что, есле что не так не судите строго, так же когда я создавал столкновения с обьектом тоже при движении вверх столкновения игнорировалось, не понимаю почему.