3

そのためにOCamlSDLを使った小さなゲームを開発しています。それに関するドキュメントが見つからなかったので、3つの質問があります。

  1. 私はWindowsでOCamlSDLを使いたいので、誰でもそれをコンパイルする方法を手伝ってくれるでしょう(私はすでにLinuxをあきらめて仮想PCにインストールしました)
  2. OCaml SDLの使用方法に関するドキュメントはありますか?
  3. 800x600のウィンドウを使用していますが、内部のグラフィックを表現したいのですが、たとえば、ピクセルは背景を表し、もう1つは岩を表すなど、その(800x600)ウィンドウの最適な表現は何ですか?一般的なケースとして、800*600セルの配列を使用しています。
4

3 に答える 3

3

1 - Windows で ocaml sdl を使用したいので、コンパイル方法を教えてください (既にあきらめて仮想 PC に Linux をインストールしました)。

SDL を Windows で動作させ、それを使用して C プログラムをコンパイルできますか? もしそうなら、マニュアルの c プログラムでの ocaml のコンパイルに関する章を読んでください。

2 - OCAML SDL の使用方法に関するドキュメントはありますか?

パッケージにはドキュメントがあります。適切なドキュメントを備えた ocaml のパッケージは実際には 1 つも存在しないため、これは最善ではないと思います -- 誇張​​しても構いませんよね?

これを回避するには、SDL で必要な関数を調べてから、ocamlSDL のソース ディレクトリにある MLI ファイルで対応する関数を見つける必要があります。悪くないはずです。かなり整理されているようです。私は他のパッケージでこれをしなければなりませんでした。プログラマーにはいくつかの標準的な命名規則があり、関数のシグネチャを知るだけで十分です。

できる限り、SDL を直接呼び出しているふりをして、あなたのビジネスに取り組もうと思います。ほとんどの場合、それは簡単なはずです。

3 - 私は 800x600 のウィンドウを使用しています。たとえば、ピクセルは背景を表し、もう 1 つは岩などを表します。その (800x600) ウィンドウの最適な表現は何ですか? 一般的なケースとして、800 * 600 セルの配列を使用しています。これが最も醜い表現であることは承知していますが、何か提案があれば教えてください。

ocaml の hashbls は非常に効率的です -- ocaml は実際にそれらを変数のスコープに使用します。さらに、ハッシュの衝突によって要素のリストが生成されるため、データの複数のレイヤーに適しています。

それ以外では、スプライトを使用することをお勧めします。しかし、基本を理解してから、後でスプライトを実装する必要があると思います。

編集:

あなたのコメントとあなたの現在の経験に基づいて、私は最終的な提案をしたいと思います... ocamlSDL を使用しないでください。あなたがしていることには理由がありません。特に言語を学んでいる人にとっては特にそうです。私が集めたものです。間違っていたら訂正してください。私の推奨は、ocaml に組み込まれている、マシンに依存しないグラフィックモジュールを使用することです。このシンプルなゲームに必要なすべての機能を備えています。モジュールは非常に簡単で、すぐにセットアップを開始できるはずです。

于 2009-02-23T20:02:10.390 に答える
0

たとえば、ここにモジュール draw のインターフェースがあり、画面上にピクセルを描画できます。

val draw_player: int -> int -> unit

val draw_missile: int -> int -> unit

val draw_text_center: int -> int -> string -> unit

タイププレイフィールド

val empty_playfield: int -> int -> playfield

タイプ ピクセル = 背景 | 汚れ | 石

val set_playfield_pixel: playfield -> int -> int -> pixel -> unit

val draw_playfield: プレイフィールド -> ユニット

値の更新: 単位 -> 単位

これらは、ゲームを設計するために使用する関数です!!! とてもかわいそうに!とにかく、そのモジュールを Windows (それ自体は ocamlsdl を使用) で利用するには、最初にコンパイルする必要があります。そして、その画面を表現するために、たとえば、ピクセル (xy) が背景やゲームの別の部分を表すと言うと、それを最もよく表現できるものは何でしょうか? 800x600 の配列です。パフォーマンスと...あなたが知っている!

于 2009-02-24T17:29:52.043 に答える