広告
  サイト内検索:
<Let's create a game!> Introduction of programming for absolute beginners English
 

SESSION 13 その42
「見る」処理を作る(対象処理モード、結果処理モード) つづき

まず、「入口」の処理を
作りました。


えーと。
「入口」の「見る」物は「ドア」
だけね。

対象処理モードでは
「ドア」が選ばれたはずなので、
変数 inputNumの値を使って
その結果を表示します。
 
 
シナリオの表の
メッセージを表示した
んだね。

今回、入口にあるのは
ドアだけだからね。

いいんじゃないの。
 

テキストアドベンチャーゲーム
「見る」処理(対象処理モード、結果処理モード)
KottonCastleEscapeのKCEMain.java)272行目~
 
・・・    
272         //部屋ごとの処理
273         //***************
274         //もし入口なら
275          if (nowRoomNum == TAR_ROOM_ENTRANCE) {
276            //行動コマンド選択別処理:保存しておいた値を使用
277            //もし移動なら
278            if (keepActNum == ACT_MOVE) {
279               resultMove();//結果モード 移動表示処理
280    
281            //もし見るなら
282            } else if (keepActNum == ACT_LOOK) {
283               //選択処理表示
284               //ドア
285               if (inputNum == TAR_LOOK_ENTRANCE_DOOR) {
286                  System.out.println("L-01:扉です。");
287               }
288    
289            //もし使うなら
290            } else if (keepActNum == ACT_USE) {
291               System.out.println("テスト:結果処理モード 使う"); //テスト用:表示確認
292    
293            }
・・・    
「入口」の「見る」の結果メッセージ表示を作った


次に「廊下」の処理を
作りました。


ここも基本的に
入口と作り方は同じ。

廊下だから
「窓」と「絵画」を作りました。
シナリオの表の
番号もちゃんと
入ってるね。
同じ。
うなじー

テキストアドベンチャーゲーム
「見る」処理(対象処理モード、結果処理モード)
KottonCastleEscapeのKCEMain.java)295行目~
 
・・・    
295         //***************
296         //もし廊下なら
297          } else if (nowRoomNum == TAR_ROOM_PASSAGE) {
298            //行動コマンド選択別処理:保存しておいた値を使用
399            //もし移動なら
300            if (keepActNum == ACT_MOVE) {
301               resultMove();//結果モード 移動表示処理
302    
303            //もし見るなら
304            } else if (keepActNum == ACT_LOOK) {
305                  //選択処理表示
306                  //窓
307                  if (inputNum == TAR_LOOK_PASSAGE_WINDOW) {
308                     System.out.println("L-02:窓の外は海です。");
309    
310                  //絵画
311                  } else if (inputNum == TAR_LOOK_PASSAGE_PICTURE) {
312                     System.out.println("L-03:絵です。");
313                  }
314    
315            //もし使うなら
316            } else if (keepActNum == ACT_USE) {
317                 System.out.println("テスト:結果処理モード 使う"); //テスト用:表示確認
318    
319            }
・・・    
「廊下」の「見る」の結果メッセージ表示を作った



最後に
「寝室」の処理を作りました。

ここも「廊下」と同じように
作ったんだけど。

「テーブル」だけは処理が
違ったから、難しかったよ。
なぽちゃんに
教えて
もらっちゃった
けど。
それで
いいんだって。

いろんな
パターンを
覚えようぜ。
えっと、
テーブルの裏には
金庫の鍵が隠して
ある
んだったな

 

テキストアドベンチャーゲーム
「見る」処理(対象処理モード、結果処理モード)
KottonCastleEscapeのKCEMain.java)321行目~
 
・・・    
321         //***************
322         //もし寝室なら
323         } else if (nowRoomNum == TAR_ROOM_BED) {
324            //行動コマンド選択別処理:保存しておいた値を使用
325            //もし移動なら
326            if (keepActNum == ACT_MOVE) {
327               resultMove();//結果モード 移動表示処理
328    
329            //もし見るなら
330            } else if (keepActNum == ACT_LOOK) {       
331               //選択処理表示
332               //ベッド
333               if (inputNum == TAR_LOOK_BED_BED) {
334                  System.out.println("L-04:大きなベッドです。");
335    
336               //テーブル
337               } else if (inputNum == TAR_LOOK_BED_TABLE) {
338                  System.out.println("L-05:何も無いテーブルです。");
339    
340                  tableLookCount += 1;//見るカウンタを加算
341    
342                  //見るカウントチェック
343                  if (tableLookCount == 2) {
344                     System.out.println("L-06:あ、そう言えば、・・・");
345    
346                  //3回以上見たら鍵取得
347                  } else if (tableLookCount >= 3) {
348    
349                     //鍵をまだ見つけてなければ
350                     if (!itemKeyFlg) {
351                         System.out.println("L-07:<アイテム>:金庫の鍵を手に入れました");
352    
353                         itemKeyFlg = true;//フラグを立てる
354                     }
355                  }
356    
357               //金庫
358               } else if (inputNum == TAR_LOOK_BED_SAFE) {
359                  System.out.println("L-08:開けるには暗証番号と鍵が必要です。");
360               }
361    
362            //もし使うなら
363             } else if (keepActNum == ACT_USE) {
364                 System.out.println("テスト:結果処理モード 使う"); //テスト用:表示確認
365    
366            }
367         }
・・・    
「寝室」の「見る」の結果メッセージ表示を作った


そう、テーブルは3回見ると
鍵が見つかる
んだけど
どうやればいいか分からなくて。

カウントをする変数を作って、
テーブルを見るたびに
カウントするようにしました。

その数が3以上かチェックする
ようにしたよ。
なぽちゃん
ヒント
ありがとね。
 
うん、いいんじゃない。

2回見た場合は
メッセージを変えて
ヒント出してるし。

 

テキストアドベンチャーゲーム
「見る」処理(対象処理モード、結果処理モード)
KottonCastleEscapeのKCEMain.java)336行目~
 
・・・    
336               //テーブル  
337               } else if (inputNum == TAR_LOOK_BED_TABLE) {
338                   System.out.println("L-05:何も無いテーブルです。");
339    
340                  tableLookCount += 1;//見るカウンタを加算 見るたびに
カウントを増加
341    
342                  //見るカウントチェック  
343                  if (tableLookCount == 2) { 現在のカウントを
チェック
(2回目ならヒント)
344                         System.out.println("L-06:あ、そう言えば、・・・");
345    
346                  //3回以上見たら鍵取得  
347                  } else if (tableLookCount >= 3) { 現在のカウントを
チェック
(3回目なら鍵取得)
・・・    
テーブルで起きるイベントを作った


それから、
テーブルを3回見たら
鍵フラグを立てる
ようにしました。

フラグを立てるのは
鍵をまだ持ってない場合だけね。


鍵を持ってるのに、何回も鍵を
取れるの変だもんね。
おお、よく気付いた!

今回の場合だと
何回取れても処理上は
問題はないけど
その方が自然だよな。

うん、これで金庫の鍵が
手に入ったってことだな。
金庫の鍵
げっと!
よく考えたね。
 

テキストアドベンチャーゲーム
「見る」処理(対象処理モード、結果処理モード)
KottonCastleEscapeのKCEMain.java)350行目~
 
・・・    
350   //鍵をまだ見つけてなければ  
351   if (!itemKeyFlg) { まだ持ってない場合
のみ取得する。
つまり、フラグが
falseなら取得
352         System.out.println("L-07:<アイテム>:金庫の鍵を手に入れました");
353    
354         itemKeyFlg = true;//フラグを立てる アイテムフラグを
立てる
355   }
・・・    
アイテム(金庫の鍵)の取得処理を作った


はあー
ここの処理難しかったー。

こうやって、アイテムを
手に入れるんだね。
いろいろ
覚えないと。
ゆっくりね。
最初は誰でもそんなもん。
やり方知らないんだからね。

徐々に覚えていこうな。

 
 

広告
home もくじ 前のページを読む 次のページを読む
  サイト内検索:
広告
お勧めの姉妹サイト
leafdays - リーフデイズ 超初心者のための園芸入門 - 楽しい趣味のガーデニング -
広告