![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Oct 2007
Сообщений: 15
|
Вот написал такой класс с движением космокорабля - но столкнулся с тем что операторы if в onEnterFrame - e как то странно себя ведут. Тоесть должно работать так, чтоб мой корабль при вылетании за пределы появлялся с другой стороны. Но в моей версии они срабатывают сразу и возвращают на указанные координаты мой корабль. Вообщем прошу совета как исправить - или же как написать это правильно. Сама проблема в закомменченном блоке - но на всякий - я выложу весь код.
class SpaceShipClip extends MovieClip
{
var c:Number = 0;
var flamme:MovieClip;
var dX:Number = 0;
var dY:Number = 0;
var speed:Number = 0;
var rotangl:Number = 0;
var counter:Number = 0;
var radians:Number = Math.PI / 180;
public function SpaceShipClip()
{
Key.addListener(this);
}
public function onKeyDown():Void
{
if (Key.isDown(39))
{
rotangl += 0.2;
}
if (Key.isDown(37))
rotangl -= 0.2;
}
if (Key.isDown(38))
{
speed += 0.1;
}
if (Key.isDown(40))
{
speed -= 0.3;
}
if (Key.isDown(32))
{
}
}
public function onEnterFrame():Void
{
dX = Math.cos(rotangl) * speed;
dY = Math.sin(rotangl) * speed;
this._rotation = (rotangl / radians) + 90;
dX *= 0.9;
dY *= 0.9;
this._x += dX;
this._y += dY;
counter++;
/*if (speed < 0);
{
//speed = 0;
}
if (this._x > 600);
{
this._x = 0;
}
if (this._y > 500);
{
this._y = 0;
}
if (this._x <= 0);
{
this._x = 600;
}
if (this._y <= 0);
{
this._y = 500;
}
trace (this._x);*/
}
}
|
|
|||||
|
ветеран форума
|
Пусть х = 605
else if надо ставить, а не просто стопку if
__________________
4am is time to rock |
|
|||||
|
Регистрация: Oct 2007
Сообщений: 15
|
Спасибо.
|
|
|||||
|
Регистрация: Sep 2007
Сообщений: 64
|
А зачем столько if'ов? А switch и case'ы уже не в моде?
|
|
|||||
|
Регистрация: Mar 2001
Сообщений: 1,147
|
Цитата:
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит. |
|
|||||
|
Регистрация: Sep 2007
Сообщений: 64
|
Цитата:
|
|
|||||
|
Регистрация: Mar 2001
Сообщений: 1,147
|
ну так а какой смысл менять 2 if для _x и 2 для _y на 2 switch с парой же case для каждого?..
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит. |
|
|||||
|
Регистрация: Oct 2007
Сообщений: 15
|
Может ещё посоветуете как движение исправить? Просто я его и через Swich писал и для каждой кнопки по функции делал и onKeyDown в онЕнтерФрейм засовывал, а всё равно как то одновременно не срабатывают две кнопки.Как оно сейчас работает можете глянуть в файле.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:38. |
|
|
« Предыдущая тема | Следующая тема » |
|
|