2 개의 배열을 통한 루핑 최적화 자바 스크립트 캔버스 게임

바실리 밀렌 코 비치

나는 첫 번째 자바 스크립트 캔버스 게임을 작업 중이며 두 배열의 객체 간 충돌을 비교하는 더 좋은 방법이 있는지 궁금합니다. 예를 들어 로켓 배열과 적 배열이 있으면 코드가 작동하지만 배열 길이가 훨씬 커지면 성능에 영향을 미칠 것이라고 생각합니다. 100 개의 적을 통과하는 100 개의 로켓은 프레임 당 10000 번의 반복입니다.

for (i in rockets){ 
    rockets[i].x+=projectile_speed;
    for (j in enemies){
        if(collision(rockets[i], enemies[j])){ 
            enemies[j].health-=5;
            sound_hit[hit_counter-1].play();
            hit_counter--;
            if (hit_counter==0){
                hit_counter=5;
            }
            rockets.splice(i,1);
            if (enemies[j].health <= 0) {
                score += enemies[j].score;
                sound_explode[Math.floor(Math.random()*25)].play();
                enemies[j].isDead = true;
            }
        } else if(rockets[i].x >= width){
                rockets.splice(i,1);
        }    
    }
}
에밀 잉 거슬 레프

모든 플레이어의 모든 로켓을 테스트하고 싶다면 플레이어와 로켓의 위치에 대해 더 많이 알지 못하면 실제로 다르게 할 수는 없습니다.

collision함수를 빠르게 유지한다면 전혀 문제가되지 않습니다.

나는 이것에 대해 두 가지 쉬운 개선을 생각할 수 있습니다.

  • 충돌이 발견 continue되면 나머지 플레이어를 반복 할 필요가 없어야합니다 (플레이어가 충돌하도록 허용되지 않는 한).
  • 로켓 배열을 여러 번 연결하는 대신 모든 "죽은"로켓을 제외하고 새 로켓 배열을 만드십시오.

또한 사용을 고려해야합니다 forEach, mapfilter코드 A가 쉽게 읽을 비트 만들기 위해 :

rockets = rockets.filter(function(rocket) { 
    rocket.x+=projectile_speed;
    if(rocket.x >= width) {
        return false;
    }
    var enemy = enemies.find(function(enemy) { return collision(rocket, enemy) });
    if(enemy) {
        enemy.health-=5;
        sound_hit[--hit_counter].play();
        if (hit_counter==0){
            hit_counter=5;
        }
        if (enemy.health <= 0) {
            score += enemy.score;
            sound_explode[Math.floor(Math.random()*25)].play();
            enemy.isDead = true;
        }
        return false;
    }
    return true; 
});

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

2 개의 자바 스크립트 배열을 동일하게 정규화

분류에서Dev

2 개의 배열 자바 스크립트를 통해 반복

분류에서Dev

배열을 통한 자바 루핑-최적화

분류에서Dev

객체 배열을 통한 자바 스크립트 루프

분류에서Dev

자바 스크립트 캔버스 게임 개발

분류에서Dev

배열 루핑 자바 스크립트

분류에서Dev

자바 스크립트 : 연관 배열의 루핑을 이해하지 못함

분류에서Dev

캔버스 자바 스크립트로 개발 된 퐁 게임의 문제점

분류에서Dev

json은 자바 스크립트를 사용하여 변수에 배치하는 데 필요한 2 개의 배열을 문자열 화합니다.

분류에서Dev

for 루프를 통한 자바 스크립트 배열 형식

분류에서Dev

자바 스크립트 및 HTML5 캔버스를 사용하는 게임 앱의 배경

분류에서Dev

고유 한 임의 배열 자바 스크립트

분류에서Dev

루프 반전 배열을위한 자바 스크립트

분류에서Dev

루프 배열을위한 자바 스크립트

분류에서Dev

루프 배열을위한 자바 스크립트

분류에서Dev

자바 스크립트 배열을 임의로 비우기

분류에서Dev

자바 스크립트 : 이미지 자동 변경을위한 최적화 스크립트

분류에서Dev

국가의 자바 스크립트 배열을 새 배열로 매핑

분류에서Dev

자바 스크립트의 비 배열 평면 JSON 객체를 통한 필터링 및 루프

분류에서Dev

통화 문자열에 대한 자바 스크립트 정렬

분류에서Dev

다른 배열 자바 스크립트의 매개 변수로 배열 루프

분류에서Dev

자바 스크립트 게임의 모호한 오류

분류에서Dev

자바 스크립트의 간단한 통화 변환

분류에서Dev

자바 스크립트 (D3) 루프 최적화

분류에서Dev

자바 : 파일을 두 개의 2D 문자열 배열로 선택적으로 스캔하는 방법

분류에서Dev

자바 스크립트-각각 2 개의 iframe을 여는 두 개의 버튼

분류에서Dev

Google Apps 스크립트를위한 자바 스크립트 최적화

분류에서Dev

wixsite 용 자바 스크립트에서 배열을 통해 루프

분류에서Dev

반복적으로 자바 스크립트 배열에서 임의의 항목을 얻습니까?

Related 관련 기사

  1. 1

    2 개의 자바 스크립트 배열을 동일하게 정규화

  2. 2

    2 개의 배열 자바 스크립트를 통해 반복

  3. 3

    배열을 통한 자바 루핑-최적화

  4. 4

    객체 배열을 통한 자바 스크립트 루프

  5. 5

    자바 스크립트 캔버스 게임 개발

  6. 6

    배열 루핑 자바 스크립트

  7. 7

    자바 스크립트 : 연관 배열의 루핑을 이해하지 못함

  8. 8

    캔버스 자바 스크립트로 개발 된 퐁 게임의 문제점

  9. 9

    json은 자바 스크립트를 사용하여 변수에 배치하는 데 필요한 2 개의 배열을 문자열 화합니다.

  10. 10

    for 루프를 통한 자바 스크립트 배열 형식

  11. 11

    자바 스크립트 및 HTML5 캔버스를 사용하는 게임 앱의 배경

  12. 12

    고유 한 임의 배열 자바 스크립트

  13. 13

    루프 반전 배열을위한 자바 스크립트

  14. 14

    루프 배열을위한 자바 스크립트

  15. 15

    루프 배열을위한 자바 스크립트

  16. 16

    자바 스크립트 배열을 임의로 비우기

  17. 17

    자바 스크립트 : 이미지 자동 변경을위한 최적화 스크립트

  18. 18

    국가의 자바 스크립트 배열을 새 배열로 매핑

  19. 19

    자바 스크립트의 비 배열 평면 JSON 객체를 통한 필터링 및 루프

  20. 20

    통화 문자열에 대한 자바 스크립트 정렬

  21. 21

    다른 배열 자바 스크립트의 매개 변수로 배열 루프

  22. 22

    자바 스크립트 게임의 모호한 오류

  23. 23

    자바 스크립트의 간단한 통화 변환

  24. 24

    자바 스크립트 (D3) 루프 최적화

  25. 25

    자바 : 파일을 두 개의 2D 문자열 배열로 선택적으로 스캔하는 방법

  26. 26

    자바 스크립트-각각 2 개의 iframe을 여는 두 개의 버튼

  27. 27

    Google Apps 스크립트를위한 자바 스크립트 최적화

  28. 28

    wixsite 용 자바 스크립트에서 배열을 통해 루프

  29. 29

    반복적으로 자바 스크립트 배열에서 임의의 항목을 얻습니까?

뜨겁다태그

보관