自機の作成
自分で操作する自機を作っていきます。
機能は上下左右の移動、描画(見た目)は青色の正方形(25x25)とし、
最初に言った通り
DJGL-環境構築でウインドウを開くところまでは出来ているものとします。
新規クラス「Player」を作成し、以下のソースコードを打ち込んで下さい。
初期配置や移動スピードとなる数値は自由に変更してもらって構いません。
ソースコード
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の部分を変えると別の色に
//長方形の描画、それぞれ上のsuperの値を使っている
d.fillRect(getX(), getY(), getWidth(), getHeight());
}
}
続いて、実際にゲームをするシーン(ステージ1とか)を表すクラス「Stage」を作成します。
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」)のメインメソッドに変更を加える
public static void main
(String[] args
) { GameManager gm = GameManager.getInstance();
gm.createFrame(800, 600, "テストゲーム");
//ここが変わっている
gm.setUpdatable(new Stage());
}
これでメインクラスを実行させると、真っ白の画面に青い正方形だけが出てくる状態となり、
方向キーでそれぞれの移動に動かすことが出来ると思います。
まとめ
次回はゴールの作成、およびゴールの衝突判定を行います。
自機のスピードや色を変えたり、文字を表示させたりして遊んでてください。
最終更新:2017年06月27日 01:40