Lua

戻り値をテーブルで返す方がすっきり?

拍手どうもありがとう! たとえば、LuaでオブジェクトのポインタからXとYという成分を抽出するとき…… // C側 static int lb_getXY( lua_State * L ) { Obj * op = (Obj *)lua_touserdata(L, 1); lua_settop(L, 0); lua_pushnumber(L, op->getX()); lua_pushn…

Luaでc++のvectorを扱う方法への考察

Lua

Luaで、c++のvectorを使いたい時。 Lua側にてvectorのイテレータを扱うというのも考えもの。 というので、以下のようなのは、いかが? ソースは語る。 しーぷらぷらのそーす(はぁと // Project LuaVect // Source luavect.cpp // Date 081106 // Author yam…

LuXによる横スクロールアクションサンプル

http://nagoya.cool.ne.jp/yamahara/actest.zipサンプルテスト。^^ 見た目がしょぼいのは仕様。^^;Z……ジャンプ カーソル……移動使用したアルゴリズム。 ・壁との当たり判定 ・可変長ダッシュ ・可変長ジャンプluaフォルダ内の一連の流れを簡易解説〜。[Lux.ex…

ゲーム、完成できるかどうか微妙なところ

今のところ、開発率50%……完成させて送れることが果たしてできるかどうか……。とはいえ、LuXで、頭を悩ませていた箇所が、解決。 理論的に絶対にあっているはずなのに、どうしても、挙動がおかしかった箇所。 結局のオチは、一字綴りを間違えていただけだった…

LuXの情報サイトの公開と最終調整

http://nagoya.cool.ne.jp/yamahara/lux/ページを作ってみた。 sansuido.jes.jpにwikiか何かで置きたかったけど、つい最近、データをロストとしたので怖くて……。 とりあえず、えっこらと、htmlの手書きで、大まかなリファレンス。 LuX.exe自体の公開は、もう…

Luaで定義したグローバル変数を獲得して、元通りにする場合

タイトルのようなことをするとき double luaGetAtai( // 値取得のテスト(誤) lua_State *L ) { lua_getglobal(L, "ATAI"); double atai = lua_tonumber(L, -1); lua_settop(L, -1); return atai; } こうしておけばよいと思っていたが、うまくいかなかった…

エラー処理

http://d.hatena.ne.jp/sansuido/20080410/p2これをうまいこと実現できたので、かなり、記述が簡単になった。 そして、データポインタがいつでも取得可能になったので、Lua側のエラー処理を拾うことが出来るようになった。 いえいえいえい。全然関係ないけど…

盲点。

C++側にてlua_setglobalで、グローバル変数を指定しておけば、 lua_getglobal を呼び出せば、L_stateの値でグローバル変数を取り出せるということに気が付いた……。 苦労して、毎回の引数に、グローバル変数の値をC++側に渡していたけど、 うーん、もっと、す…

引き続き変更

内部個所を大幅変更。 無駄な個所を大幅に改めて、以前より軽くなった。 もう一か所無駄があるのが確認できている。 何とかしたい〜。別ループの情報を取得可能にした。 これで、ポーズ画面で、うっすらとしたゲーム画面を出すとかいう処理もできるようにな…

仕様の変更

Lua側で利用出来る関数名を Lux_ で始まるように統一した。大幅な変更だったけど、動きは同じ……せつない。

入力の不具合への対応と、アイコン

LuXのアイコンを作ってみた。 Luaのシンボルマークを踏襲したけど、黒色にしたので、ちょっと爆弾っぽい感じ……。 また、変更するかも。画面切り替え時に、パッドの入力がうまく取得できない不具合を改善。 ついでに、マウスも取得した方が良いかな。 考えて…

ピストンコラージュの再生とフォント画像の利用

ピストンコラージュの再生機能の追加。 pxtoneフォルダの中に、pxtcopかpxttuneがあれば、 再生対象としてファイル名をキーとして読み込み、Luaのソース側で利用可能になった。 いえいえいえい。逆に、mp3とmidiの再生をサポート外にしてしまった。 ま……いっ…

グラフィック描画の変更

グラフィック描画の仕様を変更。 DXライブラリのint DrawRotaGraph( int x, int y, double ExtRate, double Angle, int GrHandle , int TransFlag , int TurnFlag ) ;これを利用しているのだが、 Angleが右回りだと、ちょっと都合が悪かったので、左回りに変…

アクションゲーム作成ツール「LuX」の誕生

sakanaのゲームで、ループ処理の隔離に成功。 これで、Lua側から、ほとんどすべてのものを煽る事が出来るようになった。Luaによるアクション、及びシューティングゲームの作成ツールとしての位置付けで、 LuXというプロジェクト名を付けた。名前の由来は、単…

プレイヤーのHPの表示

ハートマークで表示するようにした。 ドット絵、ピンク色がきついかな……。 まあ、後でバランスを調整しよう。そろそろ、ループ部を大幅に改造したい。 ここが出来れば、メニュー画面や、ゲーム画面の作成、及び切り替えがうまくいく。 基本をC++で作るが、最…

敵キャラ、イカの作成

いかにゃいかん。 っていうのは、方言のギャグだね……えへ。ということで、敵のイカを作ってみた。泳ぎながら、プレイヤーの魚を追尾する。 停滞→追尾移動→停滞→追尾移動…… を繰り返す。 集団で行動させれば、そこそこの脅威になるのかもしれない。何気に、プ…

マップの作成とステージの考察

一応、暫定的なマップを作った。 結局、文字列の解析がどうしてもうまくいかなかったので、テーブルで保持することにした。 string.subだけでなく、os.timeの取得とかも、うまくいっていないのかも。 何だろう……以前、原因不明。もっと、マップを広めに取っ…

衝突処理に成功

貝の敵を倒すと、餌が出る処理を追加。 また、貝にぶつかると、プレイヤーにダメージが発生するようになった。 ダメージ直後は、一時的に赤くなり、無敵時間となる。壁を作って、張り巡らせた。 そして、プレイヤーの魚が壁を移動できないようにした。 プレ…

Lua memo

Lua

リスペクトしているおあしすさんのサイトでLua memoが公開された。http://mosamosa.s4.aiosr.net/通常、プログラミングの参考書は「正しい」ものばかり書いてあるが、 このLua memoでは、エラーになるケースまで十分に考察されている。 どんな場合にエラーと…

SEの再生、及び、敵とプレイヤーの弾との衝突処理

ドット絵の練習で、刺のついた白い貝を描いた。 一応32*32ドットで描いたけど、うーん……。 もっと色々と描いて、練習しないと。敵に見立てて、プレイヤーの弾との衝突で壊れるように作成してみた。 試しに、貝のHPを10に設定。 弾が、10発当たれば、貝が壊れ…

あたり判定および変数の生成

プレイヤー×アイテムのあたり判定に成功。 アイテムを取って、消すという処理まで出来た。適当に餌をばら撒いて、拾うという簡単なゲームを作ってみた。 すべて、Luaのソースで操作。 必要に応じて、C++側にいろいろな関数を用意した。オブジェクトごとに、…

タスクシステムっぽく

新しいプロジェクトを立てた。 その名もsakana。 ただ単に、sakanaのドット絵を描いたからだけどね……。 開発中のシューティングの前準備という位置付け。LuaとC++を連結する為に、様々な関数を追加した。 大抵は、DXライブラリの関数の基本的なもの。当初、…

Luaの世界を泳げ、魚もどき

LuaTestで、適当に描いた矢印だけでは寂しいと思い、真面目にドット絵に挑戦。 で、描いた結果。魚もどき。 一応、上下左右*2の計8枚のドット絵を描いた。 一応アニメーションするけど、さらに寂しくなった気がしないでもない……。 ドット絵は、難しいなあ…

LuaTest - Lua側のソース

-- Project LuaTest -- Source pad.lua -- Date 08/03/17 -- Author yamahara -- Environment Bcc++ & DXライブラリ & Lua -- Etc Copyright(C) 2008 sansuido. All rights reserved. function pressA() return cppPadIsPressA(DID) end function pushA() re…

LuaTest - lua.cpp

// Project LuaTest // Source lua.cpp // Date 08/03/18 // Author yamahara // Environment Bcc++ & DXライブラリ & Lua // Etc Copyright(C) 2008 sansuido. All rights reserved. #include "data.h" int luaMoverGet( // lua側でMoverの値をGET lua_Stat…

LuaTest - main.cpp

// Project LuaTest // Source main.cpp // Date 08/03/17 // Author yamahara // Environment Bcc++ & DXライブラリ & Lua // Etc Copyright(C) 2008 sansuido. All rights reserved. #include "data.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANC…

LuaTest - data.h

// Project LuaTest // Source data.h // Date 08/03/18 // Author yamahara // Environment Bcc++ & DXライブラリ & Lua // Etc Copyright(C) 2008 sansuido. All rights reserved. #ifndef DATA_DEF #define DATA_DEF #include <DxLib.h> #include <string> #include <vector> #incl</vector></string></dxlib.h>…

LuaTest - pad.h

// Project LuaTest // Source pad.h // Date 08/03/18 // Author yamahara // Environment Bcc++ & DXライブラリ & Lua // Etc Copyright(C) 2008 sansuido. All rights reserved. #ifndef PAD_DEF #define PAD_DEF class Pad { private: int input_; int i…

LuaTest - player.h

// Project LuaTest // Source player.h // Date 08/03/18 // Author yamahara // Environment Bcc++ & DXライブラリ & Lua // Etc Copyright(C) 2008 sansuido. All rights reserved. #ifndef PLAYER_DEF #define PLAYER_DEF #include "data.h" class Playe…

LuaTest - mover.h

// Project LuaTest // Source mover.h // Date 08/03/18 // Author yamahara // Environment Bcc++ & DXライブラリ & Lua // Etc Copyright(C) 2008 sansuido. All rights reserved. #ifndef MOVER_DEF #define MOVER_DEF #include "data.h" class Mover { …