1 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 09:11:41 ] LuaやSquirrelなどアプリケーションへの組み込み用途で 使われるプログラミング言語についてのスレッドです まとめwiki(なにか質問する前に必ずみること!) wikiwiki.jp/lua/ その他の参考URLは>2から ■前スレ 【Lua】組み込み系言語総合【Squirrel】 pc12.2ch.net/test/read.cgi/tech/1205208141/ ■過去スレ その3 pc11.2ch.net/test/read.cgi/tech/1160799232/ その2 pc8.2ch.net/test/read.cgi/tech/1063711237/ その1 pc5.2ch.net/tech/kako/1034/10341/1034182349.html
498 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 17:42:29 ] 自分の実力より遙かに上の事をやろうとしても無駄になるだけだぞ ちょっと上ならともかく分不相応すぎ。諦めろ
499 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 17:48:07 ] Luaじゃ宿題スレも使えないしねえ。 (答える奴はどうせこのスレも見てる)
500 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 18:23:45 ] HSPスレに逝けよ
501 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 21:35:31 ] とりあえず、この本みてみて、何とかなるか考えてみたら。 スクリプト言語による効率的ゲーム開発 C/C++へのLua組込み実践 www.amazon.co.jp/dp/4797348550 サポートページ lua.mine.nu/w/LuaBookSupport どうなんだろうなあ。
502 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 21:46:36 ] ttp://en.wikipedia.org/wiki/Category:Lua-scriptable_game_engines Luaでルーチンいじれるゲームとかゲームエンジンとかあるけど 日本語の資料があんまりないと思う
503 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 10:46:49 ] Lua for Windows: A batteries included Lua installation on Windows. luaforwindows.luaforge.net/ これいっこダウンロードしてインストールすれば、 GUI から OpenGL から DB 接続までなんでもはじめから入ってるよ。 ウィンドウ作る程度なら、サンプルそのまま使える。
504 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 07:48:34 ] Pawn始める人への組み込みメモ(修正版) // .amxファイル(コンパイル済みPawnバイナリ)を実行するための最小コード。 // 必要ファイル: amx.c/h amxaux.c/h amxcons.c/h amxcore.c osdefs.h #include "amx.h" #include "amxaux.h" #include <stdio.h> AMX_NATIVE_INFO console_Natives[]; AMX_NATIVE_INFO core_Natives[]; int main(int argc, char *argv[]) { AMX amx; cell ret = 0; if (aux_LoadProgram(&amx, "test.amx", NULL) != AMX_ERR_NONE) exit(1); if (amx_Register(&amx, console_Natives, -1)) exit(1); if (amx_Register(&amx, core_Natives, -1)) exit(1); if (amx_Exec(&amx, &ret, AMX_EXEC_MAIN)) exit(1); printf("%ld\n", (long)ret); aux_FreeProgram(&amx); return 0; }
505 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 07:49:39 ] // Pawnコンパイラの最小プロジェクト // 必要ファイル: libpawnc.c lstring.c/h memfile.c/h sc1.c〜sc7.c sc.h sc5.scp sc7.scp scexpand.c sci18n.c sclist.c scmemfil.c scstate.c scvars.c svnrev.h // それに加えて ../amx でアクセスできる場所に osdefs.h amxdbg.h が必要 // 実行時にsc1.cのsetconfig()あたりでNULLエラーが発生するなら[プロジェクトの設定->構成プロパティ->全般->文字セット]でUnicodeを無効にしておく #include "sc.h" int main(int argc, char *argv[]) { return pc_compile(argc, argv); }
506 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 14:11:52 ] luabindを使っていて気になったのですが、 //cpp struct A { int x; }; A *ptr; A& ref() { return *ptr; }; A a; luabind::module(L) [ luabind::def("ref", &ref), luabind::class_<A>("A") .def_readwrite("x", &A::x) ]; ]; --lua v = ref() v.x = 1 --参照なのでC側のaにアクセスできる クラスのインスタンスの参照を渡すときに、上の様に一度staticかglobalな変数 (上の場合ptr)を経由させる方法しか思いつかなかったのですが、ダイレクトに 渡す方法は無いものでしょうか?
507 名前:506 mailto:sage [2009/11/25(水) 14:14:17 ] 訂正 A a; ptr = &a; luabind::module(L) [ luabind::def("ref", &ref), luabind::class_<A>("A") .def_readwrite("x", &A::x) ];
508 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 17:56:07 ] Lua詳しくないんでアレだが、lua_pushlightuserdataではダメなの?
509 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 09:43:19 ] Luaで実行状態を全部ファイルに保存して、また復帰するようなことは可能ですか?
510 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 10:10:30 ] >>509 Lua側でioで記録、読み込みするコード書くしかないかも
511 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 10:18:51 ] Smalltalkなら可能です
512 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 11:32:21 ] >>509 言語機能としてはないので、無理やりやることになる。 一応こういうのはあるけど、安定してるかどうかは不明。 lua-users.org/wiki/PlutoLibrary
513 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 13:19:28 ] >>508 試してみましたが、luabindではligthuserdataではなくuserdataを使用して 独自の型ID等を付加してチェックしているようで、無理でした。 luabindのソースを追ってみたところ、luabind::detail::convert_to_luaで C++側の変数の参照をluaのスタックに積めることが分かったので、 これでどこかのテーブルに置くとか引数で渡すとかの方法が使えそうです。 luabindのドキュメントにもサンプルにも、こういったスタックを使う方法が 記載されていないので、本来の使い方とは違う気もしますが。
514 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 13:24:32 ] >>513 通常、スクリプトにはC++クラス型のインスタンスのポインタを渡してポインタで操作させる。 C++の参照はC++固有の機能なので他の言語では使えないと考えたほうがいい。 別の変数に代入した瞬間(参照で無く実体のコピーとして)にコピーコンストラクタが発動したって文句言えないぞ。 まあバインダがエラー吐いてコンパイルの段階で失敗すると思うが。
515 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 13:29:57 ] 休止モードを呼び出せばいいんだよ。
516 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 14:09:30 ] >>514 bind側に参照を渡した場合は、ポインタに変換して管理してるみたいですね。
517 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 08:47:27 ] >>510 >>512 ありがとうございます。 Pluto調べてみます。
518 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 09:36:22 ] LuaでGUIムリだろと思ってたら、意外とバインダが出てくるもんだなw お前ら優しすぎw
519 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 10:21:52 ] 小学生に方程式ムリだろと思ってたら、意外と鶴亀算が出てくるようなもんだな
520 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 11:31:33 ] 最近はメインループのかなりの部分まで組み込みスクリプトで作っちゃうのが主流になりつつあるのかな。
521 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 12:02:53 ] Luaだと入力補完のあるエディタが無いから 逆にやり難いと感じる俺
522 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 12:11:48 ] >>520 大半を組み込み言語化した結果、パフォーマンスの壁にぶちあたって 機能分離可能なところはどんどんC++化していく、ってのが定番だとオモ サンプル:俺
523 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 12:45:05 ] まあ通常、動的(型付け)言語はネイティブコードと比べて10倍以上は遅いからな。 オレもスクリプトでゲーム開発環境を一通り書き上げたところだが、 60フレームまわしたらそれだけで意外にCPU食ってしまうので、ちと困ってる。 最低ラインがPentium 4 2.4GHzくらいになった。
524 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 14:49:37 ] JIT付き静的型付けスクリプト言語 穴場だから誰か作れば 有名になれるかもよ
525 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 15:10:52 ] >>524 すでにあるっちゅうねん。 .NET Framework向けだがな。
526 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 15:54:13 ] >>.NET Framework向けだがな。 駄目じゃん
527 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 16:18:55 ] 作りたいと本気で思ってる俺が来ましたよ もし作るならスクリプトで定義したクラスのインスタンスがC++から簡単に作れて、マルチスレッドとか使って同時に複数のインスタンスを参照してもおかしくならない仕様にしたいな
528 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 16:46:03 ] つAngelScriptJIT ただしやり方は不明。
529 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 18:52:02 ] LuaJIT ってなかったっけ?
530 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:09:51 ] Luaは静的じゃないでしょ
531 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:18:30 ] ああごめん、静的を見落としてた
532 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 13:59:21 ] luaのlua_pcallのerrfncが呼ばれたときに、元のエラーメッセージとは 別にソースファイル名、行番号を収集する場合なんですが、 lua_getstackのレベル指定で、1から++しながら順にたどって 最初にcurrentlineの値が-1以外になったレベルがソースファイルの 階層と判断して問題ないでしょうか?
533 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 15:45:53 ] メンバアクセスの:と.ってどう違うの?
534 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:27:09 ] .が通常のメンバアクセスで、:でアクセスする場合は v.(v ,〜 に展開される。 例: v:open(arg) -> v.open(v, arg)
535 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:53:43 ] d
536 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 18:04:12 ] >>17 問題1 使用言語: R f <- function (n) {substr("abcdefghijklmnopqrstuvwxyz",1,n)} > f(6) [1] "abcdef" > f(30) [1] "abcdefghijklmnopqrstuvwxyz"
537 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 18:06:04 ] すみません。 書くところを間違えました。 ごめんなさい。
538 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 18:06:48 ] 聞かれてないけどついでに補足すると.は[]に展開される v:member(arg) -> v.member(v, arg) -> v[menbe](v, arg)
539 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 18:09:23 ] v['menber'](v, arg)
540 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 18:17:00 ] へー じゃあメンバアクセスのたびにマップ検索してんのか 遅くならないのかな
541 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 18:28:37 ] 空想具現化プログラミングというところから落としたlua5_1_3_Win32_mbenc_a2.zipを展開したところbin2c5.1.exeにウイルス検知ソフトが反応したんですが、これは大丈夫なんでしょうか?
542 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 18:31:42 ] >>540 そりゃ勿論遅いだろうさ
543 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 18:41:44 ] メンバだけの話じゃないだろうし。 変数名からなにから全ての識別子の判定で毎回どこかのテーブル見てるはず。
544 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 18:59:47 ] >>541 カスペルスキー系の誤検出のはず。 bin2cとか別に普段使うものでもないから削除しておいても良いかと。
545 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 19:20:09 ] >>543 ローカル変数は実行時はテーブル見ない。例えば、 local a = b * c + d を local a = b * c a = a + d に変えても速さは変わらない。
546 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 19:37:56 ] >>544 ありがとうございます安心しました
547 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 23:33:25 ] 静的型付けならPawnいかがかな?
548 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 22:05:16 ] ちょっと確認したいんですが lua_registerで登録した関数を呼び出すときには新しいスタックが毎回生成される、したがって Glue関数内部ではlua_gettopでスタックの数を確認する必要なしにスタックの1番目が最初の引数、2番目が・・・としてよい 同様に、返り値もスタックの1番目が最初の返り値、二番目が・・・としてよい(何も考えずにスタッククリアして返り値を積めばいい) これは正しいですか?
549 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 00:52:46 ] うむ
550 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 06:17:28 ] >>524 ActionScript 3.0 がそっちのほうを目指しているんじゃないかな。 いちおう Flex SDK はオープンソースらしいから、 自分のプログラムに組み込むこともできるかも。 >>540 Lua Performance Tips www.lua.org/gems/sample.pdf for i = 1, 1000000 do local x = math.sin(i) end runs 30% slower than this one: local sin = math.sin for i = 1, 1000000 do local x = sin(i) end
551 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 21:46:34 ] Luaについて質問です。 10進数で書かれた文字列、たとえば「\130\160\130\162\130\164」は Lua上で「あいう」となりますが、外部ファイルに記述したものを io.linesで取り出したものだと、コード列が返ってきてしまいます。 これを通常の文字列に変換したものとして使いたいのですが、どうしたらいいのでしょうか。
552 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 21:50:08 ] >>549 ありがとうございます
553 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 22:20:40 ] >>551 多分C側でバイナリに変換しないとダメじゃないだろうか。 Luaの標準ライブラリでももしかしたら出来るかもしれないが、 Cの方がてっとり早いだろう。
554 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 23:27:17 ] SquirrelのほうがLuaよりゲーム向けなんかな? どっちも知識なしだったらSqから勉強でいいのだろうか
555 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 23:54:06 ] >>554 どちらも汎用スクリプトだから処理系単体ではどちらがよりゲーム向けということはない。 周辺ライブラリやバインダの入手性や使い勝手の差はあると思うけど。
556 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 01:51:00 ] >>554 速度がLua>Sqで結構大差あったりするんで ttp://ja.wikipedia.org/wiki/Squirrel のLuaとの違いに強い魅力を感じるんでなければLuaがオススメ。 特に知識なしなら、Luaのほうが日本語資料が充実してるんで勉強しやすいかと思う。
557 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 02:00:16 ] lua は文法がな……
558 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 08:15:39 ] 日本語は文法がな・・・
559 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 09:41:13 ] AngelScript|Д゚)ジー
560 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 11:48:28 ] >>551 loadstring をつかえばできるよ。 local str = "\130\160\130\162\130\164" -- io.lines で取り出した文字列 local decode = loadstring("return \"" .. str .. "\"") print(decode())
561 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 15:29:08 ] >>449 コンパイラがOSロケールに依存してるから英語にしましょうなんて愉快すぎるわ 他のロケール依存アプリ全部道連れにする方法なんぞ万人に薦められんだろ
562 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 16:39:37 ] 問題が起こるのはShiftJISを決めうちして作っている一部の馬鹿アプリだけだろ。 なぜ全部とか間抜けな話になるのか、頭の悪い奴の考えはさっぱり分からん。
563 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 16:40:53 ] バカアプリの代表が Visual Studio って話じゃないのん?
564 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 18:39:01 ] そんな事よりお前ら、GameMonkeyについて語るんだ。
565 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 18:47:34 ] winアプリにスクリプト組み込む場合、メッセージ(WM)処理どうしてる? 自分はマルチスレッドにしてるんだけど、WM_CLOSE受けたときに スクリプトが走ってたら、スレッド他殺していいものなのかどうか。
566 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 18:57:22 ] 保存したいデータがあるかどうかで判断しね?
567 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 19:00:15 ] データ保存しない場合はどんなタイミングで落としても問題無いってこと?
568 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 19:16:24 ] スクリプトを複数スレッドで別々に動かす状況がわからんな… Luaだと、Lua_yieldでスクリプトの処理を一時停止させて次のスクリプト、という感じではダメなの?
569 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 19:43:49 ] それだとスクリプト書く側に停止を意識させないとダメですよね?
570 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 22:23:10 ] スクリプト側にメインループを置いて処理してるの?
571 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 00:38:27 ] winmainでメッセージループ、別スレッドでスクリプト。 スクリプトは入力待ち(マウス等)で関数無いで停止することがあって、 その間にメッセージループ側にWM_CLOSEとか来た場合にどうやって 終了させるかで色々迷っている、と。 スクリプトで割り込みを意識するような書き方は手間なので、 スレッドごと落とせると楽なんだけど、lua_Stateってスレッドごと 落とした後にlua_closeに渡して大丈夫なのか?ってのが疑問な わけですよ。 lua_call系にステップ実行があると良かったんですがね。 ステップ数も指定できたりするのが。
572 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 09:26:27 ] >>571 スレッドを強制終了したら、基本的に何が起こってるか不明というか たとえばガベコレの途中だったりしたら(その他でもあらゆる不明な原因で) 異常な状態になるからやめたほうが良い。 手段としては、別スレッドのほうの処理をコルーチンで構成しておいて、 コルーチンがyieldしたタイミングでコルーチン呼び出し側のコードで 終了チェックするようにする。 あとウエイトが絡む関数については、待ちループで終了チェックをするようにして、 終了フラグが立っていたらyieldを起こすようにする。 とかそんな感じじゃないの。
573 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 09:30:46 ] >>571 無限ループ防止という観点では、デバッグフックで1行実行ごとに関数呼ばせて、 その中でカウンターアップしていって、カウンターが一定の数になったらyieldとかいう手もある。はず。
574 名前:デフォルトの名無しさん [2009/12/03(木) 11:24:54 ] スクリプト側の待ちループの中でlua_yieldを呼び出すグルー関数を呼びだすようにしておき、 メッセージ処理の待ちの間、具体的には MSG *lpMes=&m_Msg; ZeroMemory( lpMes, sizeof(MSG) ); while(lpMes->message!=WM_QUIT) { if(PeekMessage(lpMes,NULL,0,0,PM_REMOVE)) { TranslateMessage(lpMes); DispatchMessage(lpMes); } else { 〜〜〜 } } の、〜〜〜の部分で1回目はlua_call、2回目以降はlua_resumeでスクリプトを呼び出せばいいような気がする。
575 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 11:28:06 ] >>565 他のスレッドはいきなり殺したらあかんでしょ。 メインスレッドからフラグたてて、よしなに自殺
576 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 11:29:49 ] てか、この辺のマルチスレッドの話ことってLua関係なくないか?
577 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 11:44:10 ] >>571 (before) 入力待ち(マウス等)で関数内で停止する (after) yieldを使い、外で停止する 入力が来たらresumeで関数内に戻る WM_CLOSEが来たらresumeしないまま終了
578 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 12:59:28 ] lua関係ないよな。普通にC++だけで書いてても全く同じだ。 まあ、lua (ないしは squirrel) なら、yield のタイミングで同期を とるようなコードにしておくのが無難ってのはその通りだと思われ
579 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 20:42:03 ] >>573 なるほど、それならステップ実行できますね。 >>他のレスくれた方々 具体的に書いた例だとマルチスレッドになってるけど、根本は WindowsでLua使うときにメッセージ処理をどうしてるかって話ですから。 避けて通れないだろうから、実際に組み込んでる方々はどう対処してるかが 気になったもので。
580 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 22:32:02 ] >>579 シングルスレッドモデルで組んであれば処理の流れ的に問題になるようなことは別にない あとはオブジェクトをどう管理してるかの問題。 ウインドウのインスタンスを lua 配下にしてある(生成もlua側から)なら、それぞれのウインドウの メッセージ処理部から、lua でのインスタンスの適当なメソッド (onCloseとか) をイベント的に callback させて閉じるかどうかをスクリプト側に判定させればいいだろう ウインドウのインスタンスがグローバルなら、lua 側も同様に グローバルメソッドをイベントとして呼び出して判定させるように組めばいい
581 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 18:14:29 ] Luaのスタックとか文法とかにいまいち馴染めないからエンゼルスクリプトをやってみようかと思ったが日本語資料がなさすぎて泣いた
582 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 18:28:07 ] >エンゼルスクリプト なんか可愛いな
583 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 18:39:34 ] つ英文マニュアル 結構読みやすいよ。 あと、WIPのtest_featureに入ってるサンプルもわかりやすい。
584 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 20:37:59 ] エンゼルスクリプトって速度どれくらい?
585 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 21:19:06 ] >>584 >>347
586 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 21:19:32 ] >>584 >>347
587 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 21:20:21 ] おい、結婚するか
588 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 21:46:45 ] そうだな。結婚すると良いよ。
589 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 21:49:36 ] じゃあ俺が息子になろわ
590 名前:551 mailto:sage [2009/12/04(金) 21:52:36 ] >>553 ,560 回答が遅くなってすみません。 >>560 さんの方法で望みの動作になりました。 お二方とも、本当にありがとうございました。
591 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 23:34:54 ] >>581 tolua++を使えばいいと思います。 ttp://lua.mine.nu/w/LuaBookSupport
592 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 23:36:01 ] 日本語資料が無いから辛いと書いてるのにそんなの勧めるなよw
593 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 23:46:07 ] Pawn何で人気ないん?
594 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 23:49:03 ] Luaの入門書読み終わったけどユーザーデータについてあんまし書いてなかったぜ ポインタ渡せないとオブジェクトの操作ができないジャマイカ
595 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 23:49:50 ] Luaの入門書ってどれのこと?
596 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 00:06:50 ] 入門Luaプログラミングというやつなんだけど、ちょろっと1Pくらいしか説明がなくてわかりにくかった
597 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 00:21:15 ] luaといえば、下の二つのスクリプトを順に実行すると、 --a.lua local v = 1 local function f() print(v) end fv = f --b.lua fv() 結果 1 感じになるんだが、関数の実体もガベコレされてるのかな? 関数内で使ってるlocal変数もコピーかリファレンスを持つことになると?
598 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 00:32:19 ] >>597 Luaはよく知らないが、単にグローバル変数を 2つのスクリプトで共有してるだけなんじゃね?