今日の二次元

・マップファイル読み書き作成
まずはマップ機能から作るということで、マップファイルの読み書きを作成した。ファイルを開くときの設定を間違えていて30分詰まり、動的配列の長さをのばした後クラスのコンストラクタを呼び忘れて1時間詰まった。
SDLを使いながらメニューバーなどのGUI環境の使い方を知らないのでエディット画面以外をCUIで作っている。WxWidgetでも勉強するのがいいかも。
D言語、というよりPhobosの関数を使ってCUIアプリケーションを作るときに引っかかった点があったので一つ。
文字列を読むときなどにC言語で言うscanf関数としてPhobosのreadln関数を使っているのだが、同じように使うと、readlnでは読み込んだ一行に改行文字(Windowsでは\n)が含まれている。これで得た文字列をそのまま使うと上手く行かないので、文字列(char[]型)の最後の一文字を消してから使わないといけない。

300×100の二次元配列というと軽く感じるが実際には3万ある。3万ものオブジェクトをGCに管理させると突然動きが止まったりしそうで怖いので、自力でメモリ管理している。あとこの配列をファイルに書き出すとintegerの配列でも100KBぐらいに届く。二次元恐ろしや。

イベントの管理にSQLiteを使ってみようと思い、データベースを作ってみているが使い方が良く分からない。OpenOffice Baseも試したが分からない。データベースの基礎ぐらいは勉強しておかないといけないらしい。