gameloopの動作を理解するためのサンプル
概要
"gameloopは50ms毎の割り込み処理"ということを実際に目で見るための簡単なサンプルです。
mainとshakeとgameloopには同じ処理を入れていますが、実行するとmは一度だけ加算され1で終了し、sは端末を振ったときだけ加算するのに対し、gは何もしなくても加算され続けます。
gameloopが有効になるのはmainが終了してアイドル状態になってからで、gameloop自体が多重コールされることもないようです。
"//"で始まるコメント行は入力する必要ありません。
data
| 変数名 |
種別 |
初期値 |
説明 |
| m |
NUM |
0 |
main用 |
| g |
NUM |
0 |
gameloop用 |
| s |
NUM |
0 |
shake用 |
actions
- action main()
- // 初期化
- data → m := 0
- data → g := 0
- data → s := 0
- // mainのテスト処理
- // data → mが10未満なら処理実行
- if data → m < 10 then
- // data → mに1を足す
- data → m := data → m + 1
- // data → mを表示(concatは文字列を繋げるコマンド)
- "m=" → concat(data → m → to string) → post to wall
- else
events
- event gameloop()
- // gameloopのテスト処理
- // data → gが10未満なら処理実行
- if data → g < 10 then
- // data → gに1を足す
- data → g := data → g + 1
- // data → gを表示
- "g=" → concat(data → g → to string) → post to wall
- else
- event shake()
- // shakeのテスト処理
- // data → sが10未満なら処理実行
- if data → s < 10 then
- // data → sに1を足す
- data → s := data → s + 1
- // data → sを表示
- "s=" → concat(data → s → to string) → post to wall
- else
最終更新:2011年10月28日 06:04