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

表示オプション

横に並べて表示:
変化行の前後のみ表示: