A3サイズの升目帖(旧)

ゲーム制作やプログラミングに関する雑記

ウインドウを表示したぞ

本日の進捗

Windowsのフォームを表示することに成功した。

こんな感じ。やはり、目に見える進捗というのはいいものだ。

f:id:a3masume:20210602020711p:plain

あっ、そこ! 殺風景で地味だとか言わない!

確かに今は ただの灰色の板 だが、これは重要な第一歩なのだ。

それに、見た目では伝わらないものの、内部的にはすでに 60FPSで駆動するゲームループ実装済みなのだ。

今後、描画やメイン処理を追加していけばもっとゲームらしくなるぞ。

ハマりポイントとか

その1:64bit版バイナリ

D言語で64bit版バイナリを吐くときに、user32.lib などのライブラリとのリンクでエラーが出たあたりで少々てこずった。例の LNK1104 ってやつだ。

分かっちゃいたが、D言語は情報少ないからなあ。日本語の情報ともなるとなおさら…

自分の場合、最終的には dub.jsonlibs 要素を追加して必要なライブラリ名を書くだけで解決した。

こういうのである。

... ほかの設定色々 ...

"libs": [
    "ole32",
    "kernel32",
    "user32",
    "comctl32",
    "comdlg32"
]

... ほかの設定色々 ...

わりと試行錯誤したぞ。LIB 環境変数を作って Windows Kit のライブラリ群のパス追加するのかなあとか、sc.ini の設定のせいかなあとか、正直いろいろ悩んだ。

どの環境変数使ってるんだこれ? また詳しく検証しておこう。

その2:dub.selections.json ???

D言語のパッケージマネージャとして、筆者はもちろん dub を使っている。

ただ、dub build とかでコンパイルすると dub.selections.json とかいうファイルが dub.json と同階層に出力されるのだ。なにこれ?

消してもコンパイルするたびに出るので、設定ファイルかなんかだろうと思い、.gitignore にぶち込んじゃったけど、ええんかいな…?

その3:「これは!」というIDEがない

まあ、これはあらかじめ知ってた。ノーダメージ。

潔くあきらめて、シンタックスハイライトだけをする VSCode拡張機能を自作して適用。

キーワードに色がつくだけで、わたしは満足です。

そもそも、IDE やデバッガの複雑な機能がないと、何やってるか追えないコード書いちゃうのもどうなのって話ですし(暴論)

ちなみに、キーワードの組み合わせに応じて色がちゃんと変わるのが個人的お気に入りポインツ。

f:id:a3masume:20210602020714p:plain

疲れたので以上

まだ書きたいことはあるけど、今日はこんなところか。