teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

返信に伴う追記

2016/08/03 11:25

投稿

SASAHARA
SASAHARA

スコア247

answer CHANGED
@@ -66,4 +66,55 @@
66
66
 
67
67
  雑ですみません。
68
68
  上記でコメントアウトにしている 『/* ○○画面の呼び出し */』で載せて頂いたゲームタイトルやゲーム画面を呼び出せばよいのかなと思いました。
69
- 参考になれば幸いです。
69
+ 参考になれば幸いです。
70
+
71
+
72
+ **追記**
73
+ ---
74
+
75
+ ご返信内容を読みまして追記させて頂きますね(すみません返信の返信だとコードの引用などができないようですので最初の返信に追記させて頂きました)
76
+
77
+ まず前提としましては、私の回答はあくまで参考の一つにして頂ければと思います。
78
+ 私ならこう作る、以前はこう作った、という内容となっております。
79
+ 私の回答で惑わせてしまったら本当に申し訳ないです。多少なりとも参考となればと思い記述させて頂きました。なのでご自身のやり方の方がいい!と思いましたらこの回答はスルーしてくださいね。
80
+
81
+
82
+ > 今ある大きく分けて3つあるファイルをまとめて、どれを表示していくかをつくるのをつくればいいということですか?
83
+
84
+ 私ならそうするかなと思いました。
85
+ main関数に呼び出したい画面をすべてまとめておくメリットは、例えば追加したい画面や機能が増えた場合などにファイルを増やして同様に呼び出してやればよいからです。
86
+ 今はゲームオーバーの話をされておりますが、ゲームクリアを追加したい、main画面中にタイトルに戻れる機能を追加したい、といったことにも対応できるかと思います。
87
+
88
+ よって、追記前のコードもどきは以下のような感じになるでしょうか。
89
+ (タイトル画面の「main.rb」とゲーム画面のタイトル「aaa.rb」の内容がよくわからなかったため、ファイル名を勝手に変更しております。ご注意ください)
90
+
91
+
92
+ ```ここに言語を入力
93
+ case gameTitle:
94
+
95
+     /* タイトル画面の処理の呼び出し */
96
+     title.rbを呼ぶ     /* ← 今回のコードで追加部分 */
97
+
98
+     break;
99
+
100
+ case gameMain:
101
+
102
+     /* メイン画面の処理の呼び出し */
103
+     main.rbを呼ぶ     /* ← 今回のコードで追加部分 */
104
+
105
+     /* メイン画面終了後に分岐 */
106
+     if (ゲームクリアなら)
107
+         GAME_STATUE = gameClear;
108
+
109
+     if else(ゲームオーバーなら)
110
+         GAME_STATUS = gameOver;
111
+     end
112
+     break;
113
+ ```
114
+
115
+ このように書くと、次に進みたい画面を戻り値とするだけで分岐してくれるようになります。
116
+ (各画面ごとに1ファイル作るのがわかりやすいかと思ってそのように記載しております)
117
+
118
+ いかがでしょうか。伝わりましたでしょうか?わかりにくければ再度ご質問頂ければと思います。
119
+ 元のファイルにだいぶ手を入れる必要があるかと思いますので、あくまで参考程度に考えて頂ければと思います。
120
+