Цитата:
Сообщение от 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);
}
}
}
}
}
}
Если посмотреть код и почитать комментарии то выяснится что это нихера не работает, так как координаты "квадрата" сетки это не центр "квадрата" сетки. Мне бы его как-то найти?