Показать сообщение отдельно
Старый 03.12.2008, 22:20
Xpb7 вне форума Посмотреть профиль Отправить личное сообщение для Xpb7 Найти все сообщения от Xpb7
  № 10  
Ответить с цитированием
Xpb7

Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
Цитата:
Сообщение от ZlPredator Посмотреть сообщение
Лучше избегать небольших скоростей и выравнивать итоговые координаты под целый пиксель.
Так в том-то и дело, что скорость не маленькая.
Я сдвигаю по 9 пикселей за кадр, и по целым числам:

Код AS3:
var vSSpeed: Number = 9;
..
this.addEventListener(Event.ENTER_FRAME, moveSurroundings);
...
private function drawSurroundings():void
{
	var sourceBMP:BitmapData = new perilaUp(0, 0);
 
	upBorder1.graphics.beginBitmapFill(sourceBMP);
	upBorder1.graphics.drawRect(0, 0, 1008, 168);
	upBorder1.graphics.endFill();
	addChild(upBorder1);
	upBorder1.y = 17;
	upBorder1.x = 0;
 
	upBorder2.graphics.beginBitmapFill(sourceBMP);
	upBorder2.graphics.drawRect(0, 0, 1008, 168);
	upBorder2.graphics.endFill();
	addChild(upBorder2);
	upBorder2.y = 17;
	upBorder2.x = 1008;
}
 
...
 
private function moveSurroundings(e: Event):void
{
	upBorder1.x -= vSSpeed;
	upBorder2.x -= vSSpeed;
	downBorder1.x -= vSSpeed;
	downBorder2.x -= vSSpeed;
	if (upBorder1.x < -1008) {upBorder1.x +=1008}
	if (upBorder2.x < 0) {upBorder2.x += 1008}
	if (downBorder1.x < -1008) {downBorder1.x +=1008}
	if (downBorder2.x < 0) {downBorder2.x += 1008}			
}
aksios, это не подходит, скорость будет меняться.

UPD:
ZlPredator, я попробою ваш подход (признаюсь он несколько мне не ясен в силу отстутвия опыта работы с битмапой) и отпишусь, хоть там несколько ошибок, но выглядит очень лаконично!
В общем, подитоживая, должен вам сказать, что оба метода работают с одинакомыми дефектами, только вот возможно ZlPredator-а метод меньше кушает памяти.. Не проверял, но резултат не впечатлил.


Последний раз редактировалось Xpb7; 03.12.2008 в 22:56.