質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

Q&A

0回答

320閲覧

アニメーションのコード

leeknow

総合スコア0

変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

0グッド

1クリップ

投稿2021/09/15 08:05

前提・実現したいこと

上に動く■を表示して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/ツールのバージョンなど)

助けて頂けると幸いです。どうかよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問