HTML5 캔버스로 모바일 브라우저 성능에 대해 글을 남겼습니다. 나는 간단한 마리오 브라더스 같은 간단한 플랫폼 게임을 만들려고 노력하고있다. 나는 주인공과 점프 플랫폼을 모방 한 두 개의 적과 블록을 가지고있다. 캐릭터와 적들은 drawImage에 의해 그려지며 블럭은 fillRect에 의해 제거됩니다 (당장은 나중에 drawImage가 될 것입니다). 모든 것은 움직입니다 (문자가 움직일 때, 문자 X는 블록 X에 추가됩니다). 캔버스 다중 이미지 및 모바일 브라우저 성능
은 지금은 어떤 임의의 동전을 추가하기 위해 노력하고있어. 먼저 나는 무작위로 X와 Y와 객체 배열을 만드는거야var coinB = new Image();
coinB.src = 'coin.png';
다음 이미지에 대한 변수를 만들어 :
을 :var k;
for (k = 0; k <= 30; k++) {
coins.push({
x: Math.floor(Math.random() * 36 + 4) * 100,
y: Math.floor(Math.random() * 3 + 1) * 100,
width:25,
height:25
});
}
그리고 그 후 나는 모든 것을 선택하고 그리려고
var l;
/* left is the character X for the animation */
for (l = 0; l < coins.length; l++) {
ctx.drawImage(coinB, coins[l].x - left, coins[l].y, coins[l].width, coins[l].height);
}
모든 requestAnimFrame에 함수()이다.
불행하게도 그 후, 게임은 초당 30 프레임에 대한 모바일 파이어 폭스 (크롬 모바일 20 ~ 30 FPS)에 (동전없이 이전에 60 FPS에서)이있다. 그래서 그것은 동전으로 fps의 절반 정도입니다.
이미지를 가져오고 그들을 잡아하는 더 좋은 방법이 있나요? 예를 들어, 과 동일하게 모든 것에 대해 (주인 = 새 이미지(), 적 = 새 이미지(), 동전 = 새 이미지() = 요법)에 대해 new Image()
을 수행합니다. 나는 그것이 최선의 해결책이 아니라고 생각한다. 더 나은 성능을 얻기 위해 (fps를 줄이기 위해) 어떻게해야합니까? 도움 주셔서 감사합니다.
메인 루프 밖에서 동전을 초기화하는 방법은 무엇입니까? 객체를 인스턴스화하는 것은 무료가 아닙니다. 'for (l = 0, len = coins.length; i
danielepolencic