FIRST-自機の作成

「FIRST-自機の作成」の編集履歴(バックアップ)一覧に戻る

FIRST-自機の作成 - (2017/06/27 (火) 01:40:10) のソース

*自機の作成
----
自分で操作する自機を作っていきます。
機能は上下左右の移動、描画(見た目)は青色の正方形(25x25)とし、
最初に言った通り[[DJGL-環境構築>>DJGL-環境構築]]でウインドウを開くところまでは出来ているものとします。
----
新規クラス「Player」を作成し、以下のソースコードを打ち込んで下さい。
初期配置や移動スピードとなる数値は自由に変更してもらって構いません。

**ソースコード
----
#highlight(linenumber,java){{
import java.awt.Color;
import java.awt.event.KeyEvent;

import densan.s.game.drawing.Drawer;
import densan.s.game.input.KeyInput;
import densan.s.game.object.GameObjectBase;


//自機
public class Player extends GameObjectBase{
       
	public Player() {
		super(25, 450, 25, 25);   //左から「初期x座標」「初期y座標」「横の大きさ」「縦の大きさ」
	}


       //それぞれの方向キーを押している間、addX()の()内の数値だけx座標を移動させる。
       //x座標が正の時は右方向、y座標が正の時は下方向に加算している。
	@Override
	public void update() {
		if(KeyInput.isPressing(KeyEvent.VK_RIGHT)){
			addX(5);
		}
		if(KeyInput.isPressing(KeyEvent.VK_LEFT)){
			addX(-5);
		}
		if(KeyInput.isPressing(KeyEvent.VK_UP)){
			addY(-5);
		}
		if(KeyInput.isPressing(KeyEvent.VK_DOWN)){
			addY(5);
		}
	}

	@Override
	public void draw(Drawer d) {
             //青色、BLUEの部分を変えると別の色に
		d.setColor(Color.BLUE);                             
             //長方形の描画、それぞれ上のsuperの値を使っている
		d.fillRect(getX(), getY(), getWidth(), getHeight());
	}
}
}}
----

続いて、実際にゲームをするシーン(ステージ1とか)を表すクラス「Stage」を作成します。

----
#highlight(linenumber,java){{
import densan.s.game.drawing.Drawer;
import densan.s.game.manager.Updatable;

//ゲームシーン
public class Stage implements Updatable{
       //Playerクラスの変数playerを作成(これだけだと変数playerは空の状態)
	Player player;
	
	public Stage(){
             //変数playerにPlayerのインスタンスを参照、今は言葉を理解出来なくて良い
             player = new Player();
	}

	@Override
	public void update() {
             //Playerクラスのupdate()メソッドを使えるようにする
		player.update();
	}

	@Override
	public void draw(Drawer d) {
             //Playerクラスのdraw()メソッドを使えるようにする(playerを描画する)
		player.draw(d);
	}
}
}}
----

最後に、環境構築の時に作ったメインクラス(環境構築では「TestGame」)のメインメソッドに変更を加える

----
#highlight(linenumber,java){{
	public static void main(String[] args) {
		GameManager gm = GameManager.getInstance();
		gm.createFrame(800, 600, "テストゲーム");

             //ここが変わっている
		gm.setUpdatable(new Stage());
	}
}}
----

これでメインクラスを実行させると、真っ白の画面に青い正方形だけが出てくる状態となり、
方向キーでそれぞれの移動に動かすことが出来ると思います。

**まとめ
----
次回はゴールの作成、およびゴールの衝突判定を行います。
自機のスピードや色を変えたり、文字を表示させたりして遊んでてください。
----
#comment_num2