Форум 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=140945)

Franches 11.06.2010 13:31

Как прекратить движения клипа управляемого с клавиатуры?
 
Короч вот делаю обьект которым буду управлять с клавиатуры стрелочками.
Вот рисую обьект преобразовываю его в клип называю его "Hero"и пишу на нём
Код AS1/AS2:

onClipEvent (load) {
        h = 1;
}
onClipEvent (enterFrame) {
        if (h) {
                if (Key.isDown(Key.DOWN)) {
                        _y += 5;
                } else if (Key.isDown(Key.UP)) {
                        _y -= 5;
                } else if (Key.isDown(Key.RIGHT)) {
                        _x += 5;
                } else if (Key.isDown(Key.LEFT)) {
                        _x -= 5;
                }
        }
}

Работает! Но как сделать препятствия что он не двигался дальше?
Пожалуйта помогите !!!

Хемуль 11.06.2010 13:40

2 Franches:
Вы уж очень широкий вопрос задали. Я так понимаю, вы делаете игрушку... Так вот в играх препятствия по-разному героев могут тормозить. Такое не делается во флеше само по себе.

Franches 11.06.2010 13:55

Ну есть же всякие флешки с препятствиями!

Хемуль 11.06.2010 14:13

2 Franches:
Так это понятно. Есть и флешки с препятствиями, есть и серьёзные мультипользовательские онлайн-игры. Всё делается, не вопрос. Вопрос в том, как делается. Я просто хочу вам сказать, что нет во Флеше такой функции, которая говорит, мол, это будет препятствием для твоего героя. Нужно код писать, математику использовать. Да всё что угодно может быть в разных случаях. Какой именно алгоритм использовать в вашем случае, я не знаю, потому что не знаю точно, что нужно получить. На сайте gotoAndPlay когда-то были всякие прототипы движков для игр-платформеров.

KiL33 11.06.2010 19:40

В объектах код писать не стоит и вообще писать на ас2, не стоит))
изучайте уже третий

вот пример на ас2, как это могло бы выглядеть:

Код AS1/AS2:

var SPEED_MC:Number = 10;
 
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
        switch (Key.getCode()) {
 
                case Key.LEFT :
                        cCode = Key.getCode();
                        _root.onEnterFrame = position;
                        break;
 
                case Key.UP :
                        cCode = Key.getCode();
                        _root.onEnterFrame = position;
                        break;
 
                case Key.RIGHT :
                        cCode = Key.getCode();
                        _root.onEnterFrame = position;
                        break;
 
                case Key.DOWN :
                        cCode = Key.getCode();
                        _root.onEnterFrame = position;
                        break;
        }
};
 
keyListener_obj.onKeyUp = function() {
        delete _root.onEnterFrame;
};
 
Key.addListener(keyListener_obj);
 
function position():Void {
 
        if (wall.hitTest(_root.mc._x, _root.mc._y+14, true)) {
 
        } else {
                if (cCode == 40) {
                        mc._y += SPEED_MC;
                }
 
        }
        if (wall.hitTest(_root.mc._x+14, _root.mc._y, true)) {
        } else {
                if (cCode == 39) {
                        mc._x += SPEED_MC;
                }
 
        }
        if (wall.hitTest(_root.mc._x, _root.mc._y-14, true)) {
        } else {
                if (cCode == 38) {
                        mc._y -= SPEED_MC;
                }
 
        }
        if (wall.hitTest(_root.mc._x-14, _root.mc._y, true)) {
        } else {
                if (cCode == 37) {
                        mc._x -= SPEED_MC;
                }
 
        }
}

собственно wall - это мувик в котором вы рисуете все препятствия.

mc - это персонаж

Тута полу-дохлый пример на ас три.
http://www.flasher.ru/forum/showthre...=138682&page=2

пост №15

Franches 12.06.2010 17:28

Спасибо! :)

Franches 23.06.2010 20:35

Работает!!!
А как сделать чтоб можно было передвигать какиенибудь вещи (коробки например) ?


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

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