помогите сообразить как сделать инерцию, чтоб как в космосе http://talk.multipay.kz/game.php чтобы кораблик не тормозил сразу а двигался по инерции
qwert_ukg, у корабля должна быть своя скорость. Клавишами лишь добавлять скорость в нужном направлении. Вроде бы элементарно. Если не получится, отпишись, помогу.
у меня кадровое обновление экрана то-есть перерисовка вне зависимости от действий - звезды всегда падают итд... короче проще Вам проще код глянуть и все понятно станет
Посмотрел код. Есть непонятные фрагменты типа space.innerHTML += и тут куча кода в printShip(), которая вызывается в каждом кадре. Или вызов getScreenSize(...) в каждом кадре, что совсем не оптимально. Или вывод корабля в таблице, при анализе которой даже файребаг начинает глючить. Обновление экрана всё равно есть, хоть кадровое, хоть какое иное (а какое ещё бывает? ) , значит, можно описать скорость, как количество пикселей в кадре. У корабля должна быть своя скорость. Например, при скорости x=1,y=5 (движение вправо-вверх) корабль будет в каждом кадре смещатся на 1 пиксель вправо и на 5 вверх. Если мы нажмем клавишу Влево, то должны будем уменьшить x на единицу, а y на ноль: x = 1 - 1, y = 5 - 0. В итоге в следующих кадрах корабль будет перемещаться только вперед по 5 пикселей. При достижении границ экрана можно также уменьшать скорость корабля, будто нажали клавишами.
портировал на яву, даже не думал о инерции, щас попробую исключить лишнюю перересовку а фаербаг всяко не ответит при 1000 кадров в сек - не переназначен для этого) Добавлено спустя 2 минуты 11 секунд: на делфях вел хорошо себя)) хочу в онлайне эту дурость разметить Добавлено спустя 3 минуты 12 секунд: а как иначе???
Насчет инерции смотри в ЛС, изменил JS и вынес в отдельный файл. А зачем там jquery подключается, если не используешь? Тему лучше переместить в раздел про JS, тут PHP нет.
JS-функцией на setTimeout() плавно уменьшаешь/увеличиваешь кол-во пикселей, проходимых кораблём за такт до нуля/максимума - типо такого что-то.
Ну как там с кораблем дела то? В этом месте, где Код (Text): space.innerHTML += вывод таблицы с кораблем корабль лучше сделать отдельным div контейнером над space, с абс. позиционированием. Меньше тормозить будет.
да пока руки не доходят, вдруг работы навалило( а так пару мелочей есть: одновременное нажатие двух направлений увеличивает скорость только по одному; плюс нужно сделать тормоз - то-есть отпускаешь - замедляется с таким же ускорением; так мелочи но даже их исправить пока нету времени Добавлено спустя 5 минут 10 секунд: да да и не на таблице а сплошным рисунком с меняющим позицию фоном, а не none/block Добавлено спустя 38 секунд: но пока нет времени