Quilを使用して Clojure でゲームを作成しようとしています。
(qc/defsketch sketch
:title "My Game"
:size [800 600]
:setup #(qc/smooth)
:draw draw
:mouse-pressed mouse-pressed
:key-pressed key-pressed)
((def position (atom 0))
と(swap! position inc)
と@position
を使って動くボールを作ることはできますが、これを拡大縮小する方法がわかりません。)
描画用の関数 (および入力ハンドラー) をスケッチに提供していることに注意してください。簡単なスケッチをするだけなら、1 つのdraw
機能で十分です。
しかし、私のゲームでは、メイン メニュー、指示、レベル セレクター、またはゲームがアクティブ ビューであるかどうかに応じて、さまざまなものを描画する必要があります。これらの一部 (主にゲーム ビュー) には、描画ごとに更新されるデータを関連付ける必要があります。
これについてどうすればよいですか?Clojure について読めば読むほど、混乱していきます。(各ビューはプロトコルを満たすレコードである必要がありますか?それらはアトムとして保存する必要がありますか?それとも、それらの内部状態をアトムとして保存する必要がありますか?または、ゲーム シミュレーションの状態を別のアトムにする必要があります。ただし、メモリを占有したくない場合を除きます)ゲーム ビューがアクティブになるまで...) これは OOP ではとても簡単ですが、関数型プログラミングを学びたいと思っています。
アップデート
私が最終的に何をしたかに興味がある場合は、Mini Pinionsを参照してください。