Показать сообщение отдельно
Старый 22.02.2010, 18:50
ps_spectre вне форума Посмотреть профиль Отправить личное сообщение для ps_spectre Найти все сообщения от ps_spectre
  № 10  
Ответить с цитированием
ps_spectre
 
Аватар для ps_spectre

блогер
Регистрация: Jan 2010
Адрес: Киев
Сообщений: 156
Записей в блоге: 4
Отправить сообщение для ps_spectre с помощью Skype™
я делаю примерно так (очень упрощенно)
addEventListener(Event.ENTER_FRAME, gameLoop);
---
Код AS3:
		private function gameLoop(e:Event=null):void 
		{
			if (running) { logic(); render(); }		
		}
		private function logic():void
		{
			for (var i:int = 0; i < MAX_SPRITES; i++) sprites[i].logic();
		}
		private function render():void
		{			
			canvas.lock();	
			canvas.fillRect(rectangle, 0xffffffff);
			for (var i:int = 0; i < MAX_SPRITES; i++) sprites[i].render();
			canvas.unlock();
		}
игровая сущность очень упрощенно так
Код AS3:
import flash.display.BitmapData;	
	import flash.geom.Point;	
	public class GameEntity extends Object
	{			
		private var p:Point;	
		private var velocity:Number;
		public var bitmapdata:BitmapData;
		public var canvas:BitmapData;		
		public function GameEntity(x:Number, y:Number, velocity:Number)
		{	
			this.p = new Point(x, y);
			this.velocity = velocity;
		}		
		public function render():void
		{							
			canvas.copyPixels(
				bitmapdata,
				bitmapdata.rect,
				p, 
				null,
				null,
				true
			);
		}	
		public function logic():void
		{
			if (p.x <= canvas.width) p.x += velocity;
			else p.x = 1;
		}
	}


Последний раз редактировалось ps_spectre; 22.02.2010 в 18:55.