Спасибо всем за советы и обсуждение!
Немного детайлей об игре.
В игре тайлы 16*16. 16 цветов. Тайл с "землей" рисуется всегда в $8000 плоскость. Спрайты мобов и героя 16*15. Рисуются в три плоскости начиная с $a000.
Мерцание в основном изза двух факторов.
1. Спрайты стираются полным размером спрайта в предыдущей позиции спрайта, затем спрайт рисуется в новой позиции. Это приводит к тому что спрайта не виден полностью или частично. Пока план лечения это стирать только то место где новый спрайт уже не рисуется. т.е. для горизонтального движения стирать только 8*15 полоску и только в тех моментах когда спрайт переместился на следующий байт. т.е не каждый кадр. Это как я надеюсь сильно уменьшит проблему. Если глитчи останутся сильными, буду думать дальше. )
2. При наложении одного спрайта на другой. Это лечитать планирую тем что при наложении спрайтов рисовать их по маске. Или как минимум рисовать монстров без маски, а глав героя по маске сверху.
Из интересного. В игре спрайты рисуются/стираются не каждый кадр. Герой в анимации движения рисуется каждый второй кадр, в анимации Idle рисуется кадый 8 кадр. Если спрайт стартует новую анимацию то счетчик одновляется и спрайт сразу будет отрисован. то есть герой в idle будет отрисован сразу без задержки после того как игрок перестал нажимать на клавиши. Но следующий кадр idle анимации будет нарисован чере 8 кадров.
Скелеты для всех анимаций рисуются каждый 8 кадр. Но как в случае с героем они сразу отрисуют первый кадр новой анимации, затем следующий через 8 кадров. Их скорости медленнее героя и снижение фреймрейта я не замечаю. Более быстрые мобы будут могут рисоваться чаще. Это пер анимейшен параметр конкретного мобика.
Для балансировки нагрузки все мобы стартуют свои анимации со смещением задерки. то есть если на экране 7 мобов + герой, то все они будут рисоваться в свой кадр и нагружать процессор примерно как один моб рисуюшийся каждый кадр.
В целом считается что мобы и герой размером с тайл. но их видимая часть может быть меньше. В памяти храниться и отрисовывается только видимая часть. то есть спрайты в анимации не приязаны к размеру тайла и могут быть от 8 до 24 пикселей по гризонтали.
Про использование экрана как 2 буфера по 4 цвета решил отказаться. Хочется больше цвета.
Про временную буферизацию в памяти думал примерно тоже самое, но пока отложил. Когда что-то будет накладыватся на тайлы отличные от "земли" буду думать. Перерисовывать испорченные тайлы целиком коннечно сильно не хочется так как дорого, поэтому склоняюсь в пользу временного сохранения в память. но там посмотрим.
- - - Добавлено - - -
Подскажите пожалуйста можно ли использовать квазидиск для чтения музыки каждый кадр и подмену экранных плоскостей с квазидиском?




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 



