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
931 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 22:34:16 ] coroutine.create(function (a, b) showMessageDialog(a, b, "Hello! World!") showMessageDialog(a, b "byebye")end) とか lua-users.org/lists/lua-l/2009-11/msg00214.html >Run Lua in a separate thread and somehow stop it if it takes too long. とか おつかい行って来てよ、と丸投げしまう簡便さ でもちゃんと帰ってこれるのかな・・・的不安
932 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 08:18:34 ] >>930 コルーチンは記述が簡単なだけに非同期対応が面倒に感じるんだよな >>924 みたいな単純な処理ですら、アイテムを連続で取るとキャラが白くならなかったり、 直後にゲームクリアしてもキャラが白いままだったり、直後にキャラが変身するとハングしたりとか Stateパターンならちゃんと回避できる人がコルーチンだと回避し忘れるのはありがちなこと
933 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 14:56:36 ] (何言ってんだコイツという眼差し)
934 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:06:08 ] >>932 他の人はコードで例を示しているんだから、君もコルーチンよりStateパターンが明らからに優れているという例をコードで示したら? そうでないと、ただの知ったか君と区別つかないよ
935 名前:デフォルトの名無しさん [2010/03/08(月) 23:32:20 ] >920の「state:update()の戦略」が良く判らん……トランザクションのこと?
936 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:01:37 ] Stateパターンを理解してりゃ、そこは判らない文脈じゃないと思うけど。
937 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:07:39 ] switch(state) { case WALK: … case WAIT: … case ATTACK: … } をちょっと格好付けただけ コルーチンと比較されるような使い方の場合は特にメリットもない
938 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:47:56 ] >>936 ハイハイ、逃げないでコードで示してね それともやっぱり、知ったか君だったのw
939 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:02:11 ] そもそもコルーチンと組み込み系言語って何か関係あるの?
940 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:15:03 ] このスレで話題になることが多い lua と squirrel が搭載している、以上のものではないかな 他何が搭載してたっけ
941 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:20:31 ] よくわかんないけど状態遷移するたびにStateインスタンスを破棄、生成してれば 切り替わるタイミングが明確になって後片付けとかが確実になるとかそういうことなんじゃないの
942 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 02:34:51 ] ちなみに型が厳密な言語でコルーチンを扱うと複雑になるか、制約が大きくなる どのみちオブジェクト指向が好きならJavaとかC#とかで正解なんだよ
943 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 02:43:45 ] 小規模だとコルーチンのがキモチイイけど、遷移が複雑になってくると機械的に遷移図からコードに直せるステートのほうがいいかなって感じる
944 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 03:03:14 ] 画面遷移処理とか、ADV的な演出の逐次制御とかはコルーチンがいいかんじにはまるね
945 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 09:40:22 ] コルーチン=呼び出すと区切りの部分まで実行してくれる関数オブジェクト みたいな感じで理解してるな。 Luaの場合、coroutine.resumeで呼び出すと、次のcoroutine.yieldの部分まで実行してくれる。
946 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:51:46 ] 10回繰り返し、という処理を、途中でイベントを受け取ったりしながらでも、 for (i = 0; i < 10; ++i) ですらっと書けるのがコルーチン。
947 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:59:05 ] cでcoroutineを自作しようと思ったら難しかったでござる。
948 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:26:47 ] 奇怪で制約の多いマクロを組むか sjljでコンテキストを書き換えるかの二択だな
949 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:11:31 ] その話題までいくともう組み込み言語まったく関係ないな。
950 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 20:01:13 ] マルチスレッドで済む処理まで凝るーチン
951 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 13:54:54 ] ルアってなんであんなテーブルマンセーなの?
952 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 14:17:35 ] シンプルだからじゃない? このテーブルひとつで普通の配列も連想配列も オブジェクトまでも扱えるから... でも無理やりオブジェクト指向マネるくらいなら ほかのスクリプト言語を検討するよ
953 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:10:04 ] Luaは初心者向けに見えて 実は玄人向け
954 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:48:04 ] 違うな M向け マニアとマゾ
955 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:37:58 ] AngelScript|Д`)<呼ばれたので飛んできました GameMonkey|Д`)<俺もー CRIScript|Д`)<俺もー
956 名前:デフォルトの名無しさん [2010/03/10(水) 18:51:20 ] \ l´⌒\⌒\ \\ \ \ ヽ ) ) \\ \\ ( \ \∩___∩ \\ \ \ ⌒⌒| ノ ヽ \\ \ \ / ● ● ト、\ \\\ \ Y | ( _●_) ミ\ \\\ \ / 彡、_ |∪| ノ \ \\\ (____)―ヽノ' ヽ  ̄ ̄ ヽ\\ \, j l l .l } Lua! l (_ノノノノ
957 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:29:44 ] 過疎
958 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:55:01 ] コルーチンのAAください
959 名前:デフォルトの名無しさん [2010/03/14(日) 19:23:00 ] ●)(●):::\ .\ :::::::::::::::::::::::::::::::::::::::::::::::: (__人__)./ ̄ ̄ ̄\:::::::::::::::::::::: / ̄ ̄ ̄\ コルーチン ::` ⌒´./ ⌒ ⌒ ヽ::::::::::::::: / ⌒ ⌒ ヽ ::::: ./ (●)(●) |:::::::::::: / ( ●)(●) | \ | (__ / ̄ ̄ ̄\ | (__人__) } コルーチン \/、. / ⌒ ⌒ ヽ/、.. ` ⌒´ .ヽ \ / (●)(●) | | \ \ | (__ / ̄ ̄ ̄\. | / |\ \/、. / ⌒ ⌒ ヽ──┐ |丿 コルーチン | .\ \ / (●)(●) |──┤ | | |\ \ | (__人__) }──┤ | | | \ \/、. ` ⌒´ ヽ\
960 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:37:44 ] /ヽ /ヽ ':' ゙''" `':, ミ ・ω・ ;, :; . っ ,つLua `:; ,;' `( /'"`∪
961 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:50:30 ] lldebugみたいな感じのデバッガって、他のスクリプト言語にあるんだろうか? JavaやPythonとかだと余裕でありそうだけど、SquirrelとかAngelScriptとかにはなさそうだ…