Пишу в этом разделе, т.к. графика (и моя трабла) очень близка именно к играм
Собственно что мне надо - есть какая-то картинка (спрайт или т.п.), скажем 200x210.
Ее треба перемещать на экране по заданной траектории (не важно какой именно).
Проблема в том, что нужно устранить мерцание при движении спрайта (/фигуры)...
Что пробовал:
1. Стандартные фишки типа Getimage/putimage XOR'ом для рисования и стирания
2. Смена видеостраниц (двойная буферизация, тратата..) - что-то не очень-то помогает.
К тому же мне хотелось бы использовать режим 640x480 - а это VGAHi и у него только 1 видеостраница.
3. Синхронизация с обратным ходом лучей - нечто мистическое (думается для CRT моников самое то), но у меня LCD и ускорения или устранения мерцания таким вот образом я не наблюдаю
4. Нашел в инете статейки со вставками на асме и т.п. - асм юзать не хочется, т.к. в нем ничерта не понимаю
Из более-менее схожего - есть обращение к видеопамяти напрямую - $A000:$0000 - начиная отсюда и далее.
Дык вот, внимание, сам вопрос (барабанная дробь):
Как в этом самом режиме VGAHi 640x480@16 устроена эта самая видеопамять?
Т.е. как она представлена в памяти? 16 цветов - это типа полбайта на пиксель чтоли?
В общем хелп ми
P.S.: Можно ли в каких-нибудь настройках форума сделать так, чтобы все сообщения в теме выводились полностью, а не по одному и с деревом снизу - как-то непривычно...
Сообщение отредактировано: Turboworld -
Паскаль, работа с видеопамятью напрямую в режиме VGAHi |