From 79ada53ec0d8a78c54db202d3a1bf21a3fa8d2d4 Mon Sep 17 00:00:00 2001 From: Victor Date: Wed, 26 Feb 2014 22:12:34 +0200 Subject: [PATCH 1/2] Add window title Java SE --- Military-Hero-SE/src/com/annimon/militaryhero/Main.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Military-Hero-SE/src/com/annimon/militaryhero/Main.java b/Military-Hero-SE/src/com/annimon/militaryhero/Main.java index cfee8fd..c49bfcb 100644 --- a/Military-Hero-SE/src/com/annimon/militaryhero/Main.java +++ b/Military-Hero-SE/src/com/annimon/militaryhero/Main.java @@ -13,5 +13,6 @@ public class Main extends Application { public Main() { super(new MainApp(), 640, 480); + setTitle("Military Hero"); } } \ No newline at end of file From 1425b74bd71ecc5ec9f5056487f210068cf499e9 Mon Sep 17 00:00:00 2001 From: Victor Date: Wed, 26 Feb 2014 22:45:10 +0200 Subject: [PATCH 2/2] Add comments --- .../src/com/annimon/militaryhero/Background.java | 1 + .../src/com/annimon/militaryhero/Enemy.java | 1 + .../src/com/annimon/militaryhero/GameState.java | 1 + .../src/com/annimon/militaryhero/ImageLoader.java | 6 ++++++ .../com/annimon/militaryhero/InputProcessor.java | 3 ++- .../src/com/annimon/militaryhero/MainApp.java | 5 +++++ .../src/com/annimon/militaryhero/SniperAim.java | 13 +++++++++++++ 7 files changed, 29 insertions(+), 1 deletion(-) diff --git a/Military-Hero-Core/src/com/annimon/militaryhero/Background.java b/Military-Hero-Core/src/com/annimon/militaryhero/Background.java index 8d3df29..d3ead66 100644 --- a/Military-Hero-Core/src/com/annimon/militaryhero/Background.java +++ b/Military-Hero-Core/src/com/annimon/militaryhero/Background.java @@ -4,6 +4,7 @@ import com.annimon.jecp.Graphics; import com.annimon.jecp.Image; /** + * Draws background by separate layers. * @author aNNiMON */ public class Background { diff --git a/Military-Hero-Core/src/com/annimon/militaryhero/Enemy.java b/Military-Hero-Core/src/com/annimon/militaryhero/Enemy.java index 5178c84..7f82c1c 100644 --- a/Military-Hero-Core/src/com/annimon/militaryhero/Enemy.java +++ b/Military-Hero-Core/src/com/annimon/militaryhero/Enemy.java @@ -27,6 +27,7 @@ public class Enemy { public boolean isCollide(int sx, int sy) { if (inRange(sx, x, x + enemyWidth) && inRange(sy, y, y + enemyHeight)) { + // If bullet collide enemy - hide them. visible = false; return true; } diff --git a/Military-Hero-Core/src/com/annimon/militaryhero/GameState.java b/Military-Hero-Core/src/com/annimon/militaryhero/GameState.java index 266240a..fd7d3fe 100644 --- a/Military-Hero-Core/src/com/annimon/militaryhero/GameState.java +++ b/Military-Hero-Core/src/com/annimon/militaryhero/GameState.java @@ -3,6 +3,7 @@ package com.annimon.militaryhero; import com.annimon.jecp.Graphics; /** + * Class for game states. * @author aNNiMON */ public class GameState { diff --git a/Military-Hero-Core/src/com/annimon/militaryhero/ImageLoader.java b/Military-Hero-Core/src/com/annimon/militaryhero/ImageLoader.java index f61faf5..4612a31 100644 --- a/Military-Hero-Core/src/com/annimon/militaryhero/ImageLoader.java +++ b/Military-Hero-Core/src/com/annimon/militaryhero/ImageLoader.java @@ -4,6 +4,7 @@ import com.annimon.jecp.Image; import java.io.IOException; /** + * Simply image loader. * @author aNNiMON */ public class ImageLoader { @@ -14,6 +15,11 @@ public class ImageLoader { OBSTACLES = "obstacles.png", ENEMY = "enemy.png"; + /** + * Load image without checking file existing. + * @param name image name with extension. + * @return Image object or null. + */ public static Image load(String name) { try { return Image.createImage("res/" + name); diff --git a/Military-Hero-Core/src/com/annimon/militaryhero/InputProcessor.java b/Military-Hero-Core/src/com/annimon/militaryhero/InputProcessor.java index b854551..56d0160 100644 --- a/Military-Hero-Core/src/com/annimon/militaryhero/InputProcessor.java +++ b/Military-Hero-Core/src/com/annimon/militaryhero/InputProcessor.java @@ -4,13 +4,14 @@ import com.annimon.jecp.InputListener; import com.annimon.jecp.Keys; /** - * + * Processing keys and pointer actions. * @author aNNiMON */ public abstract class InputProcessor implements InputListener { public static final int LEFT = 0, UP = 1, RIGHT = 2, DOWN = 3, FIRE = 4; + /** Stores dpad-keys pressed state */ private final boolean[] dpadState; public InputProcessor() { diff --git a/Military-Hero-Core/src/com/annimon/militaryhero/MainApp.java b/Military-Hero-Core/src/com/annimon/militaryhero/MainApp.java index d8fbccc..01fb7c0 100644 --- a/Military-Hero-Core/src/com/annimon/militaryhero/MainApp.java +++ b/Military-Hero-Core/src/com/annimon/militaryhero/MainApp.java @@ -6,10 +6,12 @@ import com.annimon.jecp.Jecp; import com.annimon.jecp.Keys; /** + * Main loop. * @author aNNiMON */ public class MainApp extends InputProcessor implements ApplicationListener { + /** Coords for enemies */ private static final int[] COORD = { 6, 321, 49, 318, 100, 228, 145, 259, 230, 356, 86, 375, 365, 325, 344, 232, 296, 296, 457, 355, @@ -50,12 +52,14 @@ public class MainApp extends InputProcessor implements ApplicationListener { for (int i = 0; i < enemies.length; i++) { enemies[i].draw(g); } + // We need to draw enemies BEFORE obstacles. background.drawObstacles(g); aim.draw(g); GameState.drawState(g, width, height); } public void onUpdate() { + // Processing aim movings. if (isPressed(LEFT)) aim.move(-1, 0); else if (isPressed(RIGHT)) aim.move(1, 0); if (isPressed(UP)) aim.move(0, -1); @@ -71,6 +75,7 @@ public class MainApp extends InputProcessor implements ApplicationListener { public void isFirePressed() { if (GameState.isEndGame()) return; + // Check collides with aim and recalculate remaining enemies. final int x = aim.getAimX(); final int y = aim.getAimY(); int counter = 0; diff --git a/Military-Hero-Core/src/com/annimon/militaryhero/SniperAim.java b/Military-Hero-Core/src/com/annimon/militaryhero/SniperAim.java index 92fb3a1..61b7973 100644 --- a/Military-Hero-Core/src/com/annimon/militaryhero/SniperAim.java +++ b/Military-Hero-Core/src/com/annimon/militaryhero/SniperAim.java @@ -23,18 +23,30 @@ public class SniperAim { y = (height - aimHeight) / 2; } + /** + * Move aim by relative coordinates. + * @param dx horizontal offset. + * @param dy vertical offset. + */ public void move(int dx, int dy) { x += dx; y += dy; + // Check bounds horizontally. final int aw2 = aimWidth / 2; if (x < -aw2) x = -aw2; else if (x + aw2 > width) x = width - aw2; + // Check bounds vertically. final int ah2 = aimHeight / 2; if (y < -ah2) y = -ah2; else if (y + ah2 > height) y = height - ah2; } + /** + * Set aim to absolute coordinates. + * @param x new horizontal position. + * @param y new vertical position. + */ public void set(int x, int y) { this.x = x - aimWidth / 2; this.y = y - aimHeight / 2; @@ -50,6 +62,7 @@ public class SniperAim { public void draw(Graphics g) { g.drawImage(aim, x, y); + // Fill screen around aim image. g.setColor(0xFF000000); final int bottom = y + aimHeight; g.fillRect(0, 0, width, y);