За последние 24 часа нас посетили 40147 программистов и 2475 роботов. Сейчас ищут 1092 программиста ...

Инерция

Тема в разделе "PHP для новичков", создана пользователем qwert_ukg, 5 июн 2012.

  1. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    помогите сообразить как сделать инерцию, чтоб как в космосе
    http://talk.multipay.kz/game.php
    чтобы кораблик не тормозил сразу а двигался по инерции
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    дык нужен ТИК или при обсчете вычислять по формуле от времени.
     
  3. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    ТИК?
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  5. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    а конкретнее?

    Добавлено спустя 1 минуту 22 секунды:
    что такое ТИК?
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  7. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    qwert_ukg, у корабля должна быть своя скорость. Клавишами лишь добавлять скорость в нужном направлении. Вроде бы элементарно. Если не получится, отпишись, помогу.
     
  8. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    у меня кадровое обновление экрана
    то-есть перерисовка вне зависимости от действий - звезды всегда падают итд...
    короче проще Вам проще код глянуть и все понятно станет
     
  9. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Посмотрел код. Есть непонятные фрагменты типа space.innerHTML += и тут куча кода в printShip(), которая вызывается в каждом кадре. Или вызов getScreenSize(...) в каждом кадре, что совсем не оптимально. Или вывод корабля в таблице, при анализе которой даже файребаг начинает глючить.
    Обновление экрана всё равно есть, хоть кадровое, хоть какое иное (а какое ещё бывает? :) ) , значит, можно описать скорость, как количество пикселей в кадре. У корабля должна быть своя скорость. Например, при скорости x=1,y=5 (движение вправо-вверх) корабль будет в каждом кадре смещатся на 1 пиксель вправо и на 5 вверх. Если мы нажмем клавишу Влево, то должны будем уменьшить x на единицу, а y на ноль: x = 1 - 1, y = 5 - 0. В итоге в следующих кадрах корабль будет перемещаться только вперед по 5 пикселей.
    При достижении границ экрана можно также уменьшать скорость корабля, будто нажали клавишами.
     
  10. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    портировал на яву, даже не думал о инерции, щас попробую исключить лишнюю перересовку
    а фаербаг всяко не ответит при 1000 кадров в сек - не переназначен для этого)

    Добавлено спустя 2 минуты 11 секунд:
    на делфях вел хорошо себя)) хочу в онлайне эту дурость разметить

    Добавлено спустя 3 минуты 12 секунд:
    а как иначе???
     
  11. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Насчет инерции смотри в ЛС, изменил JS и вынес в отдельный файл.
    А зачем там jquery подключается, если не используешь?
    Тему лучше переместить в раздел про JS, тут PHP нет.
     
  12. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    jquery залезло из шаблона, не влияет на фпс
     
  13. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    JS-функцией на setTimeout() плавно уменьшаешь/увеличиваешь кол-во пикселей, проходимых кораблём за такт до нуля/максимума - типо такого что-то.
     
  14. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Ну как там с кораблем дела то?
    В этом месте, где
    Код (Text):
    1. space.innerHTML += вывод таблицы с кораблем
    корабль лучше сделать отдельным div контейнером над space, с абс. позиционированием. Меньше тормозить будет.
     
  15. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    да пока руки не доходят, вдруг работы навалило(
    а так пару мелочей есть: одновременное нажатие двух направлений увеличивает скорость только по одному;
    плюс нужно сделать тормоз - то-есть отпускаешь - замедляется с таким же ускорением;
    так мелочи но даже их исправить пока нету времени

    Добавлено спустя 5 минут 10 секунд:
    да да и не на таблице а сплошным рисунком с меняющим позицию фоном, а не none/block

    Добавлено спустя 38 секунд:
    но пока нет времени