アットウィキロゴ

Version0.2.0

変更点

  • 非常に多岐にわたる
    • プログラムの改善
    • 画面上にものを配置
    • ものに対する反応
    • 端まで行くと背景ではなくキャラクターがスライドするようになる
    • 攻撃の画像表示(当り判定は未実装)

import java.awt.*;
import java.applet.*;
import java.util.*;
import java.awt.event.*;

public class mini_pro extends Applet implements KeyListener{
Font font = new Font("serif", Font.BOLD, 24);
Image	background, textbox, at;
Image hero[ ]=new Image[4];
Image object[ ]=new Image[4];


//背景を動かす変数
int back;
int objectback;
//キャラクターの位置を示す変数
int position;
//文章のための変数
String string="";
boolean shown=false;
boolean wait=false;
boolean attackshown=false;

int heropose=0;
int heroposition=0;

   public void init() {

       background = getImage(getCodeBase(),"background.png");
	for (int i=0; i<hero.length; i++){
	hero[i] = getImage(getCodeBase(), "chara"+i+".png");
	}
	for (int i=0; i<hero.length; i++){
		object[i] = getImage(getCodeBase(), "object"+i+".png");
	}
	textbox = getImage(getCodeBase(), "textbox.png");
	at= getImage(getCodeBase(), "attack.png");
	addKeyListener(this);
	

	}

   public void paint (Graphics g) {
	g.setColor(Color.white);
	g.setFont(font);
	setSize(640, 480);
	g.drawImage(background, 0-back,0, this);
	g.drawImage(background, 640-back, 0, this);
	g.drawImage(background, -640-back, 0, this);
	g.drawImage(object[0], 640-objectback, 320, this);
	g.drawImage(object[1], 800-objectback, 0, this);
	g.drawImage(hero[heropose], 32+heroposition, 320, this);
	if ( shown == true) {
		g.drawImage(textbox, 0,0, this);
		g.drawString(" "+string,40,40);
	}
	
	g.drawImage(at, 32+128+heroposition, 320, this);
	

   }
//入力チェック
public void keyPressed(KeyEvent ke){
	int keycode = ke.getKeyCode();
if (wait == false) {
	if (keycode == KeyEvent.VK_ENTER) {
		if(attackshown ==false){
			attackshown = true;
			//あたり判定の編集(未実装)
		}
		repaint();
	}
	if (keycode == KeyEvent.VK_RIGHT) {
		//背景を動かす
		if(position <=26){
		if(position >=-5 && position <= 18){
		back +=32;
		objectback+=32;
		}else{
		heroposition+=32;
		}
		position +=1;
		}
		if (back>=640) {
			back=0;
		}
		//キャラクターのポーズを変える
		if (heropose == 0 || heropose==2){
			heropose=1;
		}else{
			heropose=0;
		}
		 repaint();
	}
	if (keycode == KeyEvent.VK_LEFT) {
		//背景を動かす
		if(position >=-7){
		if(position >=-5 && position <=18){
		back -=32;
		objectback-=32;
		}else{
		heroposition-=32;
		}
			position -=1;
		}
		if (back<=-640) {
			back=0;
		}
		//キャラクターのポーズを変える
		if (heropose == 0 || heropose==2){
			heropose=3;
		}else{
			heropose=2;
		}
		repaint();
	}

	if (keycode == KeyEvent.VK_DOWN) {
		if (position>= 18 && position<=22 && shown==false) {
		string = "Here is the cave, which is dangerous.";
			shown=true;
			wait = true;
		}
		if(position = 26){
			//ここで別に作った洞窟の中を表示する(未実装、前回の質問部分)
		}

	}




}else 		if(wait == true){
	if (keycode == KeyEvent.VK_ENTER) {
		if (shown==true ) {
			 string="";
			shown=false;
			wait = false;
		}
	}
}
	repaint();

}

public void keyTyped(KeyEvent ke){

}
public void keyReleased(KeyEvent ke){
	if(attackshown == true){
		attackshown = false;
	}
}


}


  • 今後の課題
    • 次のシーン、またタイトルを作成する
    • 辺り判定と敵キャラの用意


名前:
コメント:
最終更新:2007年01月17日 16:07