前回は敵を作ったので実際に登場させてみることにした。まずはHTMLで前回追加したJavaScriptを読み込んでおく
<script type="text/javascript" src="./object/GameObject.js"></script> <script type="text/javascript" src="./object/Enemy1.js"></script>
そして、GameView.js。init()で敵の追加とdraw()で敵の行動と描画を行うようにした
var GameView = function(context, width, height){ var images = new Array(); var isLoadedImage = false; var player; var gameInfo; this.draw = function(){ if(!isLoadedImage){ return; } context.fillStyle = 'rgb(0, 0, 0)'; context.fillRect(0, 0, 600, 400); //プレイヤー機の移動 player.doAction(gameInfo); player.draw(context); //プレイヤー機が撃った弾の移動 for(i = 0; i < gameInfo.bullets.length; i++){ var bullet = gameInfo.bullets[i]; bullet.doAction(gameInfo); bullet.draw(context); } //敵の行動 for(i = 0; i < gameInfo.enemies.length; i++){ var enemy = gameInfo.enemies[i]; enemy.doAction(gameInfo); enemy.draw(context); } } this.loadImages = function(names, files){ var count = 0; for(i = 0; i < files.length; i++){ var image = new Image(); image.src = files[i]; images[names[i]] = image; image.onload = function(){ count++; if(count == files.length){ init(); } } } } this.onDirection = function(direction){ player.onDirection(direction); } this.offDirection = function(direction){ player.offDirection(direction); } this.fire = function(fire){ player.fire = fire; } function init(){ player = new Player(images["Player"]); gameInfo = new GameInfo(); gameInfo.player = player; gameInfo.width = width; gameInfo.height = height; //敵を一体だけ追加する var enemy = new Enemy1(images["Enemy1"]); enemy.move(650, 100); gameInfo.enemies.push(enemy); isLoadedImage = true; } }