多くの言語では、次のような何かを行うことができます。SqueakのSmalltalkの:ゲームループ
どのようにSqueak Smalltalkでこれを行いますか?
wiki.squeak.orgに記載されているように、キーボード入力を読み込んで反応することができます。私は
1 to: 10 do: [ :i | game updateAndDraw ]
のようなものを実行しようとした場合でも、すべてのイベントは今までのループが実行された後を扱っています。
多くの言語では、次のような何かを行うことができます。SqueakのSmalltalkの:ゲームループ
どのようにSqueak Smalltalkでこれを行いますか?
wiki.squeak.orgに記載されているように、キーボード入力を読み込んで反応することができます。私は
1 to: 10 do: [ :i | game updateAndDraw ]
のようなものを実行しようとした場合でも、すべてのイベントは今までのループが実行された後を扱っています。
Morphicはすでにメインループを提供しています。
uiProcess := [
[ world doOneCycle. Processor yield ] repeat.
] newProcess ...
そして、あなたはdoOneCycle
に掘る場合は、(オプション)画面のためのチェックが
interCyclePause:
)
MorphicProject class>>spawnNewProcess
にありますstep
メソッドマウス/キーボードイベントハンドラを追加し、アニメーションのステップメソッドを追加し、再表示するためのメソッドを描画することによって、これらのフェーズにコードをフックする必要があります。これらはすべてあなた自身のゲームモーフのメソッドでなければなりません。システム全体で例を見つけることができます。
行動に一定の回数実行するには:
10 timesRepeat: [game updateAndDraw]
がwhile
セマンティクスを使用するには:しばらくセマンティクスを使用して永久ループを作成するには
i := 5
[i > 0] whileTrue: [
i printNl.
i := i - 1.
]
を、
[true] whileTrue: [something do]
これは私の質問にまったく対応していますか? – Higemaru
私の謝罪、おそらく私はあなたの問題を正確に理解していない。 –
あなたをを使用してMorphicイベントループを利用できるはずです。
Morphicで実装されているゲームの例を確認できます。確かにそれらのいくつかを見つけることができます。私は普通の単純な方法は、ゲームのための単一のMorphを持ち、キーボードイベントを処理する(モデルを変更する)ことであると思います。#updateAndDrawは、モデルの現在の状態に応じてサブモフを再描画します俳優、国家の可視表示など) –
入力をしなくてもゲームを更新し続ける必要があります。あなたのアプローチではどうしますか? – Higemaru