2013-05-23 2 views
1

적을 타일로 때리고 루프를 통해 적을 때리는 모든 타일을 확인합니다. 나는 그것들을 추적하고, 그것이 사실인지 거짓인지에 관해 나에게 말할 것이다. 나는 진실 된 것을 무작위로 선택하고 그 타일로 가도록 적을 얻을 수 있기를 원합니다. 그것은 적과 접촉하고있는 모든 타일을 추적합니다. 문제는 그 타일을 자신의 배열로 어떻게 가져올 수 있는지를 알지 못하고 적을 타일에 무작위로 이동시킵니다.배열이 참이되는 누름 객체

for (var j:int = 0; j < tileset.length; j++){ 
    trace(tileset[j].currentFrameLabel, tileset[j].hitTestObject(enemy)); 
    if (tileset[j].hitTestObject(enemy) && !tileset[j].hitTestObject(player)){ 
       options.push(Boolean(true)); 
      } 

편집 : 여기에 매 5 초, 나는 원수가 가능한 타일로 이동하려는 내 타이머 기능이 있습니다. 타일셋을 볼 수는 없지만 for 루프 자체에있는 타일 인 무비 클립과 같은 배열입니다. 그래서 기본적으로, 타일셋은 타일의 49 영화 클립입니다. 옵션으로 사용할 수있는 배열을 다른 배열로 밀어 넣었습니다. 그런 다음 카운터가 될 enemyPick이라고하는 var을 만듭니다. 그게 내가 얼마나 멀리 있는지.

function timerenemy (event:TimerEvent) { 

        var options:Array = []; 

        for (var j:int = 0; j < tileset.length; j++){ 
         if (tileset[j].hitTestObject(enemy) && ! tileset[j].tileMiddle.hitTestObject(player)) { 
          //trace(tileset[j].currentFrameLabel, tileset[j].hitTestObject(enemy)); 
          tileset[j].outline.gotoAndStop("attack"); 
          options.push(tileset[j]); 
         } 

         if (options.length > 0){ 
          var enemyPick:int = Math.floor(Math.random()*options.length) 

         } 

        } 
        trace(enemyPick, options); 
      } 

답변

1

먼저 허용되는 최대 타일 수 인 길이의 배열을 만듭니다. 예를 들어, 직선 타일에서는 한 번에 2 개만 사용할 수 있습니다. 이제 적을 타일로 이동해야 할 때마다 카운터를 0으로 초기화하십시오. 그런 다음 각 타일을 반복하고 적과 접촉하는지 묻습니다. 그것의 경우, 배열 [카운터]에 기록하고 카운터를 증가시킵니다. 루프가 끝나면 0에서 (카운터)까지 임의의 숫자를 선택하고 배열 [임의 번호]를 적이 이동하는 타일로 사용합니다.

+0

도움 주셔서 감사합니다. 나는 카운터를 실제 타일에 연결할 때까지 모든 것을 가지고 있다고 생각합니다. 그 일을 어떻게 하죠? – Bindlestick

+0

각 타일을 반복 할 때 tileset [j] 대신 tileset [current_tile]을 참조하기 만하면됩니다. 수용 할 수있는 타일을 기록 할 때, 타일 세트 [current_tile] (실제 타일)를 okTiles [카운터]에 복사하십시오. 그런 다음 okTiles에서 임의의 요소를 선택하면 일반 타일처럼 참조 할 수 있습니다. 오, 자바 스크립트가 아니라 액션 스크립트입니다. 위 내용이 효과가 없을 수 있습니다. 대신, tileset [current_tile] 대신에 current_tile을 okTiles [counter]에 기록 할 수 있습니다. 그리고 결국에는 okTiles [rand_element]를 참조하는 대신 tileset [okTiles [rand_element]]를 참조하십시오. – MegaWidget

+0

또한 유용한 답변을 찾으면 옆에있는 녹색 체크 표시를 클릭하여 '수락'할 수 있습니다. – MegaWidget