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

DoctorQueb 01.08.2012 17:21

Помогите с платформером (Анимация игрока)
 
Вложений: 2
Здравствуйте!
Помогите доделать код для персонажа: суть в том что при прыжке он переходит в анимацию ходьбы, хотя должен проигрывать анимацию прыжка.

Сам пытался проверять переменую touchingGround и grav но не получилось. Всю голову сломал :wacko:

Код AS1/AS2:

onClipEvent (load) {
        var ground = _root.ground;
        var grav = 0;
        var gravity = 2;
        var speed = 7;
        var maxJump = -12;
        var touchingGround = false;
        var scale = this._xscale;
}
onClipEvent (enterFrame) {
        _y += grav;
        grav += gravity;
        while (ground.hitTest(_x, _y-30, true)) {
                _y -= gravity;
                grav = 0;
        }
        if (ground.hitTest(_x, _y + 5, true))
        {
                touchingGround = true;
        }
        else
        {
                touchingGround = false;
        }
        if (Key.isDown(Key.RIGHT))
        {
                _x += speed;
                this._xscale = scale;
                this.gotoAndStop("walking");
        }
        if (Key.isDown(Key.LEFT))
        {
                _x -= speed;
                this._xscale = -scale;
                this.gotoAndStop("walking");
        }
        if (Key.isDown(Key.UP) && touchingGround)
        {
                grav = maxJump;
                this.gotoAndStop("jumping");
        }
        if (!Key.isDown(Key.UP) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.LEFT))
        {
                this.gotoAndStop("idol");
        }
        if (!touchingGround && grav > 1)
        {
                this.gotoAndStop("jumping");
        }
        if (ground.hitTest(_x + (_width / 2), _y - (_height / 2), true))
        {
                _x -= speed;
        }
        if (ground.hitTest(_x - (_width / 2), _y - (_height / 2), true))
        {
                _x += speed;
        }
        if (ground.hitTest(_x, _y - (height), true))
        {
                grav = 3;
        }
}

Исходники предоставлены для Flash CS5 и CS4

Заранее спасибо, буду искренне признателен!

Hauts 01.08.2012 19:10

1. Пишите код в кадрах.
2. Штудируйте xitri.com.


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

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