Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: onKeyDown или hitTest?
Flash Zone Forum > Macromedia Flash > Общие вопросы
gad
Делаю игру типа Марио
Герой двигается так:
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
switch (Key.getCode()) {
case Key.RIGHT :
_root.mc.gotoAndStop("right go");
_root.mc._x += moveSpeed;

}
То же самое для других клавиш.

Когда герой натыкается
на препятствие(невидимый клип),
при помощи hitTest направляю
временную диаграмму клипа на кадр
down где герой падает:
_root.mc.onEnterFrame = function() {
if (this.hitTest(_root.udar)){
_root.mc.gotoAndStop("down");
При столкновении, при нажатой
клавише RIGHT клип продолжает
двигатся вправо,падает только когда
отпускаеш эту клавишу.
Подскажите пожалуйста как это исправить,
или где подобные вопросы обсуждаются.
tiHo
ну а так попробуй:

Код

_root.onEnterFrame = function()
{
    if (Key.isDown(Key.RIGHT))
    {
        if (_root.mc.hitTest(_root.stenka))
        {
            _root.mc.gotoAndStop("down");
        }
        else
        {
            _root.mc._x++;
        }
    }
};
gad
Целый день потратил,
чтобы разобратся.
Не получается.
Вот код целиком, может не туда что то прилепил?
Код
_root.mc.gotoAndStop("right stop");
moveSpeed =2;
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
    switch (Key.getCode()) {
    case Key.RIGHT :
        _root.mc.gotoAndStop("right go");
        _root.mc._x += moveSpeed;
        
    }
    switch (Key.getCode()) {
    case Key.LEFT :
    _root.mc.gotoAndStop("left go");
    _root.mc._x -= moveSpeed;
    }
};
keyListener.onKeyUp = function() {
    switch (Key.getCode()) {
    case Key.RIGHT :
        _root.mc.gotoAndStop("right stop");
    }
        switch (Key.getCode()) {
    case Key.LEFT :
        _root.mc.gotoAndStop("left stop");
        
    }
};
Key.addListener(keyListener);


_root.mc.onEnterFrame = function() {
if (this.hitTest(_root.udar)){    
_root.mc.gotoAndStop("down");
}
}

В коде котрый предложил tiHo
mc бежит вправо и падает
поочередно при нажатой RIGHT.
tiHo
Код

_root.onEnterFrame = function()
{
    if (_root.mc.hitTest(_root.stenka))
    {
        _root.mc.gotoAndStop("down");
    }
    else if (Key.isDown(Key.RIGHT))
    {
        _root.mc._x++;
    }
};


ну а если так smile.gif
gad
И так не выходит.
Как и с другим кодом. При столкновении есть переход
на кадр "down",там клип где герой падает.
При переходе проигрывается только первый кадр этого клипа
при этом он продолжает двигаться вправо пока нажата RIGHT.
Отпускаю (onKeyUp) RIGHT, клип начинает падать.
tiHo
ну сделай тогда вместо gotoAndStop("down"); gotoAndPlay("down");


я хз что там у тебя неработает.
Русская версия IP.Board © 2001-2007 IPS, Inc.