Пишем игру на HTML5 и JS. Часть 2.5
Фев 04
2011
beta, ИгроДел animation, effect, fade, gamedev, HTML5, JavaScript, sinus, ИгроДел No Comments
Эта статья — продолжение части 2, код в которой получился незавершёным. Сегодня мы сделаем следующее:
- Добавим в ядро возможность загружать ресурсы для модулей.
- Проверим работоспособность модуля zx.Image.
- Разберём простую анимацию.
Загрузка ресурсов ядром.
MindDefGame
Прежде всего, перенесём в ядро некоторые свойства из game.js. Например, canvas и его context. Также вынесем их инициализацию в ядро. Таким образом метод MindDefGame.initialize() упростится до:
initialize: function(cnv, w, h) { zx.go(cnv, w, h); this.x = 0; },
В методе MindDefGame.loop() исправим использование canvas и его контекста:
loop: function() { zx.ctx.globalAlpha = .017; zx.ctx.fillStyle = "#000"; zx.ctx.fillRect(0,0,zx.cnv.width,zx.cnv.height); zx.ctx.globalAlpha = 1; var clr = 'rgb(' + Math.round(Math.random()*255) + ',' + Math.round(Math.random()*255) + ',' + Math.round(Math.random()*255) + ')'; zx.ctx.fillStyle = clr; zx.ctx.fillRect(this.x, 0, 1, zx.cnv.height); this.x++; this.x %= zx.cnv.width; },
Кроме того, счётчик this.x теперь сбрасывается при достижении значения, равного ширине canvas’а, что позволяет полностью заполнить его цветными полосками.
Ядро.
Теперь перейдём к ядру. More