1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

[Конкурс Top Down Games 2016] Вражеские объекты.

Автор: Zelya · 20 апр 2016 · ·
  1. Времени программировать почти нет. Поэтому решил добавить врагов. Пока без логики и просчета коллизий. Просто посмотреть, как выглдят. За основу взял с опен-гейм-арта вот эти спрайты:
    [​IMG]

    Ну... вобщем выглядит хреново. В анимации как-то так:
    [​IMG]

    Сильно дергано, анимация врагов практически незаметна. Ужас. Правды ради стоит сказать, что видеозахват ухудшает картинку (кадры видео и игры не синхронизированы) да и эмуль работает с некоторым замедлением. Но все же выглядит ужасно.
    Добавил паузы между кадрами. Игра замедлилась. Картинка стала незначительно четче, но отрисовка все равно ужасна:
    [​IMG]

    Увеличил паузу. Лаги отрисовки уменьшились. Но скорость стала ужасной.

    [​IMG]

    Все проблемы из-за того, что экран отрисовывается по рядкам. Поэтому наблюдаются "вертикальные лаги" при перемещении объекта. Горизонтальные тайлы стоят рядом, и отроисовываются один за другим. А вот вертикальные, только 16 тайлов спустя.
    Нужно менять логику отрисовки экрана. Хотя как, пока ума не приложу.
    Печалька...
    Skud, ThisSuXX и Martin Qleor нравится это.

Комментарии

  1. Zelya
    ПС Так как кодить времени нет, остается только теоретизировать.
    Можно, конечно, сделать отрисовку не по рядам, а по колонкам. Тогда при вертикальном движении проблем почти не будет. Но они появятся при горизонтальном движении.
    Можно, все 4 клетки спрайта выводить сразу. Тогда картинка самолетика не будет серьезно ломаться, но будет страдать целостность фона. Так как под самолетиком новый фон прорисуется намного раньше, чем вокруг.
    Можно использовать спрайты 8х8 :).
    Можно запретить быстрое сближение вражеских кораблей. Тогда лаги будут реже, и общее впечатление лучше. Думаю, это самый адекватный вариант. Плюс к нему небольшую паузу между кадрами.
  2. ThisSuXX
      K-WolF и Zelya нравится это.
  3. Zelya
    @ThisSuXX,
    Посмотрите мой первый пост по конкурсу. Ваш вариант, это вариант №3 из списка. Я выбирал между ним и вариантом №2.
    Сейчас нужно доказать или опровергнуть, что вариант №2 реализуем на ПК-01 Львов. А в следующей игре опробовать №3 :).
      K-WolF и ThisSuXX нравится это.
  4. Dimouse
    В целом не так уж плохо, но мне кажется, что скроллинг построчно никто не делает - слишком заметно, даже под MSDOS было помнится. Копирование страниц видеопамяти по идее не должно сильно замедлять работу.
  5. Zelya
    @Dimouse, "даже под MSDOS было помнится. Копирование страниц видеопамяти по идее не должно сильно замедлять работу."
    Увы, не стоит сравнивать ПК-01 Львов с монстром IBM PC. Что касается страниц видеопамяти, то в ПК-01... их нет. У Вас имеется всего одна страничка, которая показывает все что отрисовывается. Упомянутый выше вариант с "теневым экраном" тоже будет опробован, но он не будет гарантировано лучше. Например, если Вы просто захотите самым быстрым методом залить весь экран другим цветом (все-го записать 16 Кб видеопамяти одним и тем же значением) ползьователь и то заметит процесс зарисовки, настолько это медленно. С "теневым экраном" мы, конечно не собираемся дублировать все 16 Кб. Но, после того как изображение сформировано в ОЗУ, его надо еще скопировать, а это тысячи операций не только записи, но и чтения (в два раза медленнее).
    Плюс, не забывайте за такую интересную вещь, как опрос клавиатуры. Если на IBM PC, или даже на каком-нибудь другом древнем компе Вы получаете прервыание при нажатии на клавишу, то на ПК-01 Львов нет прерываний. И Вы должны время о времени в программе проверять, а не нажал ли пользователь какую либо кнопку. В текущем варианте, когда я ставлю паузу между кадрами, я как раз наполняю ее циклом опроса клавы, что дает классный (быстрый) отклик. В процессе же формирования ии копирования теневого экрана, я не буду читать клаву. И у игрока создасться впечатление глючного управления.
    Я обязательно когда-нибудь попробую и этот вариант. Вполне реально, что он будет лучше. Но так же возможно, что он будет слишком уж медленным.
Чтобы оставить комментарий просто зарегистрируйтесь и станьте участником!
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление