JAVAプログラミング講座
宇宙のJAVAさん
< 某 空間 >
いんた、ぷりたぁ〜
しかし、ぶ〜 もふがいない。 JAVANごときにやられるとは・・・
無理なスレッドを多用してOSを不安定にするぐらいの剛の者は、いないのか!
次は私が行きましょう!
おお! ワルグマ将軍! 行ってくれるか?
軟弱なブラウザを使っているものどもへ、悪のアプレットのなんたるかを教えてきましょう!
・・・・・・・・・
・・・・・・
・・・・
・・
・
< JAVA対策本部@地球 >
またまたJAVAが出たも〜!!
くま先生、どうするかも〜!
先日実戦配備した「Hello
JAVA プログラム」スタンバイ!!
ラァジャ! Hello
JAVA コーディング、スタート!
(ピ、ピ、ピ・・・)
|
public class HelloJAVA{ |
コーデング終了! 発射!
Hello JAVA !! |


・・・
て、敵、無傷です!!
敵、有視界に入ります!
ドーン! |
なんか、どっかで見たような顔だみゃ〜
嫌な予感がするも〜
にゃ? くま先生
の姿が見えないみゃ?
ほんとだも〜 どこいったのかも??
< JAVA対策本部内空き部屋@地球 >
ふふふふふ・・・
JAVAC
!
説明しよう。
くま先生は「JAVAC」と唱えると、高速コンパイルを開始し、
地球を守る宇宙刑事に変身できるのだ。
ときどき変身時にOSが落ちることがあるが、気にしない。
速やかに「リセットボタン」を押して、無かったことにすれば良い。
宇宙刑事
JAVAN !
< JAVA対策本部@地球 >
くそー、どうすることもできないも〜
みゃ? あれは、誰だみゃ?
JAVAN参上!
JAVANが来てくれたみゃ〜 助かった!
来たか・・・
早速で悪いが、消えてもらおう!
Image、メソッド、flush() !
相変わらずだな・・・
FilterWriter、メソッド、flush() !
ドガーーーーーーーーーーーン!!!!
な! 同じ技を!
技が相殺した!
く・・・
いや! わずかに
JAVAN が押されてるみゃ!!
くっ・・・ この短時間での技で、ストリームをフラッシュするとは・・・
おまえは
AWTコンポーネントに頼りすぎなんだよ!
前にも言ったろ、せめて Swing を使えって。
JAVA
2Dは奥が深い。
見せ掛けの技じゃ、一生俺に勝てんぞ・・・
??? お前はいったい???
まだ気がつかないのか?
(カチャ!)
バーン!
に、兄さん!
あのワルグマ将軍の正体は、生き別れの兄であった。
いつか遠い昔に封印した「過去の記憶」。
そして、少年の日々。
JAVANは何を思い、戦っているのであろうか?
謎が謎を呼び、爆裂健は引越しのため貯金が目減りしてびびる。
次回、宇宙刑事JAVAN 第3話 「JAVAN誕生の秘密」。
君も JAVAを語るプログラマーとなれ!
− 続く −
くま先生の ノベルゲームをつくっちゃお(全?回)
第4回 フラグ処理
さて今回はアドベンチャーに欠かせない「フラグ処理」を行うためのプログラムをしましょう。
「フラグ」というのは、何かみゃ?
「フラグ」とは、その名のとおり「旗」です。
まぁ、簡単に言うと、ゲームプログラムの中に「複数の旗」を持っていると考えてください。
こんな感じです。 すべてのフラグには番号がついています。
(この図では1番〜20番までのフラグがあるものとしています)
通常アドベンチャーゲームはフラグを使って、条件分岐をしているのです。
では、具体的に例をあげて説明しましょう。
ゲームをスタートした直後は、普通すべてのフラグが倒れています(OFF)。

で・・・
寒い冬のある日、道を歩いていると雪だるまがマッチを売っていたとしましょう。
「買う」、「買わない」を選択できる画面になったとします。
![]() |
おおよそありえない設定だみゃ〜
このときゲームプレイヤーは、「買う」と「買わない」のどちらかが選択できます。
もし、「買う」を選択した場合は フラグ3 を立てます(ON)。

「買わない」を選択した場合は、フラグはそのままです(OFF)。

で、ゲームの話は、どんどん進んでいったとします。
そして、「雪だるまが恩返しに来る!」というストーリー(イベント)なった場合、
フラグ3を見て、そのイベントを出すかどうか決めることが出来ます。
フラグ3がONだった場合 > 雪だるまが恩返しに来る。
フラグ3がOFFだった場合 > 雪だるまは恩返しにこない。
このようなフラグによる分岐処理で、ストーリーの流れを変えたり、マルチエンディングを行っています。
なるほど、フラグって大切なんだみゃ〜
さっそく、フラグ処理のプログラミングをしましょう。
ます、フラグ変数をグローバルで宣言します。
フラグはONとOFFしかないので、boolean形 で宣言します。
変数名は「flag」とします。
| public class novel extends Applet { // グローバル変数 String scene[]; String screen[]; int now_line; Image img; boolean flag[]; |
次に今宣言したフラグ変数を初期化しましょう。
初期化は初期化関数 init() で行います。
初期値はすべて false (フラグOFF) とします。
ただし例外として、フラグ0(flag[0])だけは true (フラグON)にします。
フラグの数は全部で30個としましょう。
この初期化で flag[0] 〜 flag[29] までの30個のフラグが使えるようになります。
| public void init() { // 初期処理 scene = new String[1000]; screen = new String[15]; now_line = 0; img = null; flag = new boolean[30]; for (int i=0; i<30; i++) flag[i] = false; flag[0] = true; |
できたも〜。 これで
フラグのプラグラムは終わりかも??
あと、フラグを使うための「タグ」を作らなくてはなりません。
以下の「タグ」を追加することにしましょう。
<Flag UP タグ>
FUP (番号)
<Flag DOWNタグ>
FDOWN (番号)
プログラムを書く場所は、SetText()
関数の <<タグの処理>>の部分です。
前回の講義で作った「CGOFF」タグ処理の下に書きましょう。
| if ( st1.equals("CGOFF")) { img = null; continue; } if ( st1.equals("FUP")) { int no = Integer.parseInt( st2 ); flag[no] = true; System.out.println("フラグ"+no+"番アップ\n"); continue; } |
もし
st1 が FUP だった場合は、 st2 の数字のフラグをONにしています。
で、JAVAコンソールに「フラグ?番アップ」と表示をしています。
ゲームを開発するときに、JAVAコンソールを見ればフラグの動きがわかるからです。
つまり、
FUP 7
という1行がシーンファイル(テキストファイル)にあると、st1 に FUP、st2 に 7 が入ります。
よって、フラグ7がONになるわけです。
ここら辺のタグの処理のからくりは、前回の講義で説明してるみゃ。
JAVAコンソールは、第1回の講義で説明してるみゃ。
Integer.parseInt(
st2 ) って何の命令だも??
Integer.parseInt( ) というのは、String 型の変数を int 型に変換する命令です。
st2 変数は、String型(文字)なので、この命令を使って int 型(数字)にしているわけです。
ちなみに Integer.parseInt( ) 命令は、数字以外の String型を数字に変換することは出来ません。
(あたりまえですが・・・)
よって、
int i = Integer.parseInt( "72" );
と書けば、変数 i には72という数字が入りますが、
int i = Integer.parseInt( "abc" );
と書くと、数字に変換できないのでエラーになってしまいます。
なるほども。
当然フラグをOFFにする「FDOWN
タグ」も追加します。
先ほどの FUPタグ処理の下に書きます。
| if ( st1.equals("FUP")) { int no = Integer.parseInt( st2 ); flag[no] = true; System.out.println("フラグ"+no+"番アップ\n"); continue; } if ( st1.equals("FDOWN")) { int no = Integer.parseInt( st2 ); flag[no] = false; System.out.println("フラグ"+no+"番ダウン\n"); continue; } |
処理の内容は、FUPタグと同じです。
これで、フラグプログラミングは終了しました。
シーンファイル(テキストファイル)の中に、
FUP 7
という行があったら、フラグ7をONにします(フラグを立てる)。
同様に、
FDOWN 12
という行があったら、フラグ12をOFFにします(フラグを倒す)。
なるほどみゃ。
では、シーンファイル(テキストファイル)に追加した「FUPタグ」と「FDOWNタグ」を
書き込みましょう。 これが、読み込むシーンファイルです
始めに
FUP 15
と書いてありますので、フラグ15がONになります。
画面をクリックして文章を進めると、画像を表示する「CGタグ」の下に
FUP 8
FDOWN 15
と書いてあります。
これで、フラグ8はONになり、先ほどONにしたフラグ15はOFFになります。
でも、ゲーム画面じゃフラグが変わっても、全然わからないみゃ〜
ゲーム画面ではフラグの変化はわかりません。 JAVAコンソールを見てください。
JAVAコンソールに、フラグのON/OFFの表示が出ます。
あ、ほんとだ出てるも〜
今回はこれでおしまいです。
次回は、フラグが立っているかどうかを見て、次のシーンを決定する「分岐処理プログラム」をやります。
だいぶノベルゲームらしくなってきたみゃ。
では、またお会いしましょう!
|
テキストファイルのフォーマット(タグ一覧)
|
|
|
- 第5話につづく -
|
宇宙のJAVAさん (C) BakuretuKen 2000 |