Показать сообщение отдельно
Старый 27.05.2012, 21:46
Mkey вне форума Посмотреть профиль Отправить личное сообщение для Mkey Найти все сообщения от Mkey
  № 9  
Ответить с цитированием
Mkey
 
Аватар для Mkey

Регистрация: Apr 2012
Сообщений: 88
Цитата:
Сообщение от expl Посмотреть сообщение
Как-бы:
Код AS3:
var i:int = object.x / CELL_SIZE;
var j:int = object.y / CELL_SIZE;
Но коли сетка не потребовалась - и ладно.
------------------------------------------------------
Апну тему, коли не закрыта и вопрос актуален.

Что я делаю и хочу сделать.
Я создаю объекты через цикл и записываю в переменный координаты квадрата, где они находятся. Нооооооо...
Вообщем выложу код
Код AS3:
var arrHostile:Array=new Array();
		private function createEnemy():void {
 
			var _enemy:Hostile;
			for (var i = 0; i < 10; i++) {
				_enemy = new Hostile();
				addChild(_enemy);
				arrHostile.push(_enemy);
 
				_enemy.x = Math.round((Math.random()*(-60) - 2));
				_enemy.y = Math.round(Math.random()*80+150);
				x_sq[i]=_enemy.x/5;///По формуле приведенной выше типа находим квадрат и записываем его в массиве, тоже делаем снизу.
				y_sq[i]=_enemy.y/5;
			}
		}
 
		var hspeedx=1;///Ну это скорость объекта.
		var hspeedy=1;
		//var Hero:HeroControl=new HeroControl();
 
 
		public function MovedHostile(event:Event):void
		{
 
		if(create==true){
			var Alfa:Number;
		var _xlenvec:Number;
		var _ylenvec:Number;
			for(var i=0;i<arrHostile.length;i++)
			{	_xlenvec=hero.x-arrHostile[i].x;
				_ylenvec=hero.y-arrHostile[i].y;
				Alfa=Math.atan2(_ylenvec,_xlenvec);
				if(Math.sqrt(Math.pow((hero.x-arrHostile[i].x),2)+Math.pow((hero.y-arrHostile[i].y),2))>10){ x_next=hspeedx*Math.cos(Alfa);
 
		x_squad=Math.round((arrHostile[i].x+x_next)/1);///Тут мы типа записываем в какой квадрат попадет объект
 
	y_next=hspeedx*Math.sin(Alfa);
	//trace("Speed Y:"+y_next);
	y_squad=Math.round((arrHostile[i].y+y_next)/1);///Тут мы типа записываем в какой квадрат попадет объект
	//trace("Squad Y:"+y_squad);
				for(var j:int=0;j<x_sq.lenght;j++)///Тут мы проверяем есть ли в квадрате куда мы перейдем кто-то. Сравнивая координаты.
				{
						if(x_sq[j]==x_squad && y_sq[j]==y_squad){
						y_next=0;x_next=0;}
 
				}
 
				arrHostile[i].x+=x_next;
				arrHostile[i].y+=y_next;
				x_sq[i]=Math.round(arrHostile[i].x/5);
				y_sq[i]=Math.round(arrHostile[i].y/5);
				}
			}
		}
		}
	}
 
}
Если посмотреть код и почитать комментарии то выяснится что это нихера не работает, так как координаты "квадрата" сетки это не центр "квадрата" сетки. Мне бы его как-то найти?