Показать сообщение отдельно
Старый 27.06.2014, 20:22
Anabel вне форума Посмотреть профиль Отправить личное сообщение для Anabel Найти все сообщения от Anabel
  № 7  
Ответить с цитированием
Anabel

Регистрация: Apr 2013
Сообщений: 82
Код AS3:
// Неизменная величина ускорения.
var _accValue:Number = shvidkist;
 
// Сопротивление окружающей среды, чтобы персонаж остановился.
var _envResistance:Number = 0.9;
 
// Тут будем хранить вектор скорости.
var _velocity:Point = new Point();
 
// Направление, задаваемое игроком.
var _direction:Point = new Point();
 
// А тут у нас вспомогательные переменные, для работы с клавой.
var _keyL:Boolean = false;
var _keyR:Boolean = false;
var _keyU:Boolean = false;
var _keyD:Boolean = false;
 
var _keyLL:Boolean = false;
var _keyRR:Boolean = false;
var _keyUU:Boolean = false;
var _keyDD:Boolean = false;
 
// Слушаем необходимые события.
stage.addEventListener(Event.ENTER_FRAME, onEnterFrameУ);
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownУ);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUpУ);
 
/** Весь движняк, как обычно. */
function onEnterFrameУ(event:Event):void
{
        // Вычисляем теперь уже ускорение на основании
        // вектора направления.
        var acceleration:Point = _direction.clone();
            acceleration.normalize(_accValue);
 
        // Ускоряемся.
        _velocity = _velocity.add(acceleration);
 
        // Испытываем сопротивление среды
        _velocity.x *= _envResistance;
        _velocity.y *= _envResistance;
 
        // И наконец движемся
	    карта.чоловічок.x += _velocityР.x;
       	карта.чоловічок.y += _velocityР.y;
        карта.fire.x += _velocityР.x;
       	карта.fire.y += _velocityР.y;
	    карта.x -= _velocityР.x;
	    карта.y -= _velocityР.y;
}
 
/** Коли нажали кнопку на клавіатурі. */
function onKeyDownУ(event:KeyboardEvent):void{
	switch (event.keyCode)
        {
                case Keyboard.LEFT:
                case Keyboard.A:
                        _keyL = true;
                        _direction.x = -1;
						if (!карта.чоловічок.грав.play()) карта.чоловічок.грав.play();
                        break;
                case Keyboard.RIGHT:
                case Keyboard.D:
                        _keyR = true;
                        _direction.x = 1;
						if (!карта.чоловічок.грав.play()) карта.чоловічок.грав.play();
                        break;
                case Keyboard.UP:
                case Keyboard.W:
                        _keyU = true;
                        _direction.y = -1;
						if (!карта.чоловічок.грав.play()) карта.чоловічок.грав.play();
                        break;
                case Keyboard.DOWN:
                case Keyboard.S:
                        _keyD = true;
                        _direction.y = 1;
						if (!карта.чоловічок.грав.play()) карта.чоловічок.грав.play();
                        break;
        }
}
 
/** Когда кнопочку отпустили, соответственно. */
function onKeyUpУ(event:KeyboardEvent):void
{
        switch (event.keyCode)
        {
                case Keyboard.LEFT:
                case Keyboard.A:
                        _keyL = false;
                        _direction.x = _keyR ? 1 : 0;
						карта.чоловічок.грав.stop();
						_keyLL = true;
                        break;
                case Keyboard.RIGHT:
                case Keyboard.D:
                        _keyR = false;
                        _direction.x = _keyL ? -1 : 0;
						карта.чоловічок.грав.stop();
						_keyRR = true;
                        break;
                case Keyboard.UP:
                case Keyboard.W:
                        _keyU = false;
                        _direction.y = _keyD ? 1 : 0;
						карта.чоловічок.грав.stop();
						_keyUU = true;
                        break;
                case Keyboard.DOWN:
                case Keyboard.S:
                        _keyD = false;
                        _direction.y = _keyU ? -1 : 0;
						карта.чоловічок.грав.stop();
						_keyDD = true;
                        break;
        }
}