wvogel日記

自分用の技術備忘録が多めです.

制作中.....

wxHaskellのtutrialに、bouncing ballというのがありますが、
これを見ると、タイマーイベントや入力を通じたイベントで、
Graphicオブジェクトに対して割合簡単に処理を記述出来るよう。

また、tutrialで気になったVarて何だろう、思って調べてみたら、IORefのことでした。
Variableてことでしょう、きっと。

こいつを利用して何か作ろう!
ゲームを作ろうとも思ったんですが、特に作りたい物ない。
そしたら、ノベルゲームエンジンを作ろう!と。
いうことで。

現在制作中です。
写真は現時点での実行の様子

画像は、以下のサイトのフリー素材を借用しています。
試験ですし。
http://classicroot.hanabie.com/
http://micon.flop.jp/mb.htm

で、作り始めて思うのは。
最初に予定していたよりもかなり奥が深いということ。

まず、バックログの存在忘れてた(どうでもいい)
続いて、クリックイベントが発生する領域を指定しないといけないので、ゲームの基本情報に加えて、イベント情報も持ち回さないといけない。
ただ思ったのが、スクリプトから文章表示や画像表示命令からなるリストを生成、順々に処理をしているので、
ゲームモナドにできるんじゃないかという気はしている。
でもそれってfoldM_で充分だよね、とも思ったり。

あと、結構気になるのが、音楽の再生ができない。

soundOn :: FilePath -> IO()
soundOn = playLoop.sound

としたら動くかと思ったけど、wavもmp3も再生出来ない。
なぜだろう