HSP3講座〜0から他の講座までのつなぎ〜 
ステップ7:goto文、gosub文を使ってみよう。

満月芸夢topへ
HSP3講座topへ

<<前へ 次へ>>

【目次】
ステップ0:HSP3をダウンロードしてゲームを作る準備をしよう。
ステップ1:エディタを立ち上げて画面を表示してみよう。
ステップ2:画像を表示してみよう。
ステップ3:文字を表示してみよう。
ステップ4:実行ファイルを作ってみよう。
ステップ5:変数を使ってみよう。
ステップ6:ループ文やif文、乱数を使ってみよう。
ステップ7:goto文、gosub文を使ってみよう。
ステップ8:これまでの内容でゲームを作ってみよう。
ステップ9:配列変数を使い、スクリプトの分割をしてみよう。
ステップ10:音を追加し、透明色を使ったアニメを作ってみよう。


さて、休憩は十分取れたし、次の内容を説明していこうか。
今回はgoto文とgosub文を説明するよ。
うむ、甘味のおかげでだいぶ元気が出た気がするな。
よろしく頼む。
で、今回のサンプルはこれだ。
今回は簡潔にまとめたからスクリプトの行数は少なめだね。

sample06_01(ループ文、if文、乱数についてのサンプル)

受けとった。おお、確かにエディタで見ると前回よりもかなり短めだな。



で、実行+コンパイルするとこのような実行画面が出ると。
ふむふむ。


まずは1〜8行目のgoto命令から説明するよ。
goto命令では指定したラベル(位置を知らせる目印)の所にジャンプする事ができるんだ。
ラベルは「*ラベル名」という形で設定する事ができるよ。

このサンプルでは4行目でgoto命令が使われて、6行目の「*label1」にジャンプしているね。
なるほど。
それで5行目の“かきくけこ”がとばされて、
実行画面に表示されていないんだな。
そういうことだね。
では、次に10〜21行目で使われているgosub命令を説明しよう。
gosub命令ではgoto命令と同じように指定したラベルの所にジャンプするんだ。
goto命令との違いはreturn命令に着いたときにジャンプしてきたgosub命令の位置まで戻るんだ。
今回の例では13行目と15行目で「*label2」にジャンプして、 “なにぬねの”を表示した後に戻ってきてるんだな。
そういうことだね。
これらを駆使すれば「選択肢による分岐」や「命令を纏めてスクリプトを簡潔にする」など
色々できて便利だよ。

なにか分かりにくいところはあるかい?
えーっと、gosub命令でreturnを使わなかったらgoto命令と同じような使い方ができると思うんだけど、
goto命令って不要じゃないのか?
その使い方はやめた方がいいな。
gosub命令の後にreturnで戻らないとネストレベルというのが溜まっていって、
詳しいことは省くがネストレベルが溜まりすぎるとエラー落ちしてしまうんだ。

「gosub命令の後はreturnで戻ること」これを徹底するようにしてくれ。
ふむふむ、「gosub命令の後にはreturnで戻るのが必須」と。
他に質問はないかい?
今のところは思いつかないかな。
そうか……では、そろそろ実践にうつろうか。
次はミニゲームを作ってもらう。
おお、ついに実践か。何を作ればいい?
「何を作るか」それは絶歌、君が決めていい。
  !
今まで教えてきたことで、
「簡単なノベルゲーム」や「簡単なじゃんけんゲーム」、「簡単なサイコロゲーム」ぐらいなら作れるはずだ。
自由に考えて、作りたいように作ればいい。
うむむ、夢が広がるな。
しかしどんなゲームを作ればいいかなんてなかなか思いつかないぞ……困ったな。
では、ボクと話しながらどんなゲームを作るか固めていこうか。

最終的には何を作るかは自分で決めなければならないけど、
考える手助けにはなるはずだよ。
それはありがたい!
ぜひ頼む。
<<前へ 次へ>>
inserted by FC2 system