アットウィキロゴ

プログラムの構造

  • 授業で習ったパターンを利用した、オーソドックスなものである。オブジェクト指向的な作りではないが、それはまだ完全に制作者が理解していないからである。プログラムでは最初に使用する変数を定義する。主人公の画像、敵キャラの画像等を読み込み、位置を管理する変数、入力に使用する変数などを設定する。
  • その後public void init()で画像読み込みやスレッドを動かせるようにする。画像読み込みにはMediaTrackerを用いている。
  • public void paint(Graphics g)で画像の表示をする。ここで画像の表示の一括管理をしている。
  • public void run()では敵を動かしている。スレッドを用いている。
  • public void keyPressed(KeyEvent ke)でユーザーからの入力を管理している。

個々の説明

当たり判定

  • 当たり判定は主人公の位置を把握する関数と、敵キャラの位置を把握する関数を作ることで実現している。実際にダメージを受けるときは、
		if(enemy1status == true){
		enemy1position-=1;
		if(enemy1pose == 0){
			enemy1pose =1;
		}else{enemy1pose=0;}
		if(Math.abs(enemy1position*32 - heroposition)>=0 && Math.abs(enemy1position*32 - heroposition)<=3*32 ){
			life-=1;
		}
		}
のようなものを利用している。
またこっちから攻撃するときは、攻撃用のグラフィックにあわせ、その範囲内に敵がいれば敵が消えるようになっている。
			if(heropose==2 || heropose==3){
				if(enemy1position*32-heroposition+4*32>=0 && enemy1position*32-heroposition+4*32<=3*32 ){
					enemy1status=false;
			}
			}
			if(heropose==0 || heropose==1){
				if(enemy1position*32- heroposition-4*32>=-3*32 && enemy1position*32 - heroposition-4*32<=0){
					enemy1status=false;
			}
			}
のようにである。

移動

  • 移動については背景の移動と、キャラクター本体の移動を両方使っている。一定条件下では背景を動かし、キャラクターが両端にきたら、キャラクターを横方向にずらしていく、といった感じである。右に動く場合は、
		if(position <=58){
		if(position >=-5 && position <= 49){
		back +=32;
		objectback+=32;
		}else{
		heroposition+=32;
		}
		position +=1;
	enemy1position-=1;
のような形である。

その他

  • その他の部分は、↓を押したときに出る反応は、キャラクターの位置をとる変数(画面上ではなく、キャラクターがゲーム上でいる位置)を管理する関数を用いている。また敵キャラの移動は、スレッドを使い一定時間で動くようにしている。
最終更新:2007年02月02日 00:10