I가 어레이의 각 요소가 "단계"남아 있지 않은 것을 난 (종종 합리적으로) 확인해야 일하고 작은 JS 게임의 부분 배열 또는 "놀이터", 그래서 나는 그들을 제거하고 사람이를 계산하는 빠른/더 효율적인 방법을 알고 있다면 내가 아래 코딩하고 궁금 스크립트로드보다 효율적인 비교
을 절약 할 수 있습니다. 이것은 매 50ms마다 실행됩니다 (움직임을 다룹니다).
여기서 bots[i][1]
은 X에서의 움직임이고 bots[i][2]
은 Y에서의 움직임 (상호 배타적)입니다.
for (var i in bots) {
var left = parseInt($("#" + i).css("left"));
var top = parseInt($("#" + i).css("top"));
var nextleft = left + bots[i][1];
var nexttop = top + bots[i][2];
if(bots[i][1]>0&&nextleft>=PLAYGROUND_WIDTH) { remove_bot(i); }
else if(bots[i][1]<0&&nextleft<=-GRID_SIZE) { remove_bot(i); }
else if(bots[i][2]>0&&nexttop>=PLAYGROUND_HEIGHT) { remove_bot(i); }
else if(bots[i][2]<0&&nexttop<=-GRID_SIZE) { remove_bot(i); }
else {
//alert(nextleft + ":" + nexttop);
$("#" + i).css("left", ""+(nextleft)+"px");
$("#" + i).css("top", ""+(nexttop)+"px");
}
}
비슷한 노트에서 remove_bot (i); 기능은 다음과 같습니다이 (가 배열의 모든 요소는 ID의 변경으로 내가 스플 라이스 수 없습니다. 주어진 어떤 조언을
function remove_bot(i) {
$("#" + i).remove();
bots[i] = false;
}
많은 감사를!
정말 유용한 조언, 곧 업데이트 된 코드를 게시 할 것입니다. 그러나 나는 당신이 # 3에 의해 의미하는 것이 당신이 더 조언 할 수 있다는 것을 정말로 이해하지 못합니까? 많은 감사, –
@PezCuckow : # 3에 대한 설명을 확장했습니다. – Matt