2011-04-01 3 views
1

나는 임의의 위치에 그리드에 항목을 추가하는 기능을 가지고 있습니다. (타이머 이벤트에서 수행됩니다)이 기능에서는 항목이 플레이어에 닿는지를 확인합니다. 함수가 호출되면 함수를 호출합니다. 그러나 그것은 내가 그 함수를 다시 호출 할 때 오류가 발생합니다. 함수가 (이벤트 : TimerEvent)이기 때문일 수 있습니다. 당신이 기능을 사용하면 오류가 발생합니다 기대된다 TimerEvent를하지 않고 수동으로 함수를 호출하는 경우1136 : 인수 개수가 잘못되었습니다. 예상 1 1

아래의 기능

private function placeFood(event:TimerEvent = null):void{ 
     var rndI:uint = Math.floor(Math.random() * DIM); //sets a random integer based on the the floor 
     var rndJ:uint = Math.floor(Math.random() * DIM); 

     var rndX:Number = grid[rndI][rndJ].x; // sets a grid position for the food item to go 
     var rndY:Number = grid[rndI][rndJ].y; 

     if(_foodMap[int(rndX)] == null){ 
     _foodMap[rndX] = []; 
     } 

     if(_foodMap[int(rndX)][int(rndY)] == null){ 
     _foodMap[rndX][rndY] = food; 
     } 




     food = makeItem(Math.random() * 0xFFFFFF);// random color 
     food.x = rndX; 
     food.y = rndY; 


     addChild(food); //adds the food to the board 


     for (var i:uint = 0; i < snake.length; i++){ 
      if (rndY == snake[i].y && rndX == snake[i].x){ 
       placeFood(); 
      } 
     } 
     } 
+0

변경 placeFood(); placeFood (이벤트); –

답변

2

입니다. 그래서 당신은 PARAM의 기본 값이 null 인 것을 정의해야

private function placeFood(event:TimerEvent = null):void { 
    //code 
} 

식품 맵에 대한 의지가 음식에 대한 참조를 포함하는 다차원 배열을 만들 수 있습니다.

private var _foodMap:Array = []; 

그럼 당신은 또한 다음 음식을 추가 뱀의 머리가 위치가 비어있는 경우 확인할 수 있도록 내가 아래처럼 음식지도에 추가 할 장소이다.
if(_foodMap[int(rndX)] == null){ 
    _foodMap[rndX] = []; 
} 

if(_foodMap[int(rndX)][int(rndY)] == null){ 
    _foodMap[rndX][rndY] = food; 
} 

그런 다음 모두 _foodMap[int(snakesHeadX)] == null_foodMap[int(snakesHeadX)][int(snakesHeadY)] == null은 다음 수단이 뱀의 머리의 위치가 비어 있습니다.

+0

완벽 건배, 당신은 wouldnt 할 수있는 방법을 그렇게 내가 그것을 코드 수있는 개체 (뱀이 음식을 때리는) 뭔가를 추적? – DIM3NSION

+0

@ DIM3NSION, 당신은 무언가를 추적하는 방법이나 뱀이 음식에 닿을 때 이벤트에 대한 청취자를 만드는 방법을 알아야합니까? 트레이스 할 필요가 있다면'trace ("Tracing something ..");'를 사용하십시오. 추신 대답을 선택하십시오. (:??? 뱀이 DIM3NSION @ 음식 감사 리차드 – Rihards

+0

가 어떻게에 대한 리스너를 코딩 할 것이라고 이미 – DIM3NSION

1

이벤트 리스너에 함수를 제공하면 정의는 리스너가 예상 한 것과 일치해야합니다.

이 :

private function placeFood(event:TimerEvent):void{ 

가 TIMER_EVENT하지만 다른 이벤트를 일치합니다.

당신이 읽고,이 청취자 전화를 변경하기 위해 다른 이벤트를 원하는 경우 :

private function placeFood(event:Event):void{ 
0

사용 placeFood (이벤트); 자본이 있어요.

관련 문제