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

Регистрация: Nov 2008
Сообщений: 65
Лучше избегать небольших скоростей и выравнивать итоговые координаты под целый пиксель. Но если сильно необходимо двигать с очень маленькой скоростью, то нарисуйте все части забора в один Bitmap и двигайте его по дробным частям пикселя. Чтобы забор не съедал много памяти, можно создать только один кусок, а на каждый кадр перерисовывать. В итоге что-то типа:

Код AS3:
class Zabor extends Shape
{
	private var bgImage:BitmapData;
	private var bgDimension:Rectangle;
 
	public function Zabor(clip:DisplayObject):void
	{
		bgDimension = clip.getRect(null);
		bgImage = new BitmapData(bgDimension.width, bgDimension.height);
		bgImage.draw(clip);
	}
 
	public function redraw(delta:Number,width:Number):void
	{
		graphics.clear();
		var matrix:Matrix = new Matrix();
		matrix.translate(delta % bgDimension.width, 0);
		graphics.beginBitmapFill(bgImage, matrix, true, true);
		graphics.drawRect(width, bgDimension.height);
		graphics.endFill();
	}
}
Такой объект помещаете куда вам надо и вызываете через промежутки меняя delta.