Привет, ребята. Еще один вопрос о функции push- Здесь
Мне тогда дали этот код -
var postDrawHooks = [];
var draw = function(){
// do stuff
postDrawHooks.forEach(function(hook){hook()});
}
var playerUpdate = function(){...};
postDrawHooks.push(playerUpdate);
Это работает очень хорошо и позволяет вам вставить функцию outide в другую, такую как игровой цикл, без необходимости редактировать файл engine.js для каждой игры, если вы хотите добавить обновление к объекту, просто нажмите на кнопку. В любом случае мне нужен способ протолкнуть рисунок, например Context2D.drawImage (бла-бла-бла); теперь, когда я пытаюсь выдвинуть это, как показано выше, я получаю сообщение об ошибке при попытке нарисовать с нуля.
post_draw_render.push(context2D.drawImage(player.tilesheet, player.frameX,player.frameY, 46, 45, player.PosX, player.PosY+1, 46, 45));
Я не могу даже использовать Context2D.drawImage где-нибудь в стороне от моей функции рисования, и я не знаю, почему какие-либо идеи?
двигатель -
//engine vars//
function init() {
canvas = document.getElementById('canvas');
context2D = canvas.getContext('2d');
setInterval(draw, 1000/FPS);
}
function draw() {
post_draw_function.forEach(function(hook){hook()});
gameloop();
context2D.clearRect(0, 0, canvas.width, canvas.height);
post_draw_render.forEach(function(hook){hook});
//Basic Draw - context2D.drawImage(playerImg, player.PosX, player.PosY);
//Tilesheet draw - context2D.drawImage(tilesheet, sx, sy, sw, sh, dx, dy, dw, dh);
context2D.fillStyle = "white";
context2D.font = 'bold 25px Times New Roman';
}