Согласно моему ТЗ, вывод спрайта будет затирать весь прямоугольник под спрайтом, т.е. я его выведу сразу поверх старого. Если был сдвиг на 1 пиксель вправо или влево, то останется затереть только вертикальную линию слева или справа. Но у меня в игре такого вывода не будет.
Ты видел бегающего чувачка в Laser2Demo.zip? Там 4 спрайта в разных фазах. Просто познакоместный вывод одной фазы спрайта поверх спрайта в другой фазе.
Код:
FOR x := -2 TO 30 BY 2 DO
FOR phase := 1 TO 4 DO
gr.PTBL(x, 0, phase);
b.PAUSE(5);
END;
END;
С выводом по OR так не получится. А если перед выводом каждой файзы вначале чистить прямоугольник, то да, будет мерцать. Поэтому чистку надо совместить с выводом.
- - - Добавлено - - -

Сообщение от
S_V_B
Когда ты выводишь BISом под спрайтом тоже все чистится
Разве? А, по-моему, нет. BIS делает наложение данных спрайта по OR с данными, уже находящимися на экране. Тогда как чистка подразумевает их замещение. Т.е. если на экране единицы, а в спрайте нули, то это нули должны затереть единицы.

Сообщение от
S_V_B
поставь между первым и вторым BISом CLR и проверку на последний байт по ширине (его не стирай)

А что это даст? Судя по моим прикидкам, всё обстоит сложнее. Но я не очень досконально понимаю как оно работает. Всё ещё плаваю.