teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2019/12/31 08:12

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -25,4 +25,22 @@
25
25
 
26
26
  setInterval() 内でフレームをカウントすると、「出現から何フレーム目で動きを変える」といったことにも対応できるようになりますが、 **抽象化**(JavaScript OOP)が必須になります。
27
27
 
28
- ご質問の「[正常に動いていたであろう内容](https://codepen.io/AkitoshiManabe/pen/gObxVgj?editors=1010)」をOOPで書いてみました。
28
+ ご質問の「[正常に動いていたであろう内容](https://codepen.io/AkitoshiManabe/pen/gObxVgj?editors=1010)」をOOPで書いてみました。
29
+
30
+ **追記)**
31
+ > 周りに球が入ってきたら敵が上に行くようにする機能
32
+
33
+ 「球」「敵」という言葉で「抽象的」に問いかけたはずです。
34
+
35
+ **抽象化**の恩恵
36
+ 1. 関連する2つのオブジェクトを演算させやすい(いずれかのオブジェクトにメソッドを加えればいい)。
37
+ 2. 自動で動く量(ベクトル)などの「パラメータ」を各オブジェクトに保持できる。
38
+
39
+ ゲームループ依存コンテンツのセオリーは、おおよそ次のような順番で処理して同期します。
40
+ 1. すべての表示オブジェクトのパラメータ変化(表示位置変更も含む) : ``update()``
41
+ 2. すべての表示オブジェクトを描画し直す : ``render()``
42
+
43
+ フレーム(``setInterval()``)内がシンプルになれば、抽象化された描画対象が扱いやすくなるはずです。
44
+
45
+ ----
46
+ このようなゲーム開発の考え方は、AR(拡張現実)のコンテンツに応用できると思います。

1

誤字訂正

2019/12/31 08:12

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -23,6 +23,6 @@
23
23
  }
24
24
  ```
25
25
 
26
- setInterval() 内でフレームをカウントすると、「出現から何フレーム目で動きを変える」といったことにも対応できるようにするには。 **抽象化**(JavaScript OOP)が必須になります。
26
+ setInterval() 内でフレームをカウントすると、「出現から何フレーム目で動きを変える」といったことにも対応できるようになりまが、 **抽象化**(JavaScript OOP)が必須になります。
27
27
 
28
28
  ご質問の「[正常に動いていたであろう内容](https://codepen.io/AkitoshiManabe/pen/gObxVgj?editors=1010)」をOOPで書いてみました。