적을 타일로 때리고 루프를 통해 적을 때리는 모든 타일을 확인합니다. 나는 그것들을 추적하고, 그것이 사실인지 거짓인지에 관해 나에게 말할 것이다. 나는 진실 된 것을 무작위로 선택하고 그 타일로 가도록 적을 얻을 수 있기를 원합니다. 그것은 적과 접촉하고있는 모든 타일을 추적합니다. 문제는 그 타일을 자신의 배열로 어떻게 가져올 수 있는지를 알지 못하고 적을 타일에 무작위로 이동시킵니다.배열이 참이되는 누름 객체
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);
}
도움 주셔서 감사합니다. 나는 카운터를 실제 타일에 연결할 때까지 모든 것을 가지고 있다고 생각합니다. 그 일을 어떻게 하죠? – Bindlestick
각 타일을 반복 할 때 tileset [j] 대신 tileset [current_tile]을 참조하기 만하면됩니다. 수용 할 수있는 타일을 기록 할 때, 타일 세트 [current_tile] (실제 타일)를 okTiles [카운터]에 복사하십시오. 그런 다음 okTiles에서 임의의 요소를 선택하면 일반 타일처럼 참조 할 수 있습니다. 오, 자바 스크립트가 아니라 액션 스크립트입니다. 위 내용이 효과가 없을 수 있습니다. 대신, tileset [current_tile] 대신에 current_tile을 okTiles [counter]에 기록 할 수 있습니다. 그리고 결국에는 okTiles [rand_element]를 참조하는 대신 tileset [okTiles [rand_element]]를 참조하십시오. – MegaWidget
또한 유용한 답변을 찾으면 옆에있는 녹색 체크 표시를 클릭하여 '수락'할 수 있습니다. – MegaWidget