前提・実現したいこと
上に動く■を表示してSを押すと消えるようにしたいです。
下の■3つはSを押すと消えるようになったんですが、
まず動く■が表示されずエラーが出てしまいます。
それと■の色を変える方法も教えていただきたいです。
発生している問題・エラーメッセージ
Unexpected token '}'
該当のソースコード
//変数 var me = { x:135, y:270 } var bullet = {x: 0, y: 270, status: 'wait'} var enemySize = 30 var enemies = [ {x: 50,y: 100, status: 'alive'}, {x: 135,y: 100, status: 'alive'}, {x: 220,y: 100, status: 'alive'}, {speedX: 7, x: 0, y: 80, w: 30, h: 30} ] // アニメーション function loop() { //塗りつぶす ctx.fillStyle = 'white' ctx.fillRect(0,0,300,300) obj.x += obj.speedX if(obj.x <= 0 || (300 - obj.w) <= obj.x) obj.speedX *= -1 ctx.fillStyle = 'black' ctx.fillRect(obj.x, obj.y, obj.w, obj.h) } setInterval(loop, 30) ctx.fillStyle = 'black' ctx.fillRect(me.x,me.y,30,10) ctx.fillRect(me.x+10,me.y-10, 10, 10) if(bullet.status === 'shot') { if(bullet.y < 0) { bullet.status = 'wait' } ctx.fillStyle = 'red' ctx.fillRect(bullet.x, bullet.y, 2, 10) bullet.y -= 5 } for(var i = 0; i < enemies.length; ++i) { var enemy = enemies[i] if(enemy.status === 'alive') { ctx.fillStyle = 'black' ctx.fillRect(enemy.x, enemy.y, enemySize, enemySize) if(bullet.status == 'shot'){ if(enemy.x <= bullet.x && bullet.x <= enemy.x + enemySize) { if(bullet.y < enemy.y + enemySize) { enemy.status = 'dead' bullet.status = 'wait' } } } } } } setInterval(loop, 30) // インタラクション function onKeyPressed(e) { if(e.keyCode === 37) { //←で移動 me.x -= 5 } else if(e.keyCode === 39) { //→で移動 me.x += 5 } else if(e.keyCode === 83) { // Sで撃つ if(bullet.status === 'wait') { bullet.status = 'shot' bullet.x = me.x + 15 bullet.y = 270 - 15 } } else if(e.keyCode === 82){ // Rでリスタート for(var i = 0; i < enemies.length; ++i) { enemies[i].status = 'alive' } bullet.y = me.y bullet.status = 'wait' me.x = 135 } } addEventListener('keydown', onKeyPressed)
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
助けて頂けると幸いです。どうかよろしくお願いいたします。
あなたの回答
tips
プレビュー