三角端。

Δ-sphere管理人三角区也による絵日記/ゲーム開発日記。コメントは右側のweb拍手からどぞー。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ゲーム用ランチャ公開

少し前ですが、ゲーム起動用ランチャを公開しました。

以前公開していたような気がしたんですが、
前のがうまく動かないという報告をいただいたので一から作り直してせっかくなので公開しました。

よろしければ使ってくださいまし。


◆ゲーム制作
コマンド選択→アクション→コマンド選択の流れができました。

使うスキルを決定したところで処理をLuaに渡してます。
Luaでダメージ計算とか命中計算とかしてます。

下のような感じでウィンドウを出してみたりして、少し進んだような気がしました。
ウィンドウのダメージ予測とかもそのつどLuaスクリプトを呼び出してます。
screen_261.jpg

次はAIですかねー
どうすっかなー
スポンサーサイト

luaスクリプトと色々

ここ数日暑い日が続きましたね。

なんか久しぶりの更新のような気がしますね。

気のせいですかね。
気のせいならいいんですけどね。


◆ゲーム制作

微妙に少しずつ亀のように進んでいます。
とりあえずバトル画面にLuaスクリプトを導入して動かしてみることに成功しました。

スキルを使用すると
Skill_ナントカって関数を呼び出して、
ユニットの向きを変えたり戻したり。
コルーチンの待機時間を設定したり。
ユニットのHPを削ってみたり。

ある程度動くようになったのでターンの順番とかCPUとかに入っていきますかねー
エフェクトどうしよ・・・





スキル関数Skill_AAAを呼び出すときは
lua_newthreadをしたあとで
luaL_ref(m_State,LUA_REGISTRYINDEX);を使わないといけないっぽいです。

lua関数をlua_getglobalでスタックに積み、
lua_pushlightuserdataでユニットのクラスポインタを渡す。
lua_resumeで呼び出す。
あらかじめlua_registerでC側の関数と関数名を紐付けした_Waitに達するとC側の_Waitでlua_yield。
lua_yieldの際に「なぜ止まっているか」と止まる時間をスタックに積んでおきます。
戻り値がLUA_OKなら終わり。
LUA_YIELDならlua_yieldのときのスタックが取得できるので、
スタックに積まれている止まった理由ともうひとつの数値を取得。
_Waitによる停止ならば停止時間だけ待って再度lua_resume。

そんな感じでコルーチン処理をまとめてみました。

このあたりの設計を考えるの楽しいw

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。