さばとたんと遊ぼうIndex

4.さばとともしかしたら

so_icon.png

神さんよ、Lua教えるのはええけど、最後飛行機どうやって飛ばす気なんや?滑走する場所なんてどーみてもこの神社にはないで?

sabato_icon_5.png

むぅ・・・ま、まぁなんとかなるじゃろ

so_icon.png

それに離陸は何とかなるとしても着陸とか絶対むりやろ

sabato_icon_6.png

参道つかえばなんとかならんかの?鳥居をこう、どこぞのヤシの木みたいに倒すとか。

so_icon.png

神さんみずからやる場合はバチあたらへんのかなぁ・・

sabato_icon_1.png

そんな心配より講座の続きじゃ。今日はどんなことやるのじゃ?

so_icon.png

へい、今日も昨日みたいな感じでボタンを押したら何か画面が変わるってのをやりますで

sabato_icon_8.png

ふむふむ、しかしどこまでも画面に文字が出るだけじゃの。いつになったらエンジンやら何やら動かせるのじゃ?

so_icon.png

それなんやけど、今日の分まで終わったら少しだけモデル動かせるようなるで。具体的には『Basic.txt』をLuaに出来るくらいや。

sabato_icon_7.png

本当か?『Basic.txt』と言えば妾が自家用車に使っておるのだがいじってみられるかの?

so_icon.png

ほな明日はそれやりましょ。そのためにも今日の講座は気合い入れていくでー

so_icon.png

さて、今日やるのは『if文』や。なんかの『条件』を決めて、その『条件』に当たるときだけ○○するって奴やな。たとえばこんなのや

 	VAL{}KEY{}BODY{CORE(){} }
 	Lua{
 	function OnFrame()
 		if _KEY(4) > 0 then
 			out(0, "さばとたん!ああさばとたん!さばとたん!");
 		end
 	end
 	}
sabato_icon_10.png

カタカタカタカタ)むぅ、キーボードって二刀流で速くならんかの。

so_icon.png

神さんはそないなこと考えるヒマあったらブラインドタッチ練習した方がええと思うで

sabato_icon_1.png

うるさいのぉ。かくいうお主はヒレしかないように見えるがそこらへんはどうなんじゃ

so_icon.png

某はUSB(UniversalSaba? Bus)ちう仕組みで直接文字入力しとりますから心配はいりまへんで

sabato_icon_4.png

(今度抱いてるときにコネクタ探そうかの)。さて、できたぞ。これを読み込むと・・・なにも起きんのじゃが?

so_icon.png

その状態でZキー押してみ?

sabato_icon_6.png

なるほど、Zを押したときだけこれが表示されるのじゃな。ということは『Zを押した』というのがさっき主の言っておった『条件』に当たるのかの?

so_icon.png

そのとおりや。んで、その条件を書いとるのが『if _KEY(4) > 0 then』やな。とりあえず、_KEY(4)ゆーのは、Zキー顔されてる間は1で、離れてる間は0やとおもえばええ。

sabato_icon_1.png

ということは妾がZキーを押しとる間は_KEY(4)>0が成り立ち、離しとると成り立たんのじゃな。

so_icon.png

そや。その上で『if 成り立つか/成り立たないかの条件 then』〜『(対応する)end』までの中身、この場合の『out(0, "さばとたん!ああさばとたん!さばとたん!");』は、成り立つ場合だけ実行されるんやわ。

sabato_icon_11.png

何度もそんな文章連呼しておると主の頭を心配したくなるがまぁよい。ということはこうするとZキーを押していないときだけ表示されるんじゃな

 if _KEY(4) = 0 then
sabato_icon_1.png

む、また英語でエラーじゃ。む、『then expected near `='』とな?つまり=の近くにthenがあるべきだということかの

so_icon.png

あー神さんは某の言うたことちゃんと覚えとりますか?等しいって言いたいんやったら『=』やのうて『==』やと言うた覚えありますけど。

sabato_icon_5.png

わ、妾が忘れておるわけが無かろう。ちょっとキーボードの調子が悪かっただけじゃ。直せばよいのじゃろう?

 if _KEY(4) == 0 then
sabato_icon_6.png

うむ、これでちゃんとキーを押していない時だけ表示されておる。

so_icon.png

せっかくやから今日はまだまだいくで。次は『if-else文』や

 	VAL{}KEY{}BODY{CORE(){} }
 	Lua{
 	function OnFrame()
 		if _KEY(4) > 0 then
 			out(0, "さばとたん!ああさばとたん!さばとたん!");
 		else
 			out(0, "さばとたんがさばをさばく。");
 		end
 	end
 	}
sabato_icon_6.png

実はこれ二行付け足すだけでいいのではないかの?ともかく出来たぞ。今度はZキーを押しているときと離しているときで表示の内容が変わるのじゃな

so_icon.png

そや。こんな感じで○○な時〜と○○でない時〜で処理内容を分岐させるのがif-elseやな。

sabato_icon_1.png

だがそれならばこう書いても同じことではないのかの?

 	VAL{}KEY{}BODY{CORE(){} }
 	Lua{
 	function OnFrame()
 		if _KEY(4) > 0 then
 			out(0, "さばとたん!ああさばとたん!さばとたん!");
 		end
 		if _KEY(4) == 0 then
 			out(0, "さばとたんがさばをさばく。");
 		end
 	end
 	}
so_icon.png

結果だけ見れば確かに神さんの言うとおりやけど、それやと二回条件書くのが面倒やろ?その点else使えば一回書けばOKやから省エネや

sabato_icon_8.png

そういえばelseの後にはthenはいらんのじゃな。英語的都合かの?

so_icon.png

そやな。まぁ英語的言う以前に書かんでも分かるからとちゃうかなぁ。でも次やるやつではまたthen出てくるで。

sabato_icon_2.png

まだ続くのかの。今日は偉いおおいの

so_icon.png

それだけ大事なところやっとるいうことや。ここきちんと覚えたら一応モデル動くで?、次やるのは『if-elseif-else文』や。

 	VAL{}KEY{}BODY{CORE(){} }
 	Lua{
 	function OnFrame()
 		if _KEY(4) > 0 then
 			out(0, "さばとたん!ああさばとたん!さばとたん!");
 		elseif _KEY(5) > 0 then
 			out(0, "さばとたんは永遠の○○歳!");
 		else
 			out(0, "さばとたんがさばをさばく。");
 		end
 	end
 	}
sabato_icon_5.png

だんだん長くなっていくの。一応、入力はできたがまたエラーじゃ。

so_icon.png

あー神さんや、『else if』やのうて『elseif』や。間あけたらあかん。

sabato_icon_1.png

ややこしいの。で、直したらエラーは消えたが今までと動作が変わらんぞ。

so_icon.png

いったんZキーから指離して代わりにX押してみてくらはいな。_KEY(5)いうのは_KEY(4)みたいなもんで、Zの代わりにXが押されてると1になるんや

sabato_icon_3.png

なるほど、ところで、妾は永遠の何歳なんじゃ?

so_icon.png

・・・・・・・・・10(00)歳?

sabato_icon_6.png

そうならそうと恥ずかしがらずに書いておけば良いのに。して、これは『elseif』というくらいじゃからelse+ifなのじゃろう?

so_icon.png

else+ifが何を指しとるのかわかりまへんが、大体そんなところや。上の条件を満たさんかったときに、elseifのところの条件を満たすとそこの内容が実行されるって寸法やな。で、条件をどれ一つ満たさんかった時だけ一番下のelseの中身が実行されるということや

sabato_icon_4.png

なるほど、これで同時に3つの文が書けるのじゃな。省エネ省エネということか。

so_icon.png

3つとは限りまへんで?elseifはなんぼでも書けるから、たとえばこんな感じや

 	VAL{}KEY{}BODY{CORE(){} }
 	Lua{
 	function OnFrame()
 		if _KEY(4) > 0 then
 			out(0, "さばとたん!ああさばとたん!さばとたん!");
 		elseif _KEY(5) > 0 then
 			out(0, "さばとたんは永遠の○○歳!");
 		elseif _KEY(6) > 0 then
 			out(0, "そろそろ書ける言葉がありません!");
 		else
 			out(0, "さばとたんがさばをさばく。");
 		end
 	end
 	}
sabato_icon_4.png

この_KEY(6)というのは今までの様子からするとCキーを押しているときだけ1になるのじゃろう?

so_icon.png

そのとおりや。んで、これ上から見ていきますから、たとえばXキーがおされとったら『out(0, "さばとたんは永遠の○○歳!");』だけ実行されてしもうて、その次の『out(0, "そろそろ書ける言葉がありません!");』は実行されヘん。

sabato_icon_10.png

今日はずいぶんと内容が多かったの。じゃがこれで明日はモデルが動くのじゃ!

so_icon.png

某もしっかり準備しとくわ。とりあえず今回の内容をまとめるとこんな感じやな。

 	if 条件 then←必須
 		何か内容
 	(elseif 条件 then)←好きなだけ繰り返す(0回以上)
 		何か内容
 	(else)←あってもなくても
 		何か内容
 	end←必須

前:さばとと変数:次:さばととモデル


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-11-08 (日) 23:13:56