2014-02-13 2 views
0

У меня возникла проблема, когда изображение моего игрока перемещает пользовательское фоновое изображение холста.Изображение, движущееся под холстом, фоновое изображение

Есть ли способ исправить это с помощью порядка ничьи или что-то в этом роде. Я перемещаю плеер, используя функцию i, вызванную KeyboardDown, а затем добавляю слушателя. Это отлично работает, за исключением того, что оно рисуется под фоновым изображением.

Вот мой код:

function gameLoop() 
{ 
    Initialize(); 

} 

function drawBackground() 
{ 
    g.drawImage(img,0, 0, 500, 500); 
} 

var img; 
var player1; 
var player2; 
var football; 

function Initialize() 
{ 
    img = new Image(); 
    img.src = "Images/GrassTexture.png"; 

    player1 = new Image(); 
    player1.src = "Images/Players/Mignolet.png"; 

    player2 = new Image(); 
    player2.src = "Images/Players/De Gea.png"; 

    football = new Image(); 
    football.src = "Images/Football/Football.png"; 

    g.drawImage(img,0, 0,400 , 500); 
    g.drawImage(player1,175,0,50,50); 
    g.drawImage(player2,175,450,50,50); 
    g.drawImage(football,185,250,25,25); 
} 
var x = 0; 
var y = 0 

function arrowKeyDown(e) 
{ 
    var stepSize = 10; 

    if (e.keyCode == 37) // left 
    { 
     x -= stepSize; 
    } 
    else if(e.keyCode == 39) // right 
    { 
     x += stepSize; 
    }  
    //g.clearRect(0,0,400,500); 
    g.drawImage(player1,x,y,50,50); 

} 

var g; 

window.onload=function() 
{ 

    var canvas = document.getElementById("Canvas"); 
    canvas.width = 400; 
    canvas.height = 500; 
    g = canvas.getContext("2d"); 
    gameLoop(); 

}; 
setInterval(gameLoop, 0); 
document.addEventListener('keydown',arrowKeyDown); 
+0

Когда функция drawBackground() называется? – Thunda

ответ

0

получил это работает, установив холст фон через CSS вместо использования Javascript

+0

Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы будете быть в состоянии [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). –

+0

@NickR Chuckle ... Вы заметили, что на самом деле это вопрос, говорящий, что они решили проблему с помощью фона CSS? :-) – markE

+0

@markE Да, я знаю, но это не действительный ответ как таковой. Первоначальный вопрос должен быть отредактирован. Или фактическое решение опубликовано. –

Смежные вопросы