| 情報処理2z(Java version) 課題7:複数の物体の移動 |
というようにしてみよう。
C で配列変数を使うことができるように、 Java でも同じように配列変数を使うことができます。 ただ最初の宣言の仕方が少し異なります。 new というキーワードに注目して下さい。
public class kadai703 extends java.applet.Applet implements Runnable
{
int x[] = new int[3]; /* int 型配列変数 3個分の領域確保 */
int y[] = new int[3];
int dx[] = new int[3];
int dy[] = new int[3];
public void init(){
x[0] = 50; x[1] = 30; x[2] = 10; /* 配列変数への初期値代入 */
など。
barx = 170; bary = 80;
bardy = 0;
}
private void ballprint(){ /* ボール描きメソッド */
for(int i = 0; i < 3; i++){ /* 配列の 0 から 2 まで */
ofscr_g.drawRect(x[i], y[i], 10, 10);
}
}
public void run(){
int i;
while(true){ /* 無限ループ */
/* 時間かせぎ */
.............
/* 以下ボール処理 */
for(i = 0; i < 3; i++){ /* ボールの処理ループ */
x[i] = x[i] + dx[i];
y[i] = y[i] + dy[i];
if(x[i] < 10){
x[i] = 10;
dx[i] = -dx[i];
}
等
}
repaint(); /* paint メソッド呼び出し */
}
}
}
|
配列はこの様に new を使って宣言します。 また、宣言と同時に初期値を代入する方法もあります。 上のプログラムをその様にする場合は以下の様にします。
int x[] = {50, 30, 10};
int y[] = {80, 180, 130};
int dx[] = {2, 1, 3};
int dy[] = {3, 4, 2};
これをフィールド変数として宣言します。
多次元配列も宣言できます。
例えば 2 次元配列は以下の様に宣言します。
int ball[][] = {
{50, 30, 10}, {80, 180, 130}, {2, 1, 3}, {3, 4, 2}
};
この 2 次元配列には以下の様な値が代入されています。
配列の順番は「0 番目」から始まることに注意して下さい。
ball[0][0] == 50 , ball[0][1] == 30 , ball[1][2] == 130 , ball[2][0] == 2
To: report
cc: 自分のログイン名
Subject: 2z7
です。
Subjectを間違えないよう注意しましょう。
次回は音を鳴らします。サウンドファイルを配布するので、
フロッピーディスクドライブを持ってきてください。
事前にダウンロードしておくのも良いでしょう。