По какой-то причине я не могу использовать функцию «плеер» более одного раза, поэтому это означает, что я не могу обновить ее позиционирование, может ли кто-нибудь помочь и объяснить почему?не может использовать функцию более одного раза
Heres мой код:
var gridHeight = 1000, gridWidth = 1000, canvasHeight = 250, canvasWidth = 250, p = 0;
var currentPositionX = 0;
var currentPositionY = 0;
function buildGrid() {
\t $("body").append("<canvas></canvas").css({
\t \t height: canvasHeight,
\t \t width: canvasWidth,
\t \t border: "2px solid #000"
\t });
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
$("#canvas").css({height: canvasHeight, width: canvasWidth});
\t for (var x = 0; x <= gridWidth; x += 40) {
context.moveTo(0.5 + x + p, p);
context.lineTo(0.5 + x + p, gridHeight + p);
}
for (var x = 0; x <= gridHeight; x += 20) {
context.moveTo(p, 0.5 + x + p);
context.lineTo(gridWidth + p,x + p);
}
context.strokeStyle = "black";
context.stroke();
function player(x, y, w, h, c) {
this.x = x || 0;
this.y = y || 0;
this.h = h || 20;
this.w = w || 40;
this.c = c || "#FF0000";
}
function draw() {
player = new player();
context.fillstyle = player.c;
context.fillRect(player.x,player.y,player.w,player.h);
$("#right").on("click", function() {
player.x += player.w;
return player.x;
})
}
setInterval(draw, 500)
}
$(document).ready(function() {
\t buildGrid();
})
* {
\t padding: 0px;
\t margin: 0px;
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/game.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="scripts/game.js"></script>
</head>
<body style=" background: lightblue;">
\t <canvas id="canvas"></canvas>
\t <div id="controls">
\t \t <button class="control" id="up">Up</button>
\t \t <button class="control" id="left">Left</button>
\t \t <button class="control" id="down">Down</button>
\t \t <button class="control" id="right">Right</button>
\t \t <button class="control" id="newPlayer">new player</button>
\t </div>
</body>
</html>
Может кто-нибудь помочь? Моя цель - заставить кнопки перемещать квадрат вокруг сетки. Но также у него есть наследуемые свойства для дальнейшей функциональности в конце.
Я просто попробовал, и я все еще получаю ту же ошибку – TheOriginal
Я думаю, что выполнение 'draw()' из 'setInterval()' лишает его ожидаемого контекста. Позвольте мне проверить, как это исправить. – Aaron