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

boogaga 30.01.2009 01:17

Подпрыгивание персонажа в платформере
 
Всем привет! Начал разбираться с ActionScript, и у меня возник вопрос: как сделать подпрыгивающего персонажа (ну или не обязательно персонажа:)) в игре-платформере? В тех туториалах, которые я видел, есть код вроде
Код AS1/AS2:

forecast_y = this._y+yspeed;
        // floor control
        while (_root.lev.hitTest(forecast_x, forecast_y+this._height/2-1, true)) {
                forecast_y--;
                xspeed = 0;
                yspeed = 0;
                jumping = false;
        }

Но как сделать так, чтобы от некоторых поверхностей персонаж отпрыгивал - я не знаю. пробовал сделать так:
Код AS1/AS2:

                forecast_y = this._y+yspeed;
 
                was_collision = false;
                // floor control
                while (_root.lev.hitTest(forecast_x, forecast_y+this._height/2-1, true)) {
                        forecast_y--;
                        //xspeed = 0;
                        //yspeed = 0;
                        if(Math.abs(yspeed) > 0.7) {
                                //yspeed = -(yspeed - Math.random() * 2) * 0.65;
                                jumping = true;
                                was_collision = true;
 
                        }
                        else
                        {
                                yspeed = 0;
                                jumping = false;
                        }
                        //jumping = false;
                }
 
                if (was_collision)
                {
                        was_collision = false;
                        if(Math.abs(yspeed) > 2) {
                                yspeed = -(yspeed - Math.random() * 0) * 0.65;
                                jumping = true;
                        }
                        else
                        {
                                yspeed = 0;
                                jumping = false;
                        }
                }

Иногда срабатывает нормально, а иногда персонаж, когда находится на поверхности, начинает дергаться. Есть ли какое-нибудь решение для такой проблемы?

Может, я напечатал слишком много лишнего кода. Неужели никто не сталкивался с подобной проблемой, а может видел туториалы/статьи/примеры, где есть решение? Т.е. я пытаюсь определять, что персонажу пора перестать подпрыгивать, если его скорость становится довольно маленькой. Возможно, я где-то что-то не так написал, все-таки в АС только разбираюсь, или сущесвтуют принципиально другие решения?


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

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