Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Движение персонажа по диагонали. Как это можно реализовать? (http://www.flasher.ru/forum/showthread.php?t=101844)

Bорон 04.10.2007 00:15

Движение персонажа по диагонали. Как это можно реализовать?
 
Доброго времени суток.

Еще раз поднимаю тему.
В прошлый раз так ничего и не придумалось... А хочеться.

Как можно реализовать движение персонажа по диагонали с испозованием комбинаций из двух кнопок?
Проблема:
При нажатии кнопки курсора персонажу добавляется некая составляющая скорости (по х и по у).
При отпускании кнопки я не могу определить какую кнопку отпустили и соответственно - какую составляющую движения убирать.

Как это вообще во флешевых игрушках реализуют?

Очень надеюсь на вашу подсказку.
С уважением. Ворон.

udaaff 04.10.2007 00:26

А событие onKeyUp на что?

Mr. Fixit 04.10.2007 00:36

тоесть?
а что при нажатии двух кнопок он движеться по одной только траектории?
если да, то вставь:
Код:

if(Key.isDown(Key.LEFT)) {
hero_mc._x -= 5;
}
if(Key.isDown(Key.UP)) {
hero_mc._y -= 5;
}

if(Key.isDown(Key.RIGHT)) {
hero_mc._x += 5;
}
if(Key.isDown(Key.DOWN)) {
hero_mc._y += 5;
}

так пойдет?

Bорон 04.10.2007 00:57

Извините, похоже я тормоз...
Скажите пожалуста будет ли верным такой код:
Код:

_root.keyListener = new Object();
_root.keyListener.onKeyDown = function() {
        switch(Key.getCode()){
                case Key.UP:
                        trace('нажали вверх');
                break;
                case Key.DOWN:
                        trace('нажали вниз');
                break;
                case Key.LEFT:
                        trace('нажали влево');
                break;
                case Key.RIGHT:
                        trace('нажали вправо');
                break;
        }       
}
_root.keyListener.onKeyUp = function() {
        switch(Key.getCode()){
                case Key.UP:
                        trace('отпустили вверх');
                break;
                case Key.DOWN:
                        trace('отпустили вниз');
                break;
                case Key.LEFT:
                        trace('отпустили влево');
                break;
                case Key.RIGHT:
                        trace('отпустили вправо');
                break;
        }
}
Key.addListener(_root.keyListener);


Mr. Fixit 04.10.2007 02:51

кинь ссылку на игру с подобным движком...

Bорон 04.10.2007 02:53

http://nightfolk.net/work/template/index.html

Mr. Fixit 04.10.2007 06:05

омг, а я что неправ написал??
так пойдет, не перекривая ифы.

Bорон 04.10.2007 12:18

Цитата:

омг, а я что неправ написал??
так пойдет, не перекривая ифы.
ничего не понял.
вы о чем?


Часовой пояс GMT +4, время: 18:50.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.