【Lua】組み込み系言語総合 その6【Squirrel】at TECH
【Lua】組み込み系言語総合 その6【Squirrel】 - 暇つぶし2ch446:デフォルトの名無しさん
14/07/07 01:12:10.12 KmCWtuSa.net
>>442
どうしてもスクリプトにしないといけない箇所があったときは
慣れ親しんだC++に近い文法でスクリプト書けるってのは凄い利点だよ

447:デフォルトの名無しさん
14/07/07 01:43:37.99 PzOLkwtR.net
そもそも「どうしてもスクリプトにしないといけない箇所」なんてものは
思い込み以外では存在しない訳で

448:デフォルトの名無しさん
14/07/07 01:49:05.61 X/HL5rf/.net
(゚Д゚) ハア??

449:デフォルトの名無しさん
14/07/07 02:26:29.4


450:2 ID:amtUtvKD.net



451:デフォルトの名無しさん
14/07/07 07:47:10.67 3MsBFfON.net
その点Luaはプログラマではない者が使いやすいことを理念としているからな。
ただし英語程度はできることが前提だが。

452:デフォルトの名無しさん
14/07/07 09:42:19.00 n/CZjLr0.net
[要出典]

453:デフォルトの名無しさん
14/07/07 10:01:11.88 kMcKP8+6.net
実行時コンパイルできるC++って考えるといろいろと悪用法ありそうなんだけどな

454:デフォルトの名無しさん
14/07/07 10:23:10.27 KmCWtuSa.net
>>444
C++で作ったMOD前提のM.U.G.E.Nみたいな2Dゲーム
キャラクターの描画・行動全て自由に作れるようにするとしたら
スクリプトじゃなくて何にすればいい?

455:デフォルトの名無しさん
14/07/07 11:08:37.90 m9tAIraA.net
「C++でつくったMOD前提」ならそれこそスクリプトでなくてもいいのでは
制御のインターフェースが外部に全部公開されてるってことだよね

456:デフォルトの名無しさん
14/07/07 22:51:51.30 KmCWtuSa.net
>>451
書き方が悪かったな
MOD前提のC++で作った・・・だわ

457:デフォルトの名無しさん
14/07/08 14:33:11.22 x77uNS3E.net
AngelScript|Д`)<AngelScriptは組み込み簡単だぞ。
ヘッダ1個インクルードしてライブラリファイル1個リンクするだけでOK。

458:デフォルトの名無しさん
14/07/08 15:54:28.60 t9t2Zfam.net
AngelScriptはEnvironment-Module-Contextっていう構成がすごくわかりやすくて好きになったな

459:デフォルトの名無しさん
14/07/08 15:56:54.46 t9t2Zfam.net
まちがえた
×Environment → ○Engine

460:デフォルトの名無しさん
14/07/08 23:53:13.46 jARkErFj.net
C++が好きな人にとってはいいのかもしれないが
C++に特に思い入れのない人にとっては
何でC++の持つ恩恵が受けられる訳でもないスクリプトにまで
C++の流儀を持ち込まねばならんのだ
という感情があるということを
AngelScript推進派は意識した方がいいと思う

AngelScriptに懐疑的な人に対して
>>443みたいなアピールは無意味どころか逆撫でしてるんじゃない?

461:デフォルトの名無しさん
14/07/08 23:55:23.17 jARkErFj.net
勿論AngelScriptの有用性を否定してる訳じゃなくて
人にモノを薦めるときは相手の考えも尊重してね
という話

462:デフォルトの名無しさん
14/07/09 00:01:15.25 yWtVDAf2.net
C++構文とかどうでもいいからさ
コンパイル時型チェックしてくれる組み込めるスクリプト言語って他にないの?

463:デフォルトの名無しさん
14/07/09 00:02:36.15 6stlqCZC.net
なぜそこまで言われなければならないんだ・・・
じゃ今度からAngelScriptの話をするときは「(個人の感想です)」って末尾に付けるわ

464:デフォルトの名無しさん
14/07/09 00:08:24.48 HW4kwc6W.net
JavaやC#なんかとおなじで、ドカタに使わせる言語としては良さそうなんじゃないかと思う。

465:デフォルトの名無しさん
14/07/09 00:27:27.75 q6W6WKLr.net
AngelScript|Д`)さんってさぁ
Botや荒らしの類にしか見えないんだよ
本気で貢献したい、広めたいと思うなら
リファレンスの翻訳したり
サンプルコードを提示したりと
やることはいくらでもあるでしょ?
どっかの国のじゃないんだからさぁ

ま、流行らないと思うけども

466:デフォルトの名無しさん
14/07/09 00:43:58.35 ay8R5j5j.net
静的と動的を二刀流したら面白そうなのは分かるけど
同じ系統の言語を二個使ったら何ができるのかが分からない

467:デフォルトの名無しさん
14/07/09 00:55:53.38 Pn1IATNt.net
ASって存在価値ないんじゃね?ってレスに
こういう場面で使えるよって返したつもりだったけど



468: 無意識のうちに、C++すら理解できない能無しの劣等感を煽っちゃったんだね。 ごめんね。



469:デフォルトの名無しさん
14/07/09 01:03:57.02 6stlqCZC.net
動的型付け言語はコーディングミスをしない超人向け言語ですので
その超人様がコンパイル時型チェックに頼る凡人を見下すのは当然ですね

470:デフォルトの名無しさん
14/07/09 01:15:00.10 q6W6WKLr.net
>>463
誰だよお前はw

471:デフォルトの名無しさん
14/07/09 07:00:19.88 D5g6nYoo.net
俺だよ俺

472:デフォルトの名無しさん
14/07/09 08:20:34.04 dnhlgLoJ.net
AS信者ってキモいな・・・

473:デフォルトの名無しさん
14/07/09 08:35:39.86 dUvUmdvT.net
信者とか言い出すやつは荒らし。
みんな知ってるね。

474:デフォルトの名無しさん
14/07/09 19:01:55.74 r8cQgObV.net
AngelScriptは何も悪くない
悪いのはソレを使う人間だよ

475:デフォルトの名無しさん
14/07/09 19:50:22.95 ay8R5j5j.net
静的と動的の争いが無駄すぎるおかげで、二刀流の生産性が非常に高く感じられる

476:デフォルトの名無しさん
14/07/09 20:24:17.88 yWtVDAf2.net
お前らが言ってる静的動的ってどういう意味で言ってんの?
型付けが?それとも実行環境が?

477:デフォルトの名無しさん
14/07/10 14:37:45.84 QqTFR8Ev.net
AngelScript使ってる男の人って・・・・・

478:デフォルトの名無しさん
14/07/10 16:01:45.19 iwrqfwZm.net
TreeBoa?

479:デフォルトの名無しさん
14/07/11 01:37:33.79 hJn+b6B7.net
luaのmodule, requireの使い方がイマイチよく分からないんだけど
a.luaとb.luaというファイルがあったとして、a.luaにmodule("a")って書いておけばb.luaからrequire("a")でa.luaを参照で生きるってのは分かるんだけど
a.luaもb.luaもアーカイブ内にあって(例えばZIPにスクリプトが固めてある状態で)アーカイブから直接
スクリプト文字列をロードしてlua_Stateつくったとするじゃん?そしたらb.luaからa.luaってどうやって参照するの??
a.luaをロードしたlua_Stateと、b.luaをロードしたlua_Stateはそれぞれ完全に独立してるわけじゃん?
a.lua内でmodule("a")とかやっても、それはb.luaにとっては全く無関係な話しじゃね?っていう

480:デフォルトの名無しさん
14/07/11 02:45:06.27 Mxpl8CKX.net
>>474
dostring

はい

はい

481:デフォルトの名無しさん
14/07/11 04:09:49.02 D40A4FPH.net
>>474
requireの公式マニュアル読めばモジュールの検索手順載ってるからそれ読んどいてね
require経由で独自のアーカイブからファイルを読みたいなら
package.preloadのメタメソッドに自前のローダを仕込むとかトリックを使うことになるよ

482:デフォルトの名無しさん
14/07/11 07:07:35.10 TT3tD9Ot.net
>>474
スクリプトをロードすると関数がつくられる (lua_Stateではない)
各々の関数はグローバル変数を共有できる (完全に独立してない)

モジュールの使い方はバージョン毎に改善されているが
グローバル変数の使い方はあまり変わってないので使い方が分からない人はいないと思う

483:デフォルトの名無しさん
14/07/11 07:47:48.30 XCAXgxw4.net
module は廃止されたよね?
URLリンク(p-monster.hatenablog.com)

484:デフォルトの名無しさん
14/07/11 07:50:22.67 XCAXgxw4.net
こちらの方がよいかも
URLリンク(ar.aichi-u.ac.jp)

485:475
14/07/11 14:00:17.28 snzc4mzL.net
ああ、なにか根本的に間違ってたんだな
package.preloadとかの説明は読んでたけど、このテーブルが異なる lua_State 間で共有される
情報だとは思っていなかった

結局メタテーブルいじるのは面倒なので、単に

int lua_include(lua_State *ls) {
 const char *scriptname = lua_tostring(ls, 1);
 const char *source = GetStringFromArchive("data.zip", scriptname);
 lua_dostring(ls, source)
 return 0;
}

みたいな関数を登録して、スクリプト内から include("a.lua") って呼んで使うことにしたよ。みんなありがとう

486:デフォルトの名無しさん
14/07/13 17:10:55.13 kuvdsVq2.net
luaでiosアプリを操作するスクリプトを作ってます
ランダム変数を使って、タッチする位置とタイミングを微妙に変えつつ、
位置とタイミングをある程度の範囲内に抑えたいのですが、

x1=math.random(14,134);
y1=math.random(280,314);
a1=math.random(-1,+1);
a2=math.random(-1,+1);
t0=math.random(80000,85000);
t1=math.random;(50000,50100);
touchdown(0,x1,y1);
usleep(t0);
touchup(0,x1+a1,y1+a2);
usleep(t1);
usleep(300000);

まったく反応しません
どうしてでしょうか

487:デフォルトの名無しさん
14/07/13 17:13:44.99 kuvdsVq2.net
× t1=math.random;(50000,50100);
◯ t1=math.random(50000,50100);

直したけど動きません

488:デフォルトの名無しさん
14/07/13 17:20:13.38 kuvdsVq2.net
お騒がせしてすいません
+が余計でした

489:デフォルトの名無しさん
14/07/13 23:51:22.63 oRazOMf+.net
関係ないけどluaは命令末尾にセミコロン要らないよ。
まあ、同じ行に命令を並べる時は必要になるから、念のため常につけておくってのはアリだと思うけど。

490:デフォルトの名無しさん
14/07/15 22:41:15.80 4Hk/aMI9.net
lua_getuservalue, lua_setuservalueってどういう使い方するの?
というかどういう風に使うもんなの?

491:デフォルトの名無しさん
14/07/18 07:19:05.42 MNjetX+m.net
>>485
マニュアルやら
URLリンク(sceneryandfish.withnotes.net)
などでも触れてるけど
数十行レベルでしょのシンプルなソース見ちゃうのが手っ取り早いと思うよ

492:デフォルトの名無しさん
14/07/21 12:06:25.68 MDGKsYd9.net
AngelScript|Д`)<AngelScript2.29.1記念カキコ
何か重要なバグフィックスらしい。

493:デフォルトの名無しさん
14/07/21 16:26:34.64 CPAJhmyk.net
URLリンク(www.angelcode.com)
これか
メモリ関連のバグフィクスと、出力されるバイトコードがおかしくなるバグの修正かな

494:デフォルトの名無しさん
14/08/11 22:58:35.99 xLVZtjTF.net
何気に痛いな
バージョン番号がいまいちわからないんだけど
stable版ってどれなんだろ

495:デフォルトの名無しさん
14/08/12 02:19:26.71 Hfmn/cHa.net
auto touchっていうアプリのスクリプトがLua言語でちんぷんかんぷんで。
ここで質問してもいい?

496:デフォルトの名無しさん
14/08/12 02:55:05.48 QZJQGyIx.net
>>490
いいよ
寂れてるし。

497:デフォルトの名無しさん
14/08/12 05:31:01.87 7nSDT24w.net
Lua,Squirrelの簡単な本がない
あれば買うが、難しい本はいらん

498:デフォルトの名無しさん
14/08/12 06:24:10.22 FZ4QQEE/.net
用途を考えればド素人向けの本はもっといっぱいほしいよな

499:デフォルトの名無しさん
14/08/12 08:49:45.55 Hfmn/cHa.net
質問しておきながら爆睡してしまった。申し訳ない。
auto touchの関数についてURLリンク(autotouch.me)

alert("Hello world!"); hello world!と表示する
vibrate(); -- 一回振動する.
tap(100, 200); -- 座標(100, 200)をクリックする.このあたりは実際にauto touchで実行できたんだ。

画像aがあるときにaをタップ
っていうのはfindImageTap {imagePath="/var/A.png", count=1};
だと思うんだけど出来なくて困ってる。

500:デフォルトの名無しさん
14/08/12 09:06:36.78 5U2rS/IR.net
面白そうなツールだな

501:デフォルトの名無しさん
14/08/12 14:26:34.31 Hfmn/cHa.net
UWSCみたいな感じで動かせそうだな~って思ってる。
別過去スレでやってる人がいて、その人のスクリプトはこんな感じなのね。↓

まだボタン一つ押せただけで大した事できてないけど、、、
スクリーンショットとって、PCで画像切り抜き、サイズ変えないで保存して上手くいった。
あいぽんで編集するとサイズ変わってしまって上手くいかなかった。
あとはマニュアル通り

ボタンの画像を少し小さめに切抜き、find image
すると、ボタンの中の座標返すからそのままtouchdown
してあげると良いみたい

local ok;

ok = findImage{imagePath="/var/mobile/Library/AutoTouch/Scripts/IMG/ok.png", count=1};
for i, v in pairs(ok) do
touchDown(0,v[1],v[2]);
usleep(100000.00);
touchUp(0,v[1],v[2]);
end
画像はこんな感じ。カメラロールに保存しちゃうと拡大されちゃうけど、ホントは等倍ね
URLリンク(i.imgur.com)

とのことなんよ。画像を見つけたらfor以下をループってことなのかな?

502:デフォルトの名無しさん
14/08/12 18:35:02.04 XJm7PWEz.net
書いてあることそのままじゃね?
何が分からないんだろ

503:デフォルトの名無しさん
14/08/12 20:58:16.89 Hfmn/cHa.net
上手く認識してくれないんだわ。。
angeっていう画像を見つけたらタップっていう動作を組む方が簡単そうなので
findImageTap{imagePath="/var/mobile/Library/AutoTouch/Scripts/IMG/ange.png", count=1};
っていうのに変えてもうまくいかない。

iphoneでスクショ撮る→PC繋いで画像ダブルクリック。スクショしてペイントに貼り付け。4×4ドットで切り取りしてange.pngで保存。
iexplorer経由でIMGフォルダに保存。
そもそもの画像の保存方法がダメなのかな?

504:デフォルトの名無しさん
14/08/12 21:54:52.06 XJm7PWEz.net
findImageTapじゃなくてfindImageを使って
マッチしてるか確認
local result = findImage{imagePath="/var/mobile/Library/AutoTouch/Scripts/IMG/ange.png", count=1}
alert(#result)
これが0なら拾えていないので画像に問題ありなので画像作成に工夫する
1なら拾えているので他に問題あり
考えられるのはtap対象自体がイベントを処理していないか
当たり判定の範囲外
前者は手動でtapして反応するか確認
後者はresultの中身に入った座標を参考にしながらtap関数で確認

alertの仕様が分からないので
alert(tostring(#result)) や
alert(""...#result)などとする必要が有るかも知れない

505:デフォルトの名無しさん
14/08/12 22:22:09.25 Hfmn/cHa.net
丁寧にありがとう。
local result = findImage{imagePath="/var/mobile/Library/AutoTouch/Scripts/IMG/ange.png", count=1}
alert("#result")
で反応無かったので画像の保存の仕方がいけなかったみたい。
ちょっと保存方法変えてみます。

506:デフォルトの名無しさん
14/08/12 22:37:13.67 XJm7PWEz.net
>>500
>alert("#result")
誰がそんな事言ったよ
てかそれで反応がないならおかしいぞ

507:デフォルトの名無しさん
14/08/12 22:38:29.15 wYq/8Bw7.net
ホスト環境側の制限なんかで、コード通りに動いてくれないときのデバッグが一番面倒だよね。

508:デフォルトの名無しさん
14/08/12 23:01:41.48 XJm7PWEz.net
エミュもなく実機テストオンリーじゃ地獄だね
URLリンク(teachme.jp)
見る限りリモートデバッグも出来るようだから
そっちの環境を作るのが先かもね

509:デフォルトの名無しさん
14/08/25 10:39:27.72 BL3IV/EG.net
ChaiScript ( URLリンク(chaiscript.com) ) って試した人います?
組み込みの文字列、配列、連想配列に std::string, vector, map を
そのまま使っているほどには、C++のクラスをバインドするには親和性が高そう。
比較的、型の扱いが厳密なのが特徴かな。 クロージャは無いかも。

510:デフォルトの名無しさん
14/08/25 18:26:32.35 eFSdMsqd.net
イラネ

511:デフォルトの名無しさん
14/08/25 19:18:08.37 8RrIpfE5.net
>>504
割とオーソドックスな文法だね
defでの関数定義時に、annotationとguardを設定できるのはちょっと面白い
(いまいち使い道は思いつかない)
バージョン5.3まで行ってる割にはドキュメントが弱そうに(個人的には)見えるけど
それだけシンプルって事なのか、それともdoxygenの使用にこだわっているせいなのか

512:デフォルトの名無しさん
14/08/25 21:14:31.71 wLUoTrN4.net
>>506
C++による仮想コードでスクリプトのドキュメントを生成していて、
doxygenの中にスクリプトとC++ APIの両方が書かれているみたい。
ただ、":=" と "=" の動作の違いとか、基本的なことが書かれてない気がする。

割り切った設計はなかなか面白いのだけど、いろいろと惜しいな。

513:デフォルトの名無しさん
14/08/26 09:41:08.11 laXhI8kB.net
マニュアル酷いなぁ

Function Definition ::= [annotation + CR/LF] "def" identifier "(" [arg ("," arg)*] ")" [":" guard] block

annotation ::= ???
CR/LF ::= ???
identifier ::= ???
arg ::= ???
guard ::= ???
block ::= ???

訳わからん

514:デフォルトの名無しさん
14/08/26 12:16:11.13 c1R9OiEG.net
ん? そこは数少ない「訳わかる」ところじゃないのか?
関数定義のシンタックスが書いてあるだけだぞ。

annotation: meta-annotation on function, currently used as documentation. Optional.
identifier: name of function. Required.
args: comma-delimited list of parameter names. Optional.
guards: guarding statement that act as a prerequisite for the function. Optional.
{ }: scoped block as function body. Required.

515:デフォルトの名無しさん
14/08/26 21:00:26.29 CrpVQ0De.net
>>508
これが訳分からんならお前には色々と難しいな

516:デフォルトの名無しさん
14/08/26 21:58:18.18 laXhI8kB.net
>>509
非終端記号混じりで定義するなら
それらの定義もしっかりやれよって話

>>510
俺には無理
annotation
1行目のみ#までの空白タブは読み捨てるが2行目移行は読み捨てない
Annotationとキーワード"def"がある行の間に空行はいくら入ってもいいが空白行やコメントは不可
こんなソース見なきゃ分かんねーよ

517:デフォルトの名無しさん
14/08/27 06:44:36.56 4iKpxsh4.net
>>511
確かにannotationは説明不足だな
他のコメントは // でも /* */ でもいいのに、ここは # のみだし
複数行の扱いとか、get_annotation() で先頭の # が除外されないのも微妙

マニュアルがどうこう以前に、annotationの仕様がこなれていないんじゃないかな
「関数の直前のコメントは、その説明とみなす」というアイデアは嫌いじゃないが

518:デフォルトの名無しさん
14/08/27 07:39:39.64 3/KZIqq3.net
イラネ

519:デフォルトの名無しさん
14/08/27 07:50:51.23 EpvBGjSy.net
Lua原理主義者さん鬱陶しいな・・・

520:デフォルトの名無しさん
14/08/27 09:13:33.41 6IT+XF7c.net
ライバルにストレスを与えるのは当たり前だ
競争原理が鬱陶しいなら競争をやめればいい

521:デフォルトの名無しさん
14/08/27 15:44:42.46 4iKpxsh4.net
>>504
多少複雑なことをやろうとすると segfault で落ちる。
GCがC++任せ(参照カウント)なのに、オブジェクトの生存期間の制御が甘いようだ。
良いバインダではあるけど、良いエンジンではないな。

522:デフォルトの名無しさん
14/08/28 13:22:05.82 wsbnD5TY.net
>>494と同じようにauto touchで動かすLuaの質問してもいいかな?

523:デフォルトの名無しさん
14/08/29 14:42:44.60 xFSbaFifS
便乗で(・_・;
autotouchの拡張関数のfindimageのソースコードが知りたいんですが、
何処かみえる場所に置いてないですかね。
プログラムに組み込まれちゃってるんかな。
自分で書いた関数だと遅くて遅くて。

524:デフォルトの名無しさん
14/08/29 14:50:56.97 xFSbaFifS
間違えました。findcolorです

525:デフォルトの名無しさん
14/09/01 03:56:01.22 ruMjAUJp.net
>>517
いいよ
寂れてるし。

526:デフォルトの名無しさん
14/09/07 20:51:30.64 ppGxj2XK.net
と言っても質問なしw

527:デフォルトの名無しさん
14/09/07 21:16:45.63 V4yJXxP4.net
もしかしたら行間を読み取ってダメだって言われたと思ったのかもしれない

528:デフォルトの名無しさん
14/09/08 08:36:00.81 YMBZ0Z5D.net
> 491 名前:デフォルトの名無しさん[] 投稿日:2014/08/12(火) 02:19:26.71 ID:Hfmn/cHa [1/5]
> auto touchっていうアプリのスクリプトがLua言語でちんぷんかんぷんで。
> ここで質問してもいい?
>
> 492 自分:デフォルトの名無しさん[sage] 投稿日:2014/08/12(火) 02:55:05.48 ID:QZJQGyIx
> >>490
> いいよ
> 寂れてるし。

> 518 名前:デフォルトの名無しさん[sage] 投稿日:2014/08/28(木) 13:22:05.82 ID:wsbnD5TY
> >>494と同じようにauto touchで動かすLuaの質問してもいいかな?
>
> 519 自分:デフォルトの名無しさん[sage] 投稿日:2014/09/01(月) 03:56:01.22 ID:ruMjAUJp
> >>517
> いいよ
> 寂れてるし。

529:デフォルトの名無しさん
14/09/08 08:43:07.21 YMBZ0Z5D.net
同じ文面でスルーされるってのはちと悲しかった

530:デフォルトの名無しさん
14/09/09 08:11:02.05 2JmvO9sZ.net
2度あることは3度ある!

531:デフォルトの名無しさん
14/09/12 14:58:08.94 y2znSXEd0
countTimer(180)

↑こんな感じで記述するだけで、たとえば180秒ごとに戻り値がtrueになるようなfunctionないでしょうか?

もしくは、

countTimer(A,180)

などと、先頭にID名を書くことで、別々のタイマーとして動作するようなものがほしいのですが。

532:デフォルトの名無しさん
14/09/13 13:49:43.66 HQ53r6lE.net
Luaの文法は組み込みじゃなくてLLとしても十分使えると思うんだよなぁ。
クロージャをなくして関数束縛とラムダに分離したらRubyよりも手軽に使えそう。

533:デフォルトの名無しさん
14/09/13 14:34:10.13 xYGMnmOJ.net
LLとして利用するのにコンセンサスがいるのか?

というか規模から考えて現状でもRubyより手軽に使えるはずだし
ちょっと文法変えた程度じゃ手軽さの関係は変わらんだろう

ついでに文法だけならもっとマシな言語いくらでもあるだろ
Luaは処理系実装・実績を含めて初めて評価される類だと思う

534:デフォルトの名無しさん
14/09/13 14:59:46.23 2mQgH8ds.net
localの宣言はLLじゃないな。

535:デフォルトの名無しさん
14/09/13 15:33:20.77 y8nlksus.net
「LLとして使う」ってどういう文脈なんだろう?
一般業務なら Battery Included な環境のほうが便利なんじゃないか?
組み込み言語のライブラリの貧弱さは、サンドボックス内で使われるからこそ許される(し、好まれる)のでは。

536:デフォルトの名無しさん
14/09/13 17:15:36.86 CqCzoC9O.net
local宣言はブロックの途中から終わりまでのスコープを作る
つまり宣言の内容より位置に意味があるから省略できない

537:デフォルトの名無しさん
14/09/13 17:22:33.96 xYGMnmOJ.net
宣言した位置で意味が変わるようなコードはクソだから
配慮しなくてもいいような

538:デフォルトの名無しさん
14/09/13 17:39:51.70 y8nlksus.net
>>531
Luaではlocalを省略するとグローバル変数になるから、位置以前の問題では。

>>532
C++だと変数の宣言位置によって、そのコンストラクタが走るタイミングが変わるぞ。

539:デフォルトの名無しさん
14/09/13 17:40:19.61 CqCzoC9O.net
gotoは行き先の名前を考えるけど構造化プログラミングは位置を考える
これが大成功してしまったから
位置の考え方は間違ってないと思う

540:デフォルトの名無しさん
14/09/13 17:58:11.94 xYGMnmOJ.net
>>533
C++でもコンストラクタが走るタイミングで結果が変わるコードは
クソに分類されると思うが

菱形継承がタブーなのを見れば明らか

>>534
構造化プログラミングで考える「位置」は
階層で十分であって「行」ではないような

541:デフォルトの名無しさん
14/09/13 18:13:48.15 2iAULK/t.net
「クロージャを関数束縛とラムダに分離」ってどういう意味?
function宣言ってそもそもクロージャの作成と変数への代入のシンタックスシュガーに過ぎないんじゃなかったっけ?

542:デフォルトの名無しさん
14/09/13 18:52:34.79 y8nlksus.net
>>535
コンストラクタにも実行コストがあるから、必要になるまでは遅らせるのが常識。
例えばその変数の初期化前に分岐があるような場合。
また、ロック/アンロックに RAII を使うようなイディオムは、当然ながら「コンストラクタが走るタイミングで結果が変わる」。

もちろん、Luaではコンストラクタのような自動的に実行されるコードはないから関係ないが。

あと、この文脈では菱形継承はまったく関係ない。
話がC++への批判に摩り替わっていないか?

543:デフォルトの名無しさん
14/09/13 19:14:15.92 xYGMnmOJ.net
コンストラクタが走るタイミングが読めない
極端な例として菱形継承を挙げただけだよ

とりあえずここLuaと愉快な仲間たちのスレなんで

544:デフォルトの名無しさん
14/09/13 19:15:15.01 CqCzoC9O.net
>>536
関係ないかもしれないけど
関数束縛が代入の構文糖である言語は
前方参照をすると失敗する場合がある

545:デフォルトの名無しさん
14/09/15 10:09:15.73 pkGLa0w7x
Luaの質問専用スレってないのかな。

546:デフォルトの名無しさん
14/10/03 07:43:15.70 lGjxzjS9.net
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   /  ●   ● ト、\ \\\ 
               \  Y |    ( _●_)  ミ\  \\\  
               \ / 彡、_  |∪| ノ   \  \\\
                 (____)―ヽノ' ヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                         Lua!   l (_ノノノノ

547:デフォルトの名無しさん
14/10/11 11:25:02.83 9ZTN9fQf.net
luaを知るのに既存のスクリプトをいくつかみてるんだけど
lua.eっていう拡張子のものがいくつかあって開けない
ググッてもわからないんだけどlua.eの形のものは何なんだろう
見れるエディタも教えてもらえるとありがたい

548:デフォルトの名無しさん
14/10/11 11:30:28.22 9ZTN9fQf.net
スマン・・独自ソフトで暗号化されてるだけだったわ

549:デフォルトの名無しさん
14/10/12 05:12:57.70 94OdN8X7.net
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >

550:sage
14/10/12 13:45:43.55 i7kDtML/.net
長文失礼します あるサイトを参考にしてソートプログラムを書いているのですが
local function main()

NUM_DATA = 10
x = {9,4,6,2,1,8,0,3,7,5}

function BubSort(x,n)
for i=1,i<=n do--エラー
for j=n,j>i do
if(x[j-1] > x[j+1]) then --前の要素が大きかったら
x[j],x[j-1] = x[j-1],x[j]--交換
end
end
end
end

function ShowData(x,n)
for i,v in pairs(x) do
print(v)
end
end

--s print("ソート前")
ShowData(x,NUM_DATA)
print("\n\n")
BubSort(x,NUMDATA)
-- print("\nソート後\n")
ShowData(x,NUM_DATA)
end
main()
と書いた時に7行目でattempt to compar


551:e two nil valuesと出てしまいます 解決策がありましたらご享受していただけないでしょうか



552:デフォルトの名無しさん
14/10/12 14:10:33.80 UZYaSt7F.net
for i=1,n do

553:542
14/10/12 14:32:29.24 i7kDtML/.net
回答ありがとうございます。 試してみたところ7行目で
'for' limit must be a number
と出ました 自分のほうでもいろいろ試してみます
回答ありがとうございました

554:デフォルトの名無しさん
14/10/12 14:40:16.19 UZYaSt7F.net
BubSort(x,NUMDATA)

BubSort(x,NUM_DATA)

555:542
14/10/12 14:48:18.55 i7kDtML/.net
ケアレスミスごめんなさい;;
ありがとうございます、今度は八行目で
attempt to compare number with nil
で出ました、、何度もすみません 自分でも試行錯誤してみます

556:デフォルトの名無しさん
14/10/12 14:59:53.88 UZYaSt7F.net
for j=n,j>i do
if(x[j-1] > x[j+1]) then

for j=n,i+1,-1 do
if(x[j-1] > x[j]) then

557:542
14/10/12 15:02:46.29 i7kDtML/.net
for j=n,j>i doをfor j=n,j>i,-1 do
に書き換えました

558:542
14/10/12 15:06:31.21 i7kDtML/.net
解決しましたありがとうございます!!

559:デフォルトの名無しさん
14/10/12 20:01:27.77 e2Gzikyq.net
すんごい優しい人がいるなあw
俺が勝手に褒めておいてやるよ

ただ、プログラミング言語だけでなく日本語でも会話して欲しい

560:デフォルトの名無しさん
14/10/13 01:38:05.54 B15n5qdA.net
cocos2d-xで素直にLua使うのもなんか悔しかったから
mrubyを組み込んでみた
肝心のLuaとの比較だけどLuaもrubyも素人の俺には
よくわんないっていう
ただスクリプトでのゲーム開発ってのは楽しいな

561:デフォルトの名無しさん
14/10/17 23:51:55.26 9a/zPdtM.net
juliaがembedできると聞いて試してみようと思ったが、なんか面倒くさい。
プログラミング言語のくせになんでネットワークライブラリ必須なんだよ。

562:デフォルトの名無しさん
14/10/18 06:17:24.91 0zghehpU.net
並列実行、数値計算が売りでFortranを比較対象にしている言語に
デフォルトでネットワーク処理を持っているのを期待するのはさすがに酷だ

563:デフォルトの名無しさん
14/10/20 02:20:43.02 9ZZuBDyz.net
luajitっていつまで5.1で足踏みするんだろ
本家は5.3αまで進んだのに

564:デフォルトの名無しさん
14/10/20 07:51:24.76 887X5tQi.net
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

565:デフォルトの名無しさん
14/10/20 14:01:39.85 XKh/BlSi.net
>>555-556
単に分散が売りの一つだからでは?
トラブってるなら環境明記するといいよ

566:デフォルトの名無しさん
14/10/20 14:28:44.63 YmKa11RJ.net
juliaって面白そうだけどスレとか建ってないのかな

567:デフォルトの名無しさん
14/10/24 22:05:25.23 LtvHolRf.net
Lua 5.3.0 (beta) released

568:デフォルトの名無しさん
14/10/31 08:02:57.83 b+WwLJWx.net
The big features for Lua 5.3 are:
- Basic UTF-8 library
- Bitwise operators
- Integers

569:デフォルトの名無しさん
14/10/31 21:03:36.77 tMdLNX3k.net
正規表現マッチャとか手が入ってない
5.2以降からすでに文字列にバイナリデータが入るからUTF8を保持できる

stringのソース斜め読みした感じだとあんまし変化ない
Windows版とかにするにはかなり手を入れないといけないね

570:デフォルトの名無しさん
14/11/02 22:58:25.53 uPMt2D9i.net
>>563
手が入ったのはutf8モジュール。 例えば string.len() はバイト数だが、utf8.len() は文字数になる。
「Windows版」がutf16を指すなら、適当にエンコード変換して、別の文字列かuserdataで保持するのは簡単。
もし、内部のcharをwchar_tに変更する改造する意味なら、確かに手間がかかる。

571:デフォルトの名無しさん
14/11/02 23:54:52.14 TF4Q/5Ab.net
_TCHAR「きたわよ」

572:デフォルトの名無しさん
14/11/03 00:57:50.97 ZMCFj896.net
windowsのwchar_tは2byte固定じゃなかった?
という曖昧な前提で申し訳ないけど
1文字==1文字型の表現できず可変長になるから
結局sjis,utf8を扱うのと同じでメリットないんだよね
A/Wだけでなく8/DなどAPIレベルで対応しないとどうにもならないんじゃないかな
間違えてたらすまん

573:デフォルトの名無しさん
14/11/03 02:05:27.09 7uHWyuXV.net
んんと、UTF-8からUTF-16の変換のコストは低く、
変換結果をGCの管理情報と関連付けてキャッシュすれば
最小限の回数になるので問題はない。
URLリンク(sourceforge.jp)

あとはutf8というクラスやfile関係検討して
どの程度の手間が掛かるか検討だね
beta外れるまで待ったほうがいいかどうかとね。

574:デフォルトの名無しさん
14/11/03 03:29:16.31 ZMCFj896.net
話が通じてないな

575:デフォルトの名無しさん
14/11/03 08:35:18.03 7uHWyuXV.net
>>568

XP以降のWindowsのUNICODEは16bitの可変長。
1文字==1文字になってしまうのはそのライブラリが対応できてないだけ。
対応できてなければ、たとえばフォントの名前が文字化けするとか
変なところで不具合が発生する。
ダウンロードしたファイルの中身にどんな言語が使われているか
予想できない時代だしねえ。

576:デフォルトの名無しさん
14/11/03 09:03:59.77 gXKeHKY3.net
きっちりUTF-16に対応したところで、BMP以外はろくにフォントも用意されてないから
あんまり使いどころがないんだよなぁ。

577:デフォルトの名無しさん
14/11/03 09:44:26.28 TIQQD+z7.net
SquirrelならコンパイルオプションだけでWCHARに対応できるぞ!
WCHARだからマルチバイト文字だし、ダウンロードしたファイルの中身はどうしようもないのは同じだけどな!

578:デフォルトの名無しさん
14/11/03 11:48:44.03 T6nh4Wfv.net
ゲーム程度なら昔の流儀でmblen とか作って
マルチバイトのまま処理するのでだいたい事足りるけど、
絵文字ニーズがでてきてしまって困ってる

サロゲートペアとかをシンプルに処理できる手頃で小さめなライブラリどっかにないかな

579:デフォルトの名無しさん
14/11/04 09:05:41.39 bzlUuRTb.net
>>572
サロゲートペアってUTF-8なら、単なる「バイト数が多いマルチバイト1文字」じゃなかった?
UTF-8を適切に扱えるライブラリを探せば良いのでは?
UTF-16ベースで、1文字=1wcharで処理するものはダメだね。

580:デフォルトの名無しさん
14/11/04 09:14:34.96 lCpWe+1k.net
基本内部処理はUTF-8オンリーでやって、
WINAPIまたはWINDOWSアプリに渡す場合だけ変換するってのが無難だろう。

581:デフォルトの名無しさん
14/11/04 12:26:39.85 JSkttuhx.net
>>573
それが正式な仕様なんだけど、
世の中にはUTF16をべたにUTF8展開しただけ、
というファイルがあふれてて、UTF-8的に二文字になってることのが多くていかんともしがたいのん

582:デフォルトの名無しさん
14/11/04 13:23:26.98 99dxtSJ/.net
というかそれはUTF-8とは言わないことになっとるw

583:デフォルトの名無しさん
14/11/04 16:39:35.13 8lAd+EdW.net
そういうことになってるけど、実際使われてるのはそうだよね。たぶんだいたいJavaが悪い

584:デフォルトの名無しさん
14/11/04 18:02:59.37 OadM+d9h.net
で、Luaで何がしたいの?

585:デフォルトの名無しさん
14/11/04 18:40:40.27 lCpWe+1k.net
内部文字コードをUCS2にしてしまえば、
Windowsのwstringと互換だからホストから見て扱いやすいという判断でないの?
Windows用のC++のランタイムがサロゲート対応できてないわけだし。

それはそれとして
自分的にはUTF16とUTF8の変換はコストが低いと考えている。
なんでかというと、マルチバイトのアプリケーションが末尾AのAPIを呼んだ時に
カーネル側での変換の対象になっていると考えるし、
それでいて今まで問題になっていないから。

586:デフォルトの名無しさん
14/11/05 07:35:22.74 9E/cXL42.net
マルチプラットフォームならUTF8やろね。
Windows氏ね

587:デフォルトの名無しさん
14/11/05 14:55:13.19 C/jbA3HR.net
Windows、UTF8がデフォの文字コードになればかなり楽になりそうだな。

588:デフォルトの名無しさん
14/11/05 17:30:58.35 5alChkxa.net
コンソールに関してはUTF8化も不可能ではないらしい。
ただ、既存のコマンドとかの整合性が問題。

589:デフォルトの名無しさん
14/11/05 17:32:35.49 9E/cXL42.net
「楽さ」ではなく気になるのは「速さ」では?
Windows氏ね

590:デフォルトの名無しさん
14/11/05 21:07:16.47 pM6wUNVX.net
>>580
特定のプラットフォームに「氏ね」言う奴がマルチプラットフォーム語るか。

591:デフォルトの名無しさん
14/11/05 21:42:16.61 5alChkxa.net
WindowsユーザーはWindowsが好きで使っているわけではない。
Macユーザーは宗教で使っている。
Linux/bsdユーザーはソースコードを蹂躙するために使っている。

592:デフォルトの名無しさん
14/11/05 23:18:38.50 hGDSCPPH.net
サロゲートペアなんかよりUnicode正規化の方が
よっぽど実際的な問題だと思うんだが

593:デフォルトの名無しさん
14/11/05 23:28:46.45 5iseFbl1.net
濁点を分割するOSXは死んでほしいよね

594:デフォルトの名無しさん
14/11/06 11:07:16.22 ElrQPnL2.net
辞書順の文字列比較さえできないlocaleの実装がクソなLinuxは死んで欲しいよね

595:デフォルトの名無しさん
14/11/06 11:37:03.69 5j6hC+wL.net
サロゲートなんとか「シフトなんとかがやられたようだな・・・」

596:デフォルトの名無しさん
14/11/06 12:48:03.08 QHCs9rG1.net
マルチプラットフォーム目指すと全ての環境に死ねって思うようになる悲劇

597:デフォルトの名無しさん
14/11/06 16:09:06.32 M2Yo7uIT.net
つまり日本語が敗戦とともに氏ねばよかったんだよ

598:デフォルトの名無しさん
14/11/06 16:14:45.84 pZw/zM7a.net
志賀直哉かよ

599:デフォルトの名無しさん
14/11/06 22:56:57.44 Lo7NS+Dz.net
UTF8対応はリテラルと基本操作だけ。
ここらへんは5.4とかからかなあ。
そうするとC++でコンパイルしつつ外付けで
boost_regex.matchというような関数を用意しろって感じかなあ。

↓これだもんね。
static int singlematch (MatchState *ms, const char *s, const char *p,
const char *ep) {
if (s >= ms->src_end)
return 0;
else {
int c = uchar(*s);
switch (*p) {
case '.': return 1; /* matches any char */
case L_ESC: return match_class(c, uchar(*(p+1)));
case '[': return matchbracketclass(c, p, ep-1);
default: return (uchar(*p) == c);
}
}
}

600:デフォルトの名無しさん
14/11/07 07:19:30.78 m1y+Jxyj.net
>>593
UTF-8だからこそsinglematchでもなんとか実用になるんじゃないかな?
utf8.charpattern も一応は用意はされているし。
もちろん、string.reverseとか使えないのもあるけど。

601:デフォルトの名無しさん
14/11/07 08:11:23.32 TOsxLUmk.net
欧米の2chでは、濁点だの絵文字だの
日本人は余計なことばかりしやがるよな、とかいわれてんだろうな

602:デフォルトの名無しさん
14/11/07 12:46:24.98 s2pGHogx.net
濁点で余計なことしたのは外人やで

603:デフォルトの名無しさん
14/11/08 17:07:11.07 OPiyaoeS.net
余計なことをする原因は八方美人

604:デフォルトの名無しさん
14/11/12 00:46:15.46 0RjVbG4l.net
autotouchで画像を探してタップさせたいのですが、上にあるfindImageを使ってもうまくいかないです。
他に画像を探す方法はないでしょうか?

605:デフォルトの名無しさん
14/12/10 00:35:14.86 If47AJ4g.net
LuaとかSquirrel、AngelScriptが使える環境で、boost使えない環境ってあるのかな?

606:デフォルトの名無しさん
14/12/10 09:29:30.82 5IiOJn2a.net
ソフトウェア環境の問題で使えないケースは少ないだろうが
開発チームのルールの面で使わせないケースはありそうだ

607:デフォルトの名無しさん
14/12/11 12:44:17.85 vUqbLqkU.net
>>600
boostが使えない環境じゃなくて、色々な都合でboost使っちゃダメな環境があるわけか…

608:デフォルトの名無しさん
14/12/15 08:18:50.09 njR4rCHR.net
Lua 5.3.0 (rc0) released

609:デフォルトの名無しさん
14/12/19 02:51:01.25 ouKpIS27.net
moonsharpというluaを入れてみたんですが、
c#のnamespaceやstaticなクラスをバインドするにはどうすればいいのでしょうか?

関数であれば以下のように登録できたのですが、
lua.Globals["Log"] = (Action<string>)UnityEngine.Debug.Log;

UnityEngineのようなnamespaceを渡し、
script内で UnityEngine.GameObject.Find("obj")
みたいに使いたいのですが

610:デフォルトの名無しさん
14/12/22 00:19:17.53 ZmRaQmm9.net
>>603
ざっと眺めてみたけど
その程度の事は同じように出来る

ただ
foo()
foo(int)
foo(string)
などのオーバーロードはどうするのかが疑問
動的に型チェックして振り分けてとかだと正直使い物にならないと思う

611:デフォルトの名無しさん
14/12/22 01:19:08.37 D1rmXNgC.net
>>604
使いながらマニュアル読んで使い方が分かってきました。

オーバーロードに対応してないクラスは扱うことができませんでした。
いくつか制約があるようです。

C#のオブジェクトを簡単にluaから使えるのかと思ったら、
そう簡単にはいかないのですかね。

そういうのはラッパークラスを用意して、
MoonSharpを意識した設計しないといけないようです。

つい新しいものに手を出したけど、他のC#系のluaはどんな感じなのかしら

612:デフォルトの名無しさん
14/12/22 01:19:52.78 D1rmXNgC.net
× オーバーロードに対応してないクラスは扱うことができませんでした。
オーバーロードに対応してませんでした。

613:デフォルトの名無しさん
14/12/26 08:14:14.37 aFXoC3vZ.net
Lua 5.3.0 (rc2) released

614:デフォルトの名無しさん
15/01/03 21:35:53.41 x6OMspk0.net
Lua 5.3.0 (rc3) released

615:デフォルトの名無しさん
15/01/03 22:19:20.82 FqikSySO.net
更新内容に少しでも触れてくれると嬉しいんだけど・・・

616:デフォルトの名無しさん
15/01/03 23:14:01.09 KF2R3l6f.net
RCの段階で特筆に値する更新なんてないだろ
というかあったら困る

617:デフォルトの名無しさん
15/01/04 02:23:10.16 AdLaa9R2.net
5.3楽しみどすね

618:デフォルトの名無しさん
15/01/04 06:44:30.95 FkvmMkr7.net
RCでの更新はコンパイル警告を無くした、とかばっかり。 安定してるんじゃないかな。
新C-APIの lua_rotate() が地味に便利。

619:デフォルトの名無しさん
15/01/04 08:29:47.65 LjhOLja4.net
>>609
>>562

620:デフォルトの名無しさん
15/01/08 07:02:44.50 HB0/eqgI.net
Lua 5.3.0 (rc4) released Happy New Year!

621:デフォルトの名無しさん
15/01/13 08:21:09.63 rG5Z7jyu.net
Lua 5.3.0 released ? Happy New Year!

622:デフォルトの名無しさん
15/01/14 08:19:11.90 G/8s1bPT.net
おめでとうございます。

623:デフォルトの名無しさん
15/01/19 13:17:04.98 i0MAuzuq.net
Windows系なら JsRT でブラウザ無しの js が使えるな。 node.js でもいいけどさ。
組み込みも js で十分な気がしてきた。

624:デフォルトの名無しさん
15/01/19 19:23:58.96 ax3bxEw/.net
JsRTではどうやってCからスクリプト内の変数とか操作するの?

625:デフォルトの名無しさん
15/01/19 20:11:10.33 i0MAuzuq.net
node.js と比べるのはおかしいな。比べるなら v8 単体か。

>>618
ハンドル (voidポインタ) 経由。 グローバル変数のテーブルもCから操作できる。
API は v8 と似ているけど、さらに簡略化されている感じ。
Luaとは違ってスタック操作を意識する必要は無い。 Cスタックを舐める系のGCっぽい。
C関数や、生データをファイナライザ付きでスクリプトに登録もできるし、
スクリプトの変数をCからキープしたいときの AddRef() もある。

後発なだけあって、いい感じに整理されているように見えるよ。

626:デフォルトの名無しさん
15/01/19 22:22:42.69 XVOLeUIA.net
スタック操作は不要で参照カウントは必要という案は何回も聞いた
みんなLuaと比較した情報は出すけど何個もある代案同士で比較した情報がまだ出ない
だからまだ時期が悪いかなと思う

627:デフォルトの名無しさん
15/01/20 06:19:15.63 MIZOkYTq.net
スタック操作は覚えることが少ないから習得が早くて便利だけどね

628:デフォルトの名無しさん
15/01/20 07:11:39.79 Qwim/1/Y.net
LuaのC APIへの不満って、スタック操作と、スクリプトオブジェクトの寿命延長 (luaL_ref)
の2つが大きいいんじゃないの? 止められるんなら止めたいでしょ。
もちろん、Luaはスタック操作が明示的だからこそ、移植性が高いんだけど。

>>620
参照カウントはあくまでCからのキープ用で、スクリプト内だけならマーク&スイープ系のGCのはず。

629:デフォルトの名無しさん
15/01/20 17:48:36.34 MIZOkYTq.net
奇しくも自分で述べてるように、
スクリプト側からは死んでるようにみえる値を
C側では使ってるから生きてるよ、ということにするには
参照カウントよりもLuaL_refの方が考え方として分かりやすいと思うけど。

630:デフォルトの名無しさん
15/01/20 18:44:09.44 GWZYH+JO.net
スクリプトオブジェクトの寿命延長って?

Luaは知らないけど
V8ではC++関数のスコープから抜けた時点でJavaScriptのオブジェクトを解放出来るようになっている

だからV8ではC++関数内で使ったオブジェクトが中々解放されなくなるという事はない

関数を終えてもずっと保持したい場合はPersistentにコピーするようになっている

631:デフォルトの名無しさん
15/01/20 18:56:01.81 MIZOkYTq.net
いや、つまり嫌いと思う人は嫌い、好きと思う人は好きというだけの話。

632:デフォルトの名無しさん
15/01/20 19:33:29.39 Qwim/1/Y.net
確かに大した差ではなかったな。
自分はどうもオブジェクトそのものではなくCookieを保持している感に戸惑ったが、
気になるならラッパーを一枚噛ませば十分だしな。

633:デフォルトの名無しさん
15/01/22 18:40:30.34 dZXZ9W3g.net
整数型がデフォルトになったからより速くなったな

634:デフォルトの名無しさん
15/01/22 19:34:31.74 QfKlzsaM.net
JsRTで遊んでみているが、
IDispatchをVARIANT経由でJavaScript側に公開できることがわかった。
COMの資産を手間無く使えるので、その手の再利用が必要な場合は便利かもしれない。

なお、WebBrowserコントロールが使っていると思われるスクリプト環境はさすがに取得できないようだ。
無理やり連携されるなら window.external を介してこれも IDispatch 経由でやり取りすることになる。

悪くない。 Microsoft も .NET とか捨てて、JsRTとTypeSciptで行けばいいんじゃないかな・・・?

635:デフォルトの名無しさん
15/01/26 19:41:40.28 +446Cocf.net
Squirrel 3.0.7 stable
Squirrel 3.1 RC1
Released January 10, 2015

さっき気付いた。

636:デフォルトの名無しさん
15/01/26 20:46:44.47 5nfZyfP4.net
lua5.3の日本語マヌエルマダー?

637:デフォルトの名無しさん
15/01/26 21:34:59.26 Sajs+zmm.net
言い出しっぺの法則

638:デフォルトの名無しさん
15/01/28 05:31:27.96 SR5teQWH.net
俺が翻訳するかもしれないからあと100年くらい待ってくれ

639:デフォルトの名無しさん
15/01/28 23:18:45.09 arg2MK+/.net
「日本語マニュアル出ないかなー」と言いながらずっと使ってるとそのうち英語でも普通に読めるようになって必要なくなる罠。

640:デフォルトの名無しさん
15/01/29 08:12:30.79 FQssNh0T.net
5.3対応の書籍マダー?

641:デフォルトの名無しさん
15/01/29 08:16:42.32 vMBFyrLx.net
「マニュアルだけじゃわからんなー」と言いながらずっとソースコードを読んでいるとそのうち先にソースにあたるようになって書籍が必要なくなる罠。

642:デフォルトの名無しさん
15/01/29 08:43:48.85 FQssNh0T.net
それらで得た知識を書籍にして印税生活をするにだ

643:デフォルトの名無しさん
15/02/01 00:18:48.30 ARaZzTfJ.net
android版のautotouch使い物にならんなあ
lua部分はともかく独自追加した所のデバッグやってるんだろうか
findimage使った瞬間に落ちる、サンプルのスクリプトを使っても落ちる…

644:デフォルトの名無しさん
15/02/03 08:45:44.97 AqPQb7sP.net
このスレで既に紹介されたか知らないけど
ObjectScript
URLリンク(github.com)
URLリンク(objectscript.org)
URLリンク(www.codeproject.com)
Luaっぽい作りで構文はC/JavaScript系で、Squirrelとキャラが被ってる。
単純な整数計算ベンチの速度だと Lua : Squirrel : ObjectScript = 3 : 2 : 1 (遅い) くらい。
実行バイナリのサイズは Lua : Squirrel : ObjectScript = 2 : 3 : 4 (でかい) くらい。
安定性や採用事例はよくわかんない。ちなみにCachéとは何の関係も無い。

645:デフォルトの名無しさん
15/02/04 06:17:03.56 Eqb0TJqD.net
CoreCLR がオープンソースになったけど簡単に組み込めたりするのかな

646:デフォルトの名無しさん
15/02/07 10:47:45.90 3mcYxCt2.net
perlのkeysみたいなの 無いの?

647:デフォルトの名無しさん
15/02/07 11:10:55.67 kuZAKFeA.net
>>640
Luaの話? いちおう組み込み系全般のスレなので……
標準では用意されていない。 言語機能系の追加ライブラリを使えば良いんじゃない?
まぁ、自作しても for ループを廻せば済むけど。
- stdlib : URLリンク(lua-stdlib.github.io)
- Underscore.lua : URLリンク(mirven.github.io)

648:デフォルトの名無しさん
15/02/08 11:46:47.96 8cE0HyuH.net
Lua書く時のエディタって何使ってるの? Lightroomのプラグイン書きなんだけど。

649:デフォルトの名無しさん
15/02/08 12:28:55.31 5UGjVIn5.net
URLリンク(lua-users.org)

650:デフォルトの名無しさん
15/02/08 17:36:40.20 zqGmBD5H.net
Intypeってのはどうなん?

651:デフォルトの名無しさん
15/02/16 22:29:33.28 JBQ+Owrp.net
luaでファイル保存の時に日付.txtみたいに自動でするのはどうすればいいですか?

652:デフォルトの名無しさん
15/02/16 22:40:47.19 yzFhOePD.net
>>645
Luaからファイルを作っているなら os.date(書式) .. ".txt" でファイル名を生成すれば良いのでは

653:デフォルトの名無しさん
15/02/16 23:48:51.20 JBQ+Owrp.net
出来ました、ありがとうございます。

654:デフォルトの名無しさん
15/02/19 19:51:04.59 Qw0v9eHu.net
Luaって存在今日知った。
自作計算プログラム用のスクリプトとしてTclを組み込んで使ってきたけど、
Luaってもう仕様安定してるの?
浮動小数点の実装はちゃんとバイナリ?

655:デフォルトの名無しさん
15/02/19 20:22:48.55 YKDWyqEz.net
>>648
本体の仕様は概ね安定している。 他の言語と比べてもそれほど差は無いと思う。
Lua 5.3 では、普通にビルドすると、浮動小数点は double、整数は int64 になる。
内部的な値の表現は タグ + union { double; int64; void* } という素直な実装だよ。
正規表現だけは注意がいるかもしれない。 文字の並びを ( ) で扱えない。
自分は C++ regex を使う別実装を自前で追加してる。

656:デフォルトの名無しさん
15/02/21 12:07:52.58 ftMcKIol.net
>>649
ありがとう。
awkみたいな実数=文字列みたいなダサ実装じゃないか、さすがに。
ちょっと活用を検討してみます。

657:デフォルトの名無しさん
15/02/23 19:05:53.37 PUEtXCiM.net
AngelScript|Д`)<AngelScript2.30.0記念カキコ&nbsp;
メモリ管理の改良とか、キャスト用メソッドの登録方法が変わったとか色々変更あるっぽい。

658:デフォルトの名無しさん
15/02/23 23:12:44.33 2B41jSVI.net
        (´\r-、     ┼         +     /`/`)    +
     ┼   (\. \!              *     // ,/)  *
  +     * (ヽ、   \ +  *          /   /)   +
      ⊂ニ      )        *   +  (     ニ⊃
  *  +  ⊂、     (   ∩___∩   ノ     ⊃   +  *
         (/(/   ヽ  | ノ     ヽ /    、)ヽ)  ┼
    +        (/     ∨  ●   ●レ /⌒) 、)ヽ)
     *       (/'   |   ( _●_) ミ'  /、)、)´       +
         +    (/'ヽ 彡、   |∪| ノ /     AngelScript!!
     +            / __ヽノ  /  *      +
       ┼        (___) /      +
               /     /
               (_ ⌒丶..
                | /ヽ }.
                  し  ))
                    ソ  トントン

659:sage
15/03/17 22:57:10.71 yVREPXol.net
flashairいじってる人いる?

660:デフォルトの名無しさん
15/03/17 23:14:59.23 Wb8shGuw.net
>>653
AS3は組み込めないだろ・・・

661:650
15/03/17 23:25:25.06 yVREPXol.net
まあまあ^^;
luaでio.writeでSDカードに書き込めるかと思いきやなんか挙動が怪しい・・

662:デフォルトの名無しさん
15/04/11 22:52:38.83 L0A+zZu9.net
連想配列の要素数を返す関数(table.maxn)みたいなものってありますか?
tbl[]
tbl[ "a" ] = data1
tbl[ "b" ] = data2
tbl[ "c" ] = data3
#tblやtable.maxn(tbl)をやっても「0」が帰ってきてしまいます。
ハッシュの場合、格納されている要素数を返すものはないのですかね
ざっと検索して調べた感じそれっぽいのはありませんでした

663:デフォルトの名無しさん
15/04/11 22:59:40.53 L0A+zZu9.net
table.maxn(tbl)
テーブルtblの持つ要素のキーのうち、正の数値(FIXNUM)であるものの中で最大のものを返します。
tblが正の数値(FIXNUM)のキーの要素を持たない場合は0を返します。
ってかかれてるからpairsで回して数取得するようなやり方しかないかもなあ・・。

664:デフォルトの名無しさん
15/04/11 23:05:44.47 L0A+zZu9.net
とりあえずこんなかんじで回避することにしました
何か他により良いやり方があれば教えて下さい
function get_hash_count( hash )
local cnt = 0
for key, value in pairs(hash) do
cnt = cnt + 1
end
return cnt
end

665:デフォルトの名無しさん
15/04/12 00:40:05.35 eLW2DJDr.net
>>658
それが一番速いと思います
luaのテーブルは厳密な要素数を追跡してないのよ
値をスカスカに配置して列挙時に存在チェックする

666:デフォルトの名無しさん
15/04/12 02:22:26.48 ubi9S/wo.net
>>659
ありがとうございます
luaの仕様的に他に良い方法はないのですね

667:デフォルトの名無しさん
15/04/25 21:53:05.10 udlJJGWW.net
>>1
組み込み系言語ってファームウェア用かと思ったwww

668:デフォルトの名無しさん
15/04/27 08:43:41.87 9sNRGOg0.net
質問失礼します。
ソフトにLuaを組み込んでユーザーにLuaスクリプトを作ってもらおうと思っています。
そのLuaスクリプトを他のユーザーにばらまかれるとセキュリティ上危なくなるので困っています。
Luaで書けるファイルIOやネット上のダウンロードなど、危なそうな機能だけ無効化したいのですが可能でしょうか?
分かる方、よろしくお願いします。

669:デフォルトの名無しさん
15/04/27 09:18:48.10 18wKNGsP.net
>>662
・不必要な標準モジュールは組み込まない。
・モジュールの中に不必要な関数がある場合は同名の関数を作ってオーバーライドしてしまう。

670:デフォルトの名無しさん
15/04/27 09:20:47.53 18wKNGsP.net
同名の関数を作る、というよりファンクション型の変数に代入し直すというのが正しいか

671:デフォルトの名無しさん
15/04/27 11:51:04.49 RhUk/Sb2.net
io系 file系 debug系、os.systemなどをlua本体のソースから外す。
requireのうち、c系dll読み込みも外す。

672:デフォルトの名無しさん
15/04/27 14:01:37.37 9sNRGOg0.net
>>663
>>665
塞ぎ忘れたらとんでもない事になりそうですね。。。
がんばってみます。
ありがとうございました。

673:デフォルトの名無しさん
15/04/27 18:39:19.42 RhUk/Sb2.net
Luaは本体のcソースの段階で、追加したり削除されたりすることを念頭において
作られてるので、めちゃくちゃ簡単に追加や削除ができるよ。
やり始めたらあまりに簡単でびっくりするとおもう。
最悪上記の消したいlua関数のregisterの処理だけl***lib.c系からコメントアウトした上で、
luaインタプリタを本体アプリにスタティックリンクするだけで、それなりに仕組みを深く理解している人以外はイタズラしにくくなる。

674:デフォルトの名無しさん
15/04/27 20:13:20.63 ByjLANN5.net
-- preload.lua
io = nil
...
とかを用意して
ユーザースクリプトを読む前にdofile
中身が決まったらdostringでハードコードする
ってのが簡単

675:デフォルトの名無しさん
15/04/27 23:36:05.71 V1hm5/yh.net
5.2以降は意図的に読み込まないと標準ライブラリとは使えないよ。
Ubuntuとかはまだ5.1だったりするのかな

676:デフォルトの名無しさん
15/05/03 17:51:04.86 R+xSVf6m.net
>>668
わざわざそんなことするより、読み込み部コメントアウトした方が
簡単だろw
モジュール単位、関数単位で、1行ずつ「追加・削除はご自由に」って
感じで全部列挙されてんだから。

677:デフォルトの名無しさん
15/05/03 18:10:07.04 IVZoCitV.net
殺したい関数型変数に新しい関数を代入するだけだってばさ。
何でわざわざ改造せねばならんの?

678:デフォルトの名無しさん
15/05/03 18:16:54.02 hj7OiJXS.net
まあまあ
Lua処理系を勝手に改造できる(してもいい)環境でないとそもそもできないね

679:デフォルトの名無しさん
15/05/04 07:02:11.02 Sl6NKpln.net
lua処理系を全く改造しないって無理がないかなぁ?
exit とかが数箇所入ってる時点で
組み込みで等でコンパイル済ライブラリを
そのまま使うのは怖すぎると思う。

680:デフォルトの名無しさん
15/05/04 07:28:47.12 ZL3JUBSp.net
改造前提だろう
requireもマルチバイト文字を含むパスを扱えないし (win環境)
本体と比べてライブラリの品質は良くない

681:デフォルトの名無しさん
15/05/04 07:51:01.81 sbqo/+Tp.net
混乱するので659への回答と他の話題は分けていただけると助かります

682:デフォルトの名無しさん
15/05/04 08:38:47.22 Sl6NKpln.net
>>675
だから、
ソースとか全部自由になるのなら、ベストはC層で
・不要なライブラリのロードを消す。
・package.cpath を消す。 or requre 自体不要なら消す。
・ソースから本体アプリにLuaごろスタティックリンク
これがデフォルトよりサイズも小さくスピードもアップする上に、
いたずらの可能性も限りなく0
LuaでnilにしたのをCへdostringで=といったのは、
一部を手抜きで代替するという案であって
決してベストなものではない。
スピードが遅くなったり実行ファイルにゴミは残るが、
そういう手の抜き方もあるよ、という話。

683:デフォルトの名無しさん
15/05/04 22:44:21.04 qi4175C9.net
autotouchhでゲームのリセマラマクロ作ってるんですけど
iosのアプリ固有ID?
//var/mobile/Containers/Data/Application/********/Documents
の********の部分の取得方法がわからなくて困ってます。
プログラミング自体初心者で一月ほど調べてるけどよくわからない言葉だらけで・・・
何かアドバイスくださいm(__)m

684:デフォルトの名無しさん
15/05/04 23:07:02.98 8Z+6LqT8.net
お前向いてないからもうやめとけ

685:デフォルトの名無しさん
15/05/04 23:17:09.78 qi4175C9.net
そんなに簡単なんですか・・・
すみません・・・
最後に是非教えてください

686:デフォルトの名無しさん
15/05/05 12:42:12.67 KszErmBE.net
AppInfoってアプリ入れてみ
これでわかんなかったら本当にやめろ

687:674
15/05/06 08:00:28.72 uYsfVS/M.net
いや、調べ方はわかるん


688:です、コードでどうすればいいかがわからないんです。 マクロ自体は完成しているんですが、アップデートとかのたびに変わるみたいで 手作業で書き直してるんでそれをどうにかできればなと......



689:デフォルトの名無しさん
15/05/06 11:08:53.11 /KG0Gdz0.net
ios固有なのか、そのアプリ固有なのか、
luaに依存する処理なのか?
なんとなくスレ違いの部分で悩んでいる感がある
文字列やファイルの処理ではないんだろ?

690:デフォルトの名無しさん
15/05/06 11:18:37.36 iq3C3Ifp.net
>>681
URLリンク(qiita.com)
これじゃねーの?

691:デフォルトの名無しさん
15/05/06 14:09:18.09 Om2we3tL.net
>>681
そのフォルダ名はアプリの構成かわるときにランダムに決定されるので、そのアプリ自身以外からは基本的には特定できない仕組みになってる
Data/Application/*** の下に、なにかしらアプリを特定できるような情報が入ったファイル(たぶんInfo.plistとか)があるだろうから、それを全部探索して読み込んで目的のアプリを探す、以外の方法は無い

692:デフォルトの名無しさん
15/05/06 15:34:43.00 uYsfVS/M.net
>>684
そうなんですね、ありがとうございます。
どこかに情報ないかといろんなファイルをtextで開いてたのですが見つからないはずですね
ありがとうございました。

693:デフォルトの名無しさん
15/05/16 00:11:08.39 yj1J+1ps.net
定義したあるテーブルのメソッド一覧を取得することはできますか?
player = {}
function player:Attack()
end
function player:Jump()
end
上記のような定義があり、
"Attack"と"Jump"のキーとその関数をペアで取得したいのですが

694:デフォルトの名無しさん
15/05/16 00:33:56.90 nBVK7qH/.net
Lua自体にはメソッドという分別は無いので関数かどうかで判断するだけだな
for k,v in piars(player) do
if type(v) == "function" then
printf(k, v)
end
end

695:デフォルトの名無しさん
15/05/16 00:48:49.46 yj1J+1ps.net
お~
できました~
かゆいところにきちんと手が届いてくれていい言語ですねぇコレ
ありがとうございます。

696:デフォルトの名無しさん
15/05/18 06:50:19.69 QWumnvsF.net
すう様はきちんと考えながら英語を喋ってるよ。
あれはカンペとかじゃない。

697:デフォルトの名無しさん
15/05/19 14:34:42.08 dht99EFe.net
Luaで悩んでいます。ご教示お願いいたします。
下記のようなテキストの入った複数の配列があり、
tbl01={"a","b","c"}
tbl02={"d","e","f"}
tbl03...
ストリング型のstrという変数に"tbl"という文字列が入っています。
やりたいことは、文字列型の値を何とか加工してtblの要素にアクセスしたいんです。
str[1]
とするとエラーが出ますし・・・(まあそうですよね)
強引にtable型に型変換できないかな?とか悩んでいます。
文字列しか受け取れない場合、複数ある配列にアクセスするには
どのようにすればよろしいでしょうか?
詳しい方教えてください。お願いします!

698:687
15/05/19 14:37:23.12 dht99EFe.net
↑すみません、間違えました。
strの中に入っている文字列は"tbl"ではなく"tbl01"としています。
いずれにせよ無理ですが…

699:デフォルトの名無しさん
15/05/19 16:19:59.83 Nw+B6083.net
>>690
string.sub() or .byte()
1文字ずつ処理するのはC系に比べて苦手。
代わりに正規表現が使えないか要検討。

700:デフォルトの名無しさん
15/05/19 16:23:48.21 26zc2bnI.net
微妙にエスパー能力が必要な質問だが、こういうことけ?
local function getTableByName(name)
 local tables = {
  tbl01 = {'a', 'b', 'c'},
  tbl02 = {'d', 'e', 'f'},
 }
 return tables[name]
end
local str = 'tbl01'
local t = getTableByName(str)
print(t[1])

701:デフォルトの名無しさん
15/05/19 16:28:09.88 Nw+B6083.net
>>690
違うな。質問の意図を取り違えていたかも?
str[1]の代わりになるのは >>692 だが、
元々の目的が「変数に入っている変数名を経由したアクセスがしたい」ならば _G を使う:
str = "tbl01"
assert(_G[str] == tbl01)
tbl01 等がグローバル変数、ローカル変数、他テーブルの要素で処理が違うものになるから、これでダメならまた聞いてくれ。

702:デフォルトの名無しさん
15/05/19 22:19:05.65 dht99EFe.net
>>692
>>693
お二方、ありがとうございます!
エスパーみたいな質問になってしまいましたね。すみません。
実現したいことの詳細をより細かく記載します。どうしても実現したいので。もう3日悩んでます。
ゲームを制作しています。
ゲームエンジンからluaを呼んでluaで処理させることができるのですが、
ゲームエンジンの仕様でlua側に渡せる値が文字列のみです。
luaで何をしたいかというと、上記のように大量にテーブルを作って中身も代入しておきます。
すべて文字列のデータです。
ゲームエンジン側から①文字列②テーブル名の二つの値を渡します。(もちろん両方文字列でしか渡せません)
その二つの値がlua側に渡ったら、②を使ってテーブルを探し、①を使ってそのテーブルの中に
①と同じ文字列があるか比較します。
文字列があったら1を返して、なかったら2を返す…ということを実現したいのです。
>>690の例で行くと、ゲームエンジンから①"a"と②tbl01をもらって、lua側のtbl01をforで回して
探していけばいいや…と思っていました。しかし、
strにtbl01が入っていたとして、
for i=1 , table.maxn(str) , 1 do
…なんてことをすると、文字列なのでエラーが返ってきますorz
いろいろ試してみてstr[i]なんてことまでやってみる始末。もちろん動


703:かないですが。 そもそもluaって動的に型を決めてくれるので明示的にこちらから「こいつはtable型だよ!」 って指定できないんですね。(java使っている者でして…) 説明不足なら捕捉します。後出し申し訳ありません。何卒よろしくお願いいたします。



704:デフォルトの名無しさん
15/05/19 22:35:28.81 UWcSl4nD.net
>>695
table型だよって指示できないもなにも、変数strの中身はあくまでstringなんだから、Javaで同じことやる場合でもHashTableかなんか使うよね?
つまり、>>694 がやりたいことなんじゃないの?
table.maxn(_G[str]) でできると思うよ

705:デフォルトの名無しさん
15/05/19 23:29:17.09 dht99EFe.net
>>696
やりました!!!
要素にアクセスできましたーー!
そのまま文字列一致の判定をして、フラグ1が返ってきました。
これでゲームの核の部分が作れました。
そもそも_Gの使い方を間違ってました…
しかしLuaって色々弄って思ったのですが想像以上に柔軟なんですね。
お三方、親身に教えてくださってありがとうございます。

706:デフォルトの名無しさん
15/05/25 21:08:36.02 sCH5oSB/.net
質問失礼します。
OSX 64bit Unity という環境で Lua を使用しています。
Windowsでは正常に動くのですが、OSX 64bit で動かすと LuaDLL.luaL_newstate(); で null が返ってきて困っています。
パッケージを見ると Mac (x86 only) と明記してありました。
OSX 64bit でも動かしたいのですが、どうやれば良いでしょうか?

707:デフォルトの名無しさん
15/05/25 21:17:17.45 WFHyWYJ8.net
64bitなdllを別途準備しないとダメじゃね?

708:695
15/05/25 21:18:45.04 sCH5oSB/.net
>>699
そうですよね。。。
makeは通ったんで、頑張ってみます!

709:695
15/05/28 19:45:28.97 52beXCpy.net
詰まりました。。。
LuaJIT-2.0.2を利用しているのですが、OSX用のuniversal binaryで出力する方法が分かりません。
Luaの速さに全体重を乗っけてるんで、今更別の言語への切り替え等は考えられません。
分かる方、ぜひ教えてください。

710:デフォルトの名無しさん
15/05/29 01:55:02.89 p/ahFCvT.net
個々にビルドした場合はlipoというツールで合体させるらしい?
URLリンク(www.google.co.jp)

711:デフォルトの名無しさん
15/05/29 02:07:51.90 p/ahFCvT.net
luajitではなく、luaならhomebrewとかみるとuniversalのオプションがあるね。
brew install lua --universal
>698も根が深そうな。。。
URLリンク(www.google.co.jp)
URLリンク(gist.github.com)

712:デフォルトの名無しさん
15/05/29 02:13:23.25 p/ahFCvT.net
とおもったけど、普通に64bitになっていた。
URLリンク(github.com)
$ lipo -info /usr/local/opt/luajit/bin/luajit
Non-fat file: /usr/local/opt/luajit/bin/luajit is architecture: x86_64

713:デフォルトの名無しさん
15/05/29 09:55:09.44 2a3TZL/2.net
>>702-704
ありがとうございます!
LuaJITの32bit版ライブラリと64bit版ライブラリを出力して、lipoというソフトで合体という事ですよね?
試行錯誤してみます!

714:695
15/05/29 15:29:21.86 2a3TZL/2.net
>>698も根が深そうな。。。
まさにコレでした。
問題は2つあったんですね。
もうお手上げです。
とりあえず勉強になりました。
ありがとうございました。

715:695
15/05/30 02:16:04.85 WJHjPFg2.net
ちょっとレスにミスったんで、訂正
>>703
>698も根が深そうな。。。
↑まさにコレでした。

716:デフォルトの名無しさん
15/09/14 16:28:17.35 SxkHJw7D.net
最新のsnes9xでluaを読み込む方法を教えてください
URLリンク(pastebin.com)を動作させたいです

717:デフォルトの名無しさん
15/09/30 15:13:43.25 gLrxUsPl.net
Nekoって一応プログラミング言語だったのか
Haxeのプログラムを動かすVMとだけ思ってた
URLリンク(en.wikipedia.org)(programming_language)

718:デフォルトの名無しさん
15/09/30 15:57:26.40 2TkwnPLU.net
新進気鋭のプログラミング言語「Neko」ってなに?
URLリンク(news.mynavi.jp)

719:デフォルトの名無しさん
15/10/06 22:32:11.35 uxUTfTFS.net
受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点

720:デフォルトの名無しさん
15/10/21 00:53:22.02 Kl04gCQo.net
Ravi
URLリンク(github.com)
lua5.3互換、静的型付け追加、jit

721:デフォルトの名無しさん
15/10/21 01:29:46.09 +L1p2dWm.net
きみのためなら死ねる。Ravi!

722:デフォルトの名無しさん
15/11/02 08:39:42.03 LHJrrN+c.net
FlashAirにLuaが組み込まれてた

723:デフォルトの名無しさん
15/12/07 06:26:50.82 sv1H4v2t.net
duktapeはどうなん?
使ってる人いる?

724:デフォルトの名無しさん
15/12/08 17:05:55.06 yVFhtqC/.net
スマホのマクロアプリのスクリプトがLuaのコードで書かれてるんだけどusleep関数を使うと徐々にズレてくるんだが正確に待機させる事ってできます?
命令としてはタップ、待機、タップの繰り返しなんだけども10回目くらいで目に見えて遅れてる
usleep自体正確じゃなく、1回ズレると以後ズレた地点から待機時間が計算されるからその繰り返しになっていると思う
os.clockで開始時間計って目的のタップまでの待機時間を計算していくしかないかなと思ってるんだけどいかんせん700回以上を計算して行くのは心が折れるので何か方法があれば教えて下さい

725:デフォルトの名無しさん
15/12/08 17:52:14.14 V92FzyIA.net
>>716
luaに限った話じゃないが
次に目を覚ましたい時刻までの差分だけ寝れば?

726:デフォルトの名無しさん
15/12/08 18:05:12.63 yVFhtqC/.net
>>717
os.clockでタップさせたいタイミング全ての時間を取得するって事ですか?

727:デフォルトの名無しさん
15/12/08 18:45:35.86 V92FzyIA.net
>>718
「全ての時間」ってのがよくわからないな。キリのいい間隔ではだめなのか?
例えば 200ms おきにタップしたいなら、
ベース時刻から 0, 200, 400, 600ms …の経過で処理するんでしょ?
で、200ms の処理の際に時計を見て、実際には 205ms の時刻なら、次は 400 - 205 = 195ms だけ寝る。
何かしら負荷がかかって 400ms の時刻に近すぎたり過ぎたりしたら
スキップするなり、数回間隔を狭めて調整する処理も要るかも。

728:デフォルトの名無しさん
15/12/08 23:00:53.20 yVFhtqC/.net
>>719
一定間隔ではないんですよね
止める時間はだいたい4パターンのうちどれか
タップした時の時間と目的の時間を比較する方法があれば良いんですが
一定間隔ズレているなら良いですが徐々に少しずつ遅れているなら結局700回を全て調整していくしかないわけですよね…
コツコツ頑張ります

729:デフォルトの名無しさん
15/12/09 01:20:52.01 uEc6NdFX.net
【 オンラインTCGエディター 】 >>1
デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。
例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っており


730:ながら、 当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。 既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。 バトスピ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、ガンダム・ウォー、ライブオン、ディメンション・ゼロ、カードヒーロー、シャーマン・キングなど のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。 マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。 WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。 設計思想は 《 RPGツクール 》 が良いかな?  他に、優れたエディター有ったら挙げてみて。 個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。 ↓ エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。 ↓ 遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。 なるべく前述3つで可能な再現は全て実装させる方向を目指す。 まぁ努力する・・・ バトスピ、ヴァンガ、バディ、デュエマなど発売済みゲームソフトが存在してるケースはベンダーに研究させる。 ↓ 各社TCGを再現するテストプレイ ⇒ 更に改良や修正。 ↓ 機能制限した下位版を5万円以上で発売 + デュエリ-グ用に改造した上位版でサーバー稼動=営業開始。 ↑ 下位版の改造および商用利用には、別途で当社との契約が必要。 さ~て、製作ベンダー見つけよっと!ww(クス http://wc2014.2ch.net/test/read.cgi/entrance2/1449039272/-18



731:デフォルトの名無しさん
15/12/30 01:11:18.19 TU1EcnmS.net
初心者ですがLuaのサイト行ってダウンロードしたんですけど
インストール出来ません
アドバイスを御願いします(´・ω・`)

732:デフォルトの名無しさん
15/12/30 01:46:15.47 LbvdgCkv.net
>>722
URLリンク(luabinaries.sourceforge.net)

733:デフォルトの名無しさん
15/12/30 05:57:27.20 47mVpj3E.net
>>720
local start_usec = sysyem_usec();
~色々やる~
usleep(sleep_time - (sysyem_usec() - start_usec));
これだけの話じゃないの?
ちなみにos.clockはprogramが使用したCPU時間だからCPUが寝てる間は増えないよ

734:デフォルトの名無しさん
15/12/30 18:30:13.07 Sj5i/aUt.net
>>722
OSがワカランけど
ソースをコンパイルするなら
tar zxvf lua-5.3.2_Sources.tar.gz
cd lua53
make linux or
make macosx or
make mingw or
make posix or
make solaris or
make install

735:デフォルトの名無しさん
16/01/07 20:02:10.72 lAIllFG+.net
Luaは組み込みが簡単だっていうけど
Javaの呼び出しAPI使う方がずっと簡単じゃん
Javaなら書くのにEclipseとか使えるし

736:デフォルトの名無しさん
16/01/07 21:06:07.28 YzB9fcaP.net
コンパイル型の言語を組み込んで何がしたいんだ?

737:デフォルトの名無しさん
16/01/08 08:07:50.80 QEjOaegz.net
「組み込みが簡単」の意味を誤解してるに一票

738:デフォルトの名無しさん
16/01/11 03:28:28.16 Va0MVjV0.net
じゃあJavaをアプリケーションに組み込んでみなよ

739:デフォルトの名無しさん
16/01/11 04:05:21.99 Va0MVjV0.net
luaのスタック操作APIが面倒というのならbind用ライブラリ一杯ある
URLリンク(lua-users.org)
それ使うとJNIが面倒と思えるぐらい便利なのあるよ

740:デフォルトの名無しさん
16/01/11 04:14:11.05 0EvHa66G.net
静的型付きの組み込み言語ってないの?
実行時コンパイルできるやつ

741:デフォルトの名無しさん
16/01/11 04:27:46.70 Va0MVjV0.net
>>731
それってエラーになるの結局実行時だしIDEがサポートしないとメリットなくない?

742:デフォルトの名無しさん
16/01/11 05:37:06.41 0EvHa66G.net
すまん言葉が足りなかった。
そうじゃなくて、実行時コンパイル「も」できるやつと言いたかった。つまり実質Evalを捨ててない静的型付き言語。
というかIDEサポートなくたってメリットあるだろ・・・コンパイル時に型エラー出るじゃん

743:デフォルトの名無しさん
16/01/11 07:27:44.99 H4zd5jav.net
>>712みたいなLLVMバックエンドの奴なら

744:デフォルトの名無しさん
16/01/11 07:39:28.66 H4zd5jav.net
いやそんなの組み込むのは無理か、間違い

745:デフォルトの名無しさん
16/01/11 09:54:45.69 EOECSf3M.net
>>733
JavaScriptを組み込んでTypeScriptで書く
IDEサポートも VisualStudio なり VisualStudio Code なりがある
v8なりJsRTが使える環境なら性能面でもかなり良い選択だと思う

746:デフォルトの名無しさん
16/01/11 17:05:44.51 if9kJcKP.net
>>736
v8をアプリに組み込むのは手間だし(クロスプラットフォームを考えると尚更)
altJs系の言語はeval出来るって要件満たしてない

747:デフォルトの名無しさん
16/01/12 15:56:16.83 pvMT9PCj.net
jsのエンジンってposix系のapiってあるの?
commonjsのnode組み合わせたり必要なんだよね?
v8意外にもあるみたいだけど。
URLリンク(mattn.kaoriya.net)

748:デフォルトの名無しさん
16/01/12 15:58:08.09 pvMT9PCj.net
cljsだとeval出来るようだ。

749:デフォルトの名無しさん
16/01/15 01:33:01.12 9hWfybeU.net
>>733
AngelScript|Д`)ノ<静的型付き言語と聞いて。Anyもあるよ!

750:デフォルトの名無しさん
16/01/19 20:51:03.31 0e0GcKQy.net
PSLってのはどうよ?
俺はスクリプト言語に静的型はそれ程魅力無いと思ってるし実績あるからLuaでいいやってなってるけど

751:デフォルトの名無しさん
16/01/24 13:23:45.64 xtpCszE9.net
>>58
Lua の文法って簡単なんだなーと思って試しにパーサを書いてみてたんだけど、
マニュアルの BNF 通りだと左再帰になってるから無限ループに陥ってしまった。
間接的な左再帰だから俺のへぼい知識では除去できなかった。
実際に Lua の実装では再帰下降してるっぽいからなんとかしてるんだとは思うけど、
左再帰を除去した文法規則の表とかってどっかにないかな?
ソースコード読むしかない?

752:デフォルトの名無しさん
16/01/31 02:54:56.98 kn/5LVuq.net
Lua使ってる人binderは何使ってる?
そんなもん要らん!標準のstack APIで充分だ!って人もどれくらい居るんかな

753:デフォルトの名無しさん
16/01/31 11:34:52.69 Pw2nI7hG.net
わしはstack形にすっかり慣れた

754:デフォルトの名無しさん
16/01/31 23:47:27.75 kn/5LVuq.net
慣れても面倒くさいものは面倒くさくね?
C++のオブジェクトをLuaから使えるようにするだけでもやりたくなくなる

755:デフォルトの名無しさん
16/02/02 07:57:29.11 lmUWOHWt.net
英語より面倒な日本語にもすっかり慣れたしなんとかなるもんだよ

756:デフォルトの名無しさん
16/02/03 23:36:18.56 8yWl5BHB.net
Lua ってパッチ当てないと日本語つかわれへんの?
21世紀にもなってなんでや。

757:デフォルトの名無しさん
16/02/04 00:44:14.34 lRklN/w3.net
>>747
utf8ならそれなりに使える
21世紀にもなってSJISは使ってないんだろ?
とはいえファイル名はOSネイティブの文字コードが要るとか
幾つか注意点や手を入れたくなる所はあるが

758:デフォルトの名無しさん
16/02/04 01:00:10.15 Jx1/Vtha.net
>>747
使えるけど?

759:デフォルトの名無しさん
16/02/04 23:42:25.61 wmCOjGkS.net
SJIS使ってないなんて都合が良いことありえないw
Winだと何しても所詮SJISから逃れることはできん。
むしろSJISに対応してないプログラムの方が大問題だ。

760:デフォルトの名無しさん
16/02/04 23:52:14.71 wmCOjGkS.net
>>747
今の言語だと、ソースをマルチバイトで記述しようが、utf8で記述しようが、
マルチバイト書いたソースから、utf8で書いたクラス呼ぼうが、
変換などソースのどこを探しても1行たりとも表れないのが常識なんだけれども
Luaは変換だらけ。

761:デフォルトの名無しさん
16/02/05 00:44:16.88 FMLvAXOG.net
string型をバイナリ配列として利用しようとするコードが存在する限りもう無理ぽ

762:デフォルトの名無しさん
16/02/05 01:33:38.19 XGMa0UOY.net
swigでsample.iに
typedef struct {
int a;
int b[4];
}hoge_t;
int hogehoge(hoge_t * test);
と書いて swig -lua sample.i 実行で吐き出されるグルー関数を使う場合
luaの記述は
test = require "xxx"
test_t = hoge_t()
test. a =10
result = hogehoge(test_t )
とかすればよいのですが、
test.b[1]=3とか
test.b[2]=4とかするとグルー関数でパラメータチェックで弾かれます。
構造体のポインタ渡しで構造体の中に配列がある場合は
LUA側でどんな記述をすればいいのだろう?

763:デフォルトの名無しさん
16/02/05 01:35:33.28 XGMa0UOY.net
間違えた↑訂正
test_t = hoge_t()
test_t. a =10
result = hogehoge(test_t )
とかすればよいのですが、
test_t.b[1]=3とか
test_t.b[2]=4とかするとグルー関数でパラメータチェックで弾かれます。
構造体のポインタ渡しで構造体の中に配列がある場合は
LUA側でどんな記述をすればいいのだろう?

764:デフォルトの名無しさん
16/02/05 06:22:46.35 pWou2Qho.net
>>750
ANSI 版の API を使ってるやつこそクソ。
正直言って A 付きの Windows API は全部廃止してもいいくらいだ。
UNICODE 版の API 使えよ。

765:デフォルトの名無しさん
16/02/05 08:17:19.47 ToPlCIrz.net
>>755
Luaの話ならstringはchar固定でwchar_t等に変更するのは本体の改造が要る。
Luaのstringは、byte-arrayという名前のほうが適切だと言える。
不適切な変換はしないが、「UTF8として解釈するならutfモジュールを使え」というスタンス。
同様に、SJISに対応したいなら自分でsjisモジュールを作ることになる。
Windowsがsetlocale("UTF8")をサポートしていないのが面倒の原因なんだよな。
他のOSならできるから、もうみんなUTF8に統一して満足しちゃってる。

766:デフォルトの名無しさん
16/02/05 15:39:47.51 brMGa4PB.net
いち早くUnicode()に対応したはいいけど2バイトに収まりきらず、固定長じゃなくなってメリットが何もなくなった上に
他のプラットフォームは軒並みUTF-8になってしまって孤立してしまったが互換性のためにSJISを捨てられないWindowsさん
MSVCで設定とかでUTF-8版のCライブラリ(中でUTF-16に変換するような)を使えるようにしてくれたらいいような気もするんだけど何か問題あるんだろうか

767:デフォルトの名無しさん
16/02/05 16:03:19.95 TvHQKkN9.net
ラテン語圏のやつらが作る言語はいつもこう。

768:デフォルトの名無しさん
16/02/05 19:16:06.06 brMGa4PB.net
ははっ、
RubyのWindowsでの日本語対応がマトモだったと思ってる?

769:デフォルトの名無しさん
16/02/05 19:54:12.16 Jcxd0Fsw.net
Windows切るだけで解決する

770:デフォルトの名無しさん
16/02/05 20:10:36.21 pWou2Qho.net
Windows の API を UTF-8 にすべきだったとは思わんのだよな。
UTF-8 を基本にしてしまうと ASCII コードの範囲内で使う分には対応してようがいまいが使えちゃうから、
対応してない部分が顕在化し難いまま混在してわけわからんようになるのが見えてる。
その点、 UTF-16 と ASCII (ANSI) が混ざったらすぐ発覚する。

771:デフォルトの名無しさん
16/02/05 20:32:40.84 brMGa4PB.net
>>761
へぇ
Windows以外はわけわからんようになってるという主張でございますか?

772:デフォルトの名無しさん
16/02/05 21:00:24.37 I7CO4PTN.net
主要なコードもUTF8じゃなく、OS内部もUTF8じゃなく、標準入出力もUTF8じゃなく、あげく、UTF8にしても世界の文字の一部しか対応できないので
いうような利点はないってことでしょ。
utf8にしても、実際の運営としてはASCIIのような運営範囲なんでしょ?w

773:デフォルトの名無しさん
16/02/05 21:04:55.16 ToPlCIrz.net
>>761 の真意はよくわからんが
char (1 byte) にしか対応していないコードや製品が氾濫するのは困るが
wchar_t (2 byte) にしか対応していないものなら許容できるってニュアンスか?
それもサロゲートペアができて破綻したけどな。
絵文字のせいで目にする機会も無いではないし。

774:デフォルトの名無しさん
16/02/05 21:28:04.79 brMGa4PB.net
>>763
何言ってるのかよくわからんけど
>>UTF8にしても世界の文字の一部しか対応できないので
表現できる範囲はUTF-16も同じなんだが、それもダメって言ってるんだよね?
ってことはつまりSJISとかそれぞれのエンコーディングで適切な処理を行えってこと?
俺はUTF-8のコードポイントの区切りかたは知ってるけど、
他の言語の専用エンコーディングどころか
SJISのコードポイントの区切り方すら知らないわ、
それをプログラミング言語作る人にしかも日本語とかまったく使わない海外の作者に強いるとかできないっすわ。

775:デフォルトの名無しさん
16/02/05 21:36:38.36 TvHQKkN9.net
そんなもん自慢話にもならん。誰それ構わず噛み付いてアホか。

776:デフォルトの名無しさん
16/02/05 21:53:39.03 brMGa4PB.net
誰が自慢話してるんだ?

777:デフォルトの名無しさん
16/02/05 23:17:47.52 AF25xcuE.net
妥協も多いけど現実的だったオリジナルのUnicodeが、世界中のあらゆる文字をひとつのコードで
表現するという無謀な目標を掲げた10646と合流してごみ溜めのようになった。
そんなのに付き合って苦労するのはバカらしいから、基本多言語面だけサポートしてサロゲートペアは
トーフ扱いするのが現実的。どうせろくにフォントも無いし。

778:デフォルトの名無しさん
16/02/05 23:26:52.29 pWou2Qho.net
>>762
コードページの概念を捨てられないという主張。 そりゃ全部 UTF-8 に出来ればベストだとは思うよ。
でも捨てられない以上、下手に混ざってわけわからんようになるよりは混ざったらすぐわかる方がマシって話。

779:デフォルトの名無しさん
16/02/05 23:56:37.35 wLhOEYBg.net
各国のコンソールのコードページも65001じゃないし、65001じゃ
日本語もまともに表示できないわけで。
逆にプログラミング言語ごときが数十億人が使ってる現実的な各文字コードを押しのけて
utf8に全文書統一しろ、今すぐしろとか言っても、相手にされんよ。

780:デフォルトの名無しさん
16/02/06 00:27:48.85 /BZKOehd.net
Unicodeで表現できない文字って少なくとも日本では名前に変体文字使ってる数%がごねてるだけでしょ
数十億人とか盛りすぎ

781:デフォルトの名無しさん
16/02/06 00:47:56.49 /BZKOehd.net
というかSJISには割り当てられててUnicodeで割り当てられてない文字ってあるの?
>>768
最近の携帯電話使ったことないのかい?
>>770
Windows内部はUnicodeで扱ってるからコンソールもUnicodeで表現できない文字は表示できませんよ
WindowsのコンソールをCP65001にしてもまともに表示できないのは実装がタコなだけ
あとメジャーな携帯電話のOSはどちらもUnicodeですけどこれは本当に数十億人が使ってますよ

782:デフォルトの名無しさん
16/02/06 02:13:32.99 bnndf23C.net
iOSは消滅確実だが、Androidは十分残りそうだなぁ。
実装がカスとかいったところで、モノ生産してるデスクトップ85%から占めてるてるものを
否定して見ない振りしてもしょうがない。
逆にビューワー(携帯)なんか資産性がないからどうでもいいよ。

783:デフォルトの名無しさん
16/02/06 03:04:06.56 /BZKOehd.net
話をどこへ持っていきたいのかよくわからんけど元々は、
WindowsがUTF-8をまともにサポートすべきかっての論点だと思ってたけど。だからいまの実装を見ないふりもなにもないよ。
MicrosoftがWindowsでUTF-8をちゃんとサポートししようとしても今と変わらずクソ実装になるって主張じゃないよね?
>逆にビューワー(携帯)なんか資産性がないからどうでもいいよ。
プログラムを動かすのは大多数が持ってるビューワーなわけで、それこそ否定して見ないふりしてどうすんのよ。
今はサーバーはLinuxで携帯はiOS or Androidなわけで、プログラムを実行する環境全体を見るとWindowsなんて少数派だよ。

784:デフォルトの名無しさん
16/02/06 08:26:37.09 X7qr0C1S.net
OSのネイティブ (C言語) では UTF-16 (Windows) と UTF-8 (それ以外) があるけど
今主流の言語 (Java, C#, Swift/Obj-C, JavaScript) のレベルでは
ほぼ UTF-16 に統一された印象があるんだが、この認識は間違っているだろうか?
ファイル入出力では文字コード変換をするのは前提として。
OSうんぬんより、むしろ文字列型がUTF-16でない言語が問題な気がする。

785:デフォルトの名無しさん
16/02/06 12:03:30.10 BlYk2woR.net
結局こういう面倒な問題はグレーにしてるLuaが勝ち組

786:デフォルトの名無しさん
16/02/06 14:43:17.15 8fDg9LDU.net
>(Java, C#, Swift/Obj-C, JavaScript)
その辺の言語はUTF-8が産まれる前からある言語だからな
SwiftはUTF-16じゃないし(もちろん扱えるけど)、goは基本UTF-8

787:デフォルトの名無しさん
16/02/06 15:15:51.79 su9E+X74.net
Ruby ソースコードはコメントで指定、文字列型は内部にエンコーディング情報を持ってる
python 内部表現はデフォルトucs4(WindowsだけUTF-16)
php よく知らんけどググってみる限り統一されてなさそう
というわけでUTF-16に統一されてるわけじゃないよ。

788:デフォルトの名無しさん
16/02/06 15:22:16.66 22sNDRQR.net
結局のところ、このスレ的にはC言語の整合がとれてないのが困りどころよな
wchar_t をいまさら統一とは言わないけど、なんか統一した別枠の仕様を標準化してほしい

789:デフォルトの名無しさん
16/02/06 15:44:17.53 22sNDRQR.net
あ、C/C++の規格的にはもう11で統一されてたのか
char16 _t がutf-16、char32_tがutf-32で固定の組み込み型。u"" U"" でそれぞれリテラル指定も可能
ただし全部これに対応したライブラリーは整備されてないので、
実情はあんまかわらん模様

790:デフォルトの名無しさん
16/02/06 15:52:48.40 22sNDRQR.net
アプリ内部はchar16_tかchar32_tでかいて、
OS依存処理は分離した上で、winはwchar_t がutf-16だからそのままワイド系の関数やapi使って、
unix系はwchar_tは信頼できないから、c16rtomb かc32rtomb でmbに変換して対応、が、C11以降の正しい書き方ってことかな

791:デフォルトの名無しさん
16/02/06 22:02:21.26 iW4Rvogm.net
ここ何のスレだっけ…?

792:デフォルトの名無しさん
16/02/06 22:11:19.39 +jWWiLZa.net
組み込み言語だろ。流れには沿ってるよ

793:デフォルトの名無しさん
16/02/07 00:18:29.86 LSSjhAu+.net
>>780
だからUTF-8に統一すりゃいいのにって話に戻るわけだ

794:デフォルトの名無しさん
16/02/07 00:48:50.94 4QXOAnIu.net
言語処理系がSJISソースコードを処理できるか(5C問題)と、言語やOSの内部文字コードの話がたまに混ざる。

795:デフォルトの名無しさん
16/02/07 03:59:45.36 LSSjhAu+.net
SJISでソースコード書くやつなんて今時いないよね?
それに誰もそんな話してないよね?

796:デフォルトの名無しさん
16/02/07 20:56:40.56 8pvMtac5.net
utf-8サポート入ったlua5.3以降の話だったのね。
以前(5.1/5.2)はsjisパッチがあったりしたので、そっちの話も出てたのかとおもった。

797:デフォルトの名無しさん
16/02/07 23:13:24.81 vQROT1hb.net
>>786
今でもマルチバイトのソースコードは山盛りだよ。
最も使用頻度が多いVSがデフォルトSJISだぞ。
そんな現実すら知らずにプログラマやってて
本気で言ってるな、周りが全く見えてない能無し。

798:デフォルトの名無しさん
16/02/07 23:15:09.52 jiomZ/W6.net
たまに文字列リテラル内の文字コードが書かれた文字コードに依存する糞処理系とかあるしな・・・

799:デフォルトの名無しさん
16/02/07 23:22:01.52 vQROT1hb.net
utg8に依存してるmrubyとかなw

800:デフォルトの名無しさん
16/02/07 23:44:00.61 LSSjhAu+.net
>>788
それはWindowsでしか動かないプログラムを書くお前の環境特有の話
それに気が付いてないなら
>周りが全く見えてない能無し。
自己紹介おつ
>>790
組み込み言語なら現実的な選択でしょ
多種多様なエンコーディングに対応するためにOSとか巨大な外部ライブラリに依存するほうが糞

801:デフォルトの名無しさん
16/02/08 00:07:53.29 0XuKQtD5.net
だいたいMicrosoft傘下になったゲームスタジオのWindows10アプリ移植版が
日本語ユーザー名だとエラーになるっていう体たらくだよ。
完全にSJISがMicrosoft自身の足も引っ張ってる

802:デフォルトの名無しさん
16/02/08 00:20:53.72 +/8cbHLD.net
そういうのはマルチバイトエンコーディングを適切に扱わずにUS-ASCIIしか想定して
なかったという類の問題でしょ。UTF-8だったとしてもやらかす奴はやらかす。

803:デフォルトの名無しさん
16/02/08 00:48:05.85 0XuKQtD5.net
>>US-ASCIIしか想定してなかった
違うよ。日本語表示も(他の言語の表示も)できてる。予想だけど内部ではUTF-8で処理してんだろうよ。
ここまで書けば多数の人は何を指してるのかわかるだろうから具体的なゲーム名は言わないけど
そのゲームは
PC版(Java) → スマートフォンへの移植版(ネイティブアプリ版) → Windows10アプリ版
と移植されていったわけ、スマートフォンではUTF-8がデファクトスタンダードだから当然の結果だね。
で、Windows10版もUTF-8文字列をそのままファイル操作のAPIへ渡してしまったんだろうね
>>UTF-8だったとしてもやらかす奴はやらかす。
とはいってもSJISを"適切に扱う"ということと比べたら屁みたいなもん
それにこのゲームでの問題の適切な解決策はSJISを適切に使うではなくWindowsのみUTF-16へ変換してwide版のAPIを呼び出すだ。

804:デフォルトの名無しさん
16/02/08 01:08:11.78 B1wV/kIt.net
文字コード総合スレ Part10 [転載禁止]&copy;2ch.net
スレリンク(tech板)
どうしてもここで語りたいなら言語と処理系を限定しろ
話が発散する

805:デフォルトの名無しさん
16/02/08 03:55:04.72 9ZhGg5zu.net
システムのファイル名・ユーザー名などは、
半角英数字のみを使う
外人は日本語でのテストなどをやっていないから、
日本語などを使ったら、バグる
SEの常識だろ。日本語など、
誰もメンテナンス・テストしていないものを、
システムで使うのはおかしい
Linux・Macなんか、ファイル名に半角スペースがあっても、バグる

806:デフォルトの名無しさん
16/02/08 07:43:55.20 stcXIyTr.net
ドイツ語でもバグるよ

807:デフォルトの名無しさん
16/02/08 08:08:27.71 +/8cbHLD.net
スマートフォンでUTF-8がデファクトスタンダードってなんのことを言っているのやら。
iOSやAndroidのプログラミングしたことないのかね?

808:デフォルトの名無しさん
16/02/08 09:04:21.92 rq38tdFU.net
AndroidもiOSも代表的なutf-16環境だな

809:デフォルトの名無しさん
16/02/08 09:17:28.34 5blmn2mR.net
扱わないといけない文字コードは4種類ある。
 1. プログラム中の文字列型
 2. OSのAPI
 3. ソースコード
 4. 入出力ファイル
4については、対応が必要なぶんの変換モジュールを用意すればよいだけ。
3については、1に決め打ちするのが楽だが、4があるなら変換して読み込めばいい。
で、Windows対応を謳うには以下のどちらかが必須。
・setlocale で 1=2 という環境に限定し、1に対してmblen等の適切な処理をする
・1=ユニコード (UTF-8/16/32は問わない) として 2=W系API を使う
Luaの実装はどちらでもないので、「Windows対応が完全ではない」と評価するのが妥当。
Squirrelなら後者になるようコンパイルできるので、この件に関しては問題ない。
他の環境はわからないが 1=ユニコード なら後者を満たしていると期待できそう。

810:デフォルトの名無しさん
16/02/08 11:43:28.74 M0j0fnEJ.net
Squirrel って最近聞かないと思ったら1年前の最新リリースから止まってるのかよ

811:デフォルトの名無しさん
16/02/08 11:52:01.97 5blmn2mR.net
>>801
そう。だから「この件に関しては」と書いた
他の要素、将来性などは……

812:デフォルトの名無しさん
16/02/08 14:05:07.38 rq38tdFU.net
>>800
windowsの cランタイムのsetlocale が utf-8 に対応さえしてくれれば悩む必要無いのにねぇ

813:デフォルトの名無しさん
16/02/08 22:35:54.46 jpNGf5dG.net
>>798
>>799
上に載っかってるJavaとObjective-Cしか使ったことないの?
NSStringはUTF8Stringで、JNIではGetStringUTFCharsでUTF8の文字列を取れるけどUTF1 文字列で直接取得する方法ないぞ。
クロスプラットフォームの為にCやC++を扱うならUTF8にするのが常識

814:デフォルトの名無しさん
16/02/09 00:41:57.31 W9OWY02z.net
>>804
デファクトって言うなら主要開発環境でみないと駄目じゃろ

815:デフォルトの名無しさん
16/02/09 07:41:05.80 Wb20B9c6.net
>UTF1 文字列で直接取得する方法ないぞ。
UTF-16のtypoだろうが、NSStringならcharacterAtIndexとか、JNIならGetStringCharsとか。

816:デフォルトの名無しさん
16/02/09 07:54:13.04 OaLyyuyL.net
>>804
NSStringはそのままUTF16だからgetCharactersでunicharでとれるな
UTF8用の処理は低層のUnixとのやりとりのためのものだし、その層ではutf-8が必要なのはもちろんだけど、それをAndroidやiOSの標準かのように言うのはおかしいと思うな

817:デフォルトの名無しさん
16/02/09 08:14:07.29 DpNg1xio.net
UTF16なら固定長で行ける!という勘違いをしてる
外人は多いよ。

818:デフォルトの名無しさん
16/02/09 10:53:46.23 dd4nRHCa.net
>>807
ユニコードでさえあれば、内部のUTF表現まで気にする必要はないんじゃ?
特に文字列型がimmutableなら、複数の表現をキャッシュしても問題なさそうだし
>>808
日本人でも多くないか?
新しく言語を設計できるなら、CharはUTF-32であるべきだとは思う

819:デフォルトの名無しさん
16/02/09 12:19:21.81 +sr/gpA9.net
charのサイズがintのサイズに近づけばintの配列を使う人も出てくるんじゃないの
それにluaがpythonに近づけばpythonを使う

820:デフォルトの名無しさん
16/02/09 12:28:04.23 OaLyyuyL.net
>>809
話の流れはutf8がデファクトかどうか、です
実際にはutf16のが主流だろって指摘
外部はutf8でいいとして、内部で使うなら今後はやっぱ32だな。少なくともサロゲートペアの罠は回避できるし

821:デフォルトの名無しさん
16/02/09 14:09:36.45 +sr/gpA9.net
sjisとutf16とutf32って、まるでxpとvistaと7みたいだね

822:デフォルトの名無しさん
16/02/09 17:44:02.58 zKyrJnIK.net
>>809
それって言語の問題無の? 標準ライブラリで吸収できない?

823:デフォルトの名無しさん
16/02/10 08:02:28.26 2QwVjJmi.net
Web系の主流がutf8なのは確か


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch