캔버스를 사용하여 경주 용 게임을 만들고 자동차 배경이 투명한 png 파일을 만들려고합니다.png 파일을 사용하는 캔버스 애니메이션
화살표 중 하나를 길게 누르면 문제가 있습니다. 운동의 반대 방향으로 그것은 차의 오래된 위치 인 하얀 그림자처럼 보입니다.
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var canvas;
var ctx;
var car = new Image();
var x = 0;
var y = 0;
function startUp(){
canvas = document.getElementById('myCanvas');
ctx = canvas.getContext('2d');
loadImages();
startGameLoop();
}
function startGameLoop() {
setInterval(function() {
drawScreen();
drawCar();
}, 16);
window.addEventListener('keydown', whatKey, true);
}
function drawScreen(){
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = '#aaaaaa';
ctx.rect(0, 0, canvas.width, canvas.height);
ctx.fill();
}
function drawCar(){
ctx.drawImage(car, x ,y, 200, 103);
}
function whatKey(evt) {
switch (evt.keyCode) {
// Left arrow.
case 37: {
x -= 15;
}
break;
// Right arrow.
case 39:{
x += 15;
}
break;
// Down arrow
case 40:{
y += 15;
}
break;
// Up arrow
case 38: {
y -= 15;
}
break;
}
}
function loadImages() {
car.src = 'http://sammywasem.com/images/f3-top.png';
}
</script>
</head>
<body onload="startUp()">
<canvas id="myCanvas" width="1050" height="620">
</canvas>
</body>
</html>
감사 답변을 위해, 내 문제 중 하나였다. 위에서 작성한 코드를 내 레프럽에서 시험해 보았는데 정상적으로 작동합니다. – user3549461
반갑습니다. 문제가 남아 있다는 뜻입니까? Chrome 또는 Firefox (Mac OS)에서 설명하는 흰색 그림자를 볼 수 없습니다. – GameAlchemist
문제는 내 PC에 있으며, 나는 그것을 볼 수 없다고 생각합니다. 화살표 중 하나를 누르고 있으면 루프가 실행될 때마다 화면이 지워지고 새 x 또는 y에 차가 그려지고 차 x의 흰색 그림자가 이전 x 또는 y에 그려집니다. 그것은 모든 중요한 브라우저에서 발생합니다. 나도 몰라, 내 비디오 카드 설정에서 온거야? – user3549461