Light.vnが俺にもっと輝けと囁いている

さとーす、めそです。

突然ですがLight.vnを使用したもぐらたたきのサンプルを作ってみました。
そうです、それです。今年のエイプリルフールに間に合わなかったやつです。
きっかけは、いず助さんのツイートでした。

つくろうかな…
つくれるかも…
つくった! です。
できあがりのサンプルはこちら

みんな大好きGitHubで公開しています。
https://github.com/mmmesooo/Light.vn-Lua-mogura

設計思想はオブジェクト指向です。
Luaにもぐらクラスを定義して
もぐらインスタンスを作成しています。

オブジェクト指向ってなに? という方はこちらの記事をどうぞ。
オブジェクト指向が5000%理解できる記事 - Qiita

もぐらクラスに
もぐら表示位置クラスと
もぐらキャラクタークラス(ともぐらデバッグクラス)を持たせて汎化を目指しました。

生粋のLight.vnのユーザーの方がどの程度luaと仲良くなりたいかはわかりませんが
個人的には「ぶいえぬくんの考えてること、わかんないよ…」ってなったので
Luaでいい?Luaでいいよね?Luaがいいよね?Luaでいいの?Luaにする?Luaにしとく?
って感じになりました。なました。ですのでプログラムに不慣れな方向けではないです。

もぐらの出現と退場の状態はもぐらクラスのコルーチンで管理しています。
最初はもぐらの状態ごとにLight.vn内部のタイマー(砂時計)で管理していましたが
コードが煩雑になりすぎたためコルーチンで書き直しました。
おかげでだいぶすっきりしたので、コルーチンかわいいよコルーチン、って感じです。

Luaのコルーチンが内部処理的に軽いのか重いのかは不明ですが
Light.vn内部でもコルーチン使って制御している気がするので
ほぼほぼ等価な気がします。気がするだけです。

もぐらに対するパラメータの与え方は、実現したい動かし方によって調整が必要かと思います。
サンプルはあくまでサンプルですので、お好みでカスタマイズしてください。
GitHubのページ見てもらったらわかりますが、未実装の処理の多いこと…

そんなこんなで、もぐらたたきのサンプルでした。
Luaもmarkdownもずっとなんとなく好きじゃなかったんですが
Light.vnのおかげで好きになれました。ありがとうぶいえぬくん。ズッと忘れないょ。

個人的にはLight.vnのエディタが見づらい上にすぐに落ちるし終了確認が鬱陶しいし
シンタックスハイライト狂ってるしコードエディタとしての機能が貧弱だったためお別れしたので
vs code推奨です。特にLuaを編集する際には必須です。

Light.vnの記事と見せかけてLuaと仲良くなりたいあなた向けの記事でした。それでは。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください