※名前と本文は必須項目です。
※件名の欄には最初から全角スペースが入っているので、必ずしも入力する必要はありません。
※普通に書き込んでエラーが出た場合、スパム避けの禁止ワードに引っかかってしまっている可能性があります。
名前
件名
   削除パス(半角英数4文字以上、省略可) 
  by てあ
2010/08/28 (Sat) 01:41:15
直接返事して書き込み放置状態だったので一応そうだよと明言文字列化
連絡取れてないのはme? by 寺
2010/08/18 (Wed) 01:34:17
メール途切れた頃が昼夜逆転してるみたいなときだったかな?寝ている時間にメールいったら悪いなと思ってたら数カ月・・・
こちらもゲーム作りがこれといって進んでいなくて報告する内容がなくてね;
とりあえず今も活動時間把握できてないのでとりあえずこちらに書いておこうかと
これの事が違う友人の話で自分とはすでに縁が切られていたら怖いなぁ・・・
よかったら何でもいいんで連絡ください

あ、なるほど。 by てあ
2010/07/16 (Fri) 00:36:13
前に見た時は連想配列ってものがいまいち分からなかったのですが、そういう意味だったんですね。
添え字にあたる部分に文字が使えて中身に文字も放り込めるのは革命的に便利ですね。Nスクの配列変数はその点が不便でした。確かにこれは習得するのに見合った便利さがあります。Luaに手を出すメリットがようやく見えてきました、分かりやすい解説ありがとうございます。
あ~、初見ならあの書き方だとわかりにくいよね by FAM
2010/07/11 (Sun) 18:28:42
短い文章で必要なことを詰め込めばあんな感じになっちゃうんですが、何も知らずにあれだけで理解しろ、というのは難しいかも。
というわけで、詳しいことは前述したttp://staff.aist.go.jp/yutaka.ueno/lua/tebiki3jp.htmlの『8. テーブル型と連想配列』を見てもらうことを前提にして、軽くさわりだけ書いて見ます。
細かいところ間違ってたりするかもだけど、理解の助けにはなると思うので。


感覚としてはNスクの配列みたいなもの。
Nスクでは「?0[9]」で、『配列変数0番の添え字9』をあらわしてました。
luaだと「t[1]」で、『テーブルtのインデクス1』をあらわします。
配列変数=テーブル、添え字=インデクスと思っていただいて不都合はあまりないと思う。

配列変数の添え字の部分はNスクだと数字しか使えないわけですが、luaは例えば「t["name"]」のように、インデクスの部分に文字なんかを使うこともできるのです。
インデクスの部分が文字の場合、「t["name"]」を「t.name」というように書き換えることもできます。
高次元のテーブルでインデクスの書き換えをできるかどうかってのは昔ゆにたりのブログでやっていましたので、必要になったらチェックしてみてください(自分でもどこに書いたか忘れた)。

んで、Nスクでは配列変数の中身には数字しか入れれないのですが、luaではテーブルに数字だけでなく、文字やテーブルそのものを入れることができます(関数なんかも入れれるけど、その辺りは今は知らなくてOK)。
Nスクの配列変数だと「?1[2][3]」のような書き方で二次元配列にできるのですが、luaだと、テーブルの中にテーブルを入れる形で扱っています。
最初のころはこの違いはピンときませんでしたが、一部のテーブルを扱う命令でうまくいかない時にこのことを思い出すと幸せになれるかもしれません。

Nスクの配列変数もluaのテーブルも扱うには最初に宣言する必要があります。
一次元以上の構成にする場合、Nスクの列変数の場合は「dim ?0[3][2]」のように一度に宣言できますが、luaの場合、前述のようにテーブルの中にテーブルを入れる形、かつ宣言しなければ扱えないので、「t[0][2][5]」に値を代入するには、
t = { }
t[0] = { }
t[0][2] ={ }
のように、まず「テーブルt」を作り、その後に「テーブルt[0]」を作り(テーブルtのインデクス0をテーブルとして使うという宣言)、その後に「テーブルt[0][2]」を作り(テーブルtのインデクス0のテーブルのインデクス2をテーブルとして使うという宣言)をする必要があります。
宣言しなければいけないのは『テーブルの宣言』なので、事前にこれだけ宣言しておけばいつでも「t[0][2][5]="あいうえお"」のように「t[0][2][5]」に値を代入できるようになります。



自分が初期の辺りでひっかかっていた辺りを主に羅列してみました。
書いてある部分でわからないこと、書いてない部分で理解しにくいところがあればまた書きます。
  by てあ
2010/07/11 (Sun) 13:16:02
Nスクは当初家にネット回線が引かれていない状態だったので、付属の命令一覧とにらめっこしながらガチャガチャやっていました。そのおかげで今さらnumaliasがどういう命令だったのか気付くような歪んだ覚え方をしてしまったのですが。
試行錯誤した部分は記憶に残るので、FAMさんのようにちゃんとしたサンプルをいじる方向から入るのが本当は一番なんじゃないでしょうか。
まさにテーブルのあたりでよく分からなくなったのですが、Lua見ながらもう一回読み直してみようと思います。
習うより慣れろに見えるのは自分の覚え方のせいかもしれない by FAM
2010/07/06 (Tue) 00:56:47
Nスクを覚えたときも講座見て、とかでなくて某青色のほうの本のサンプルをいじって覚えましたし。
なんか命令と結果の因果関係がわからないと頭に入りにくいんですよね。

ちなみに、senzogawaさんの講座はLuaを覚えた状態で読みましたが、自分も後半はあまりわかりませんでした。
だんだんちゃんとプログラミングする人用の用語の説明になってきて、まあ知ってなくても問題ないよね、って感じで飛ばし読みに。


あの講座の分類でいうと、テーブルさえできれば、当面てあさんが使いたい範囲の機能は十分カバーできると思います(当然、ブロック、スコープ、関数あたりまでできればぐんと使い勝手はよくなりますが)。
なので、その辺りだけでもがんばってみてください。
  by てあ
2010/06/27 (Sun) 04:27:05
numaliasは最初に勘違いしたまま覚えたのが不幸の始まりでした。straliasとは根本的に違うと言う事すら理解しないまま始めてしまったために……

FAMさんの制作日記も読み返してみましたが習うより慣れろ型の言語なんですね、Lua(他の言語だってそうなんだろうとは思いますが、特に)。
変数管理は最悪今のままでも(精神的な余裕はさておき)どうにかなるかなあとは思ってもいるのですが(不便ではあります。同じ役目の変数いっぱい作ってしまったりあちらの処理で使った変数がこちらでバッティングしてしまったり)、いい加減に振ったスプライト番号がここにきて大変なことになってきました。今のうちに番号をなんとかせねば。

senzogawaさんの講座を眺めていましたがそれでも途中で着いていけなくなったりしたので、本格的に使おうとするとなかなか壁はありそうです。でもurlありがとうございます、いよいよ手を付ける覚悟ができた時は参考にします。
とにかく踏みださないと始まらないので、どこかのタイミングで(FAMさんがおっしゃるようになるべく早めに)導入しようとは思います。
numaliasで苦労したことはあまりなかったり by FAM
2010/06/24 (Thu) 20:37:14
かといって、大して活用しているわけでもないですが。
せいぜい某Nスクの本にあった『numalias A,%0 :inc %0』っていう書き方をつかっているくらいですか。
変数管理とかはいじるとしたら全体に手を入れる必要があるので早めにしたほうがいいですよ~。



Luaに関する講座みたいなのは下手したらC言語っぽいことを習得していることを前提にしていることもあるので、挙動がわかっているサンプルとかのプログラムをいじって理解を深めていくほうが習得に役立つかもしれません。
本当はその手のサイトを紹介できたらいいんですが、自分は講座サイトでは深いところまで理解できなかったので・・・。

ある程度慣れたら、以下のサイトが便利です。
ttp://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html
ttp://staff.aist.go.jp/yutaka.ueno/lua/tebiki3jp.html

基本的に命令のリファレンスですが、Luaの仕様についても書いてあるんで、挙動に迷ったときなんか役に立ったり。
Luaを習得する際は参考にしてください。
あれ? by てあ
2010/06/24 (Thu) 04:35:23
この件はまだ日記に書いてなかった。
僕はnumaliasと変数に関していくつ勘違いしたら済むんでしょう。
  by てあ
2010/06/24 (Thu) 04:00:58
定義節で
>mov %0,3800 ;ここは変えない
>numalias D_Map01,%0 :inc %0
としてから実行節で
>mov %3,3798+%Y_Zahyou
>mov %1,1
>mov %2,3
>if %Y_Zahyou=1 inc %1 :inc %3
>if %Y_Zahyou=30 dec %2
>FOR %0=%1 to %2
のように数値を指定していたのですが、結局実行節の
>mov %3,3798+%Y_Zahyou

>mov %3,D_Map01-2+%Y_Zahyou
とすれば定義節であれこれやらなくても済むじゃないかと気付いたので日記に書きました。
numaliasを変数に名前を付ける命令として使ってばかりいたために、数値を文字で置き換えるという本来の役割を完璧に忘れてしまっていたのが原因でした。numaliasの正しい意味を覚えるべき初期段階での失敗が三年経って浮かび上がってきた形です。

そんなわけで今のところNスクの仕様から変数管理に悩んでいるというよりは自分に原因があってゴチャゴチャしてしまっている状態ですが、Luaは便利そうだし使えるものなら使いたいと思っています。
変数やラベルの限界を気にしなくていいというメリットが大きいんですよね、Lua。ざっと見た感じ、配列変数の使い勝手(や連想配列)などLuaに魅力を感じているのですが、使えるようになった最初期の流れに乗り遅れた感があって触っていません。便利そうなのは分かるけど導入し損ねた! みたいな印象がずっと続いていて……

もう少し制作が本格的な段階までいくと力技では限界が来そうなので、その時にLuaがさっぱり分からなかったらお言葉に甘えて雛型乞うかもしれません。もしそうなってしまった時はFAMさんどうかよろしくお願いします。

マップ表示を付けようとして作り始めたメニュー画面から作業部分が広がりすぎてエディタとダンジョン周りが進んでいるのか進んでいないのかなんだかさっぱり分からない状態ですが、ぼちぼちやっていこうと思います。

友からが完全に凍結されたわけではなくて良かったです。七話までサクッと見てしまったので、そのうち続きを見られればいいなあと思って待っておきます。
前ページへ 次ページへ