Показать сообщение отдельно
Старый 04.10.2007, 00:20
BlackFox вне форума Посмотреть профиль Отправить личное сообщение для BlackFox Найти все сообщения от BlackFox
  № 4  
Ответить с цитированием
BlackFox
 
Аватар для BlackFox

Регистрация: Dec 2005
Сообщений: 178
Цитата:
Сообщение от Bорон
Невозможность движения по диагонали проистекает из того что я не знаю как определить, какую кнопку отпустили . (Это нужно что бы понять какую составляющую движения убрать).
Поднимал вопрос в форуме по as, но ничего не подсказали по этому поводу
Хмм.. надо бы заглядывать еще и в тот форум. Раз уж ты не указал ссылку на тот топик, то предложу свой вариант здесь:
Код:
/*Допустим, у тебя в классе с описанием зайца имеется свойство speed, в которой хранится скорость зайца по одной из осей.*/
//И есть метод onEnterFrame(), который этого зайца двигает
function onEnterFrame(){
    var move_x = 0;    //Сделаем пару временных переменных
    var move_y = 0;    //которые будут определять направление движения
    if(Key.isDown(Key.UP)){  //Проверяем, какие из кнопок управления нажаты
        move_y = -1;    //если кнопка нажата - изменяем соответствующее значение
    }
    if(Key.isDown(Key.DOWN)){  //И так со всеми кнопками
        move_y = 1;
    }
    if(Key.isDown(Key.LEFT)){
        move_x = -1;
    }
    if(Key.isDown(Key.RIGHT)){
        move_x = 1;
    }
    this._x += move_x*this.speed;   //В конце изменяем координаты зайца,
    this._y += move_y*this.speed;  //домножив "вектор" на его скорость
}
P.S.: Да, я знаю, что это можно написать правильнее, но так наиболее наглядно и понятно.
__________________
Careful what you wish, you might get it..