빠른 작업을 위해 플레이어와 적들이있는 타일 배열이 있습니다.적의 무작위 이동
public static var floor1:Array = new Array(7);
floor1[0] = [0,1,1,1,1,1,0];
floor1[1] = [1,1,1,1,1,1,1];
floor1[2] = [1,1,1,0,1,1,1];
floor1[3] = [1,1,0,0,0,1,1];
floor1[4] = [1,1,1,0,1,1,1];
floor1[5] = [1,1,1,1,1,1,1];
floor1[6] = [0,1,1,1,1,1,0];
public function Main()
{
var tilew:int = 60;
var tileh:int = 60;
for (var i:int=0; i<floor1.length; i++)
{
for (var u:int=0; u<floor1[i].length; u++)
{
var cell:MovieClip = new Tile();
cell.gotoAndStop(floor1[i][u]);
cell.x = ((u-i)*tileh);
cell.y = ((u+i)*tilew/2);
addChild(cell);
cell.addEventListener(MouseEvent.ROLL_OVER, mouseover);
cell.addEventListener(MouseEvent.ROLL_OUT, mouseout);
cell.addEventListener(MouseEvent.CLICK, mouseclick);
cell.addEventListener(Event.ENTER_FRAME, beginfloor1);
}
}
var player:Player = new Player();
addChild(player);
player.mouseEnabled = false;
player.x = 5 * (tileh);
player.y = 5 * (tilew/2);
var enemy:Enemy = new Enemy();
addChild(enemy);
enemy.mouseEnabled = false;
enemy.x = 9 * (tileh);
enemy.y = 9 * (tileh/2);
내 목표는 적을 자신의 범위에서 타일에 무작위로 이동시키는 것입니다. 내가 한 것은 enemyVisionArea라고 불리는 정사각형 그래픽을 작성하여 어느 타일이 적을 때리는지를 확인하는 것이 었습니다. 타일은 기본적으로 타일을 둘러 쌉니다.
저는 플레이어가 근처에 없거나 그가 사용할 수있는 타일 옆에 있다면 5 초마다 움직이는 적을 알려주는 타이머 기능을 가지고 있습니다.
function timerenemy (event:TimerEvent){
if (enemy.enemyVisionArea.hitTestObject(enemyMover) && !player.visionPoint.hitTestObject(enemyMover.tileMiddle))
{
enemy.x = (enemyMover.x)+55;
enemy.y = (enemyMover.y)+20;
trace("moved");
}
}
enemyMover 내가 타일 오브젝트 같게 변수이다.
function beginfloor1(event:Event)
{
enemyMover = event.currentTarget as Tile;
}
그냥 그대로 있습니다. 나는 적의 VisionArea가 타격을받는 타일 위에 적을 이동시키고 싶을뿐입니다. 가까운 타일을 테스트하십시오. beginfloor1 함수가 작동하지 않는 것 같습니다. enemyMover = event.currentTarget을 타일로 선언하고 enemyVisionArea가 타격을 치는 임의의 타일로 적을 이동시킬 수있는 방법이 있습니까? 테스트 중입니까?
혼란스러운 경우 전체 코드를 게시 할 수 있습니다.
답변 해 주셔서 감사합니다. enemyMover를 배열로 바꾸는 것은 의미가 있습니다. 타일이 1 개 이상이므로 배열을 사용하는 것이 좋습니다. psuedo tileset 배열 변수에 관해서는 floor1 변수 배열과 동일합니까? – Bindlestick
'floor1'은 색인 집합 일 뿐이지 만 참조 할 해당'Tile' 객체가 필요합니다. 그러나 tileset과 함께'floor1'을 사용하면 불안정한 타일을 필터링하는 데 도움이됩니다. – Vesper
타일셋을 타일 오브젝트와 어떻게 같습니까? 이전에 할당하려고했는데 배열이 MovieClips와 같을 수 없다고 말합니다. – Bindlestick