From d3334e92e73976637297fe4074972326b9585ab5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delorme?=
Date: Wed, 7 Aug 2024 17:35:39 +0200
Subject: [PATCH] feat(refactor): Rename base packages and classes
---
build.properties | 2 +-
src/docs/02-core.md | 2 +-
src/docs/resources/Demo01Frame_structure.puml | 2 +-
.../apps/{ => console}/Demo01App.java | 2 +-
.../game/GameApp.java} | 109 +++++++++---------
.../{ => desktop/game}/scenes/PlayScene.java | 102 ++++++++--------
.../{ => desktop/game}/scenes/TitleScene.java | 38 +++---
7 files changed, 128 insertions(+), 129 deletions(-)
rename src/main/java/com/snapgames/apps/{ => console}/Demo01App.java (98%)
rename src/main/java/com/snapgames/apps/{Demo01Frame.java => desktop/game/GameApp.java} (95%)
rename src/main/java/com/snapgames/apps/{ => desktop/game}/scenes/PlayScene.java (67%)
rename src/main/java/com/snapgames/apps/{ => desktop/game}/scenes/TitleScene.java (67%)
diff --git a/build.properties b/build.properties
index c833f92..4addddc 100644
--- a/build.properties
+++ b/build.properties
@@ -1,7 +1,7 @@
project.name=Demo01
project.title=Demo01
project.version=1.0.0
-project.main.class=com.snapgames.apps.Demo01Frame
+project.main.class=com.snapgames.apps.desktop.game.GameApp
project.javadoc.classpath=com.snapgames.apps
project.javadoc.packages=-group "Demo01" com.snapgames.apps
project.author.name=Frédéric Delorme
diff --git a/src/docs/02-core.md b/src/docs/02-core.md
index d7d769f..087df6e 100644
--- a/src/docs/02-core.md
+++ b/src/docs/02-core.md
@@ -102,7 +102,7 @@ To use the `Demo01Frame` class, create an instance of it and add it to a JFrame:
```java
public class GameApp {
public static void main(String[] args) {
- JFrame frame = new JFrame("Demo01Frame Game");
+ JFrame frame = new JFrame("GameApp Game");
Demo01Frame demo = new Demo01Frame();
frame.add(demo);
frame.setSize(800, 600);
diff --git a/src/docs/resources/Demo01Frame_structure.puml b/src/docs/resources/Demo01Frame_structure.puml
index b7a73f3..81c859b 100644
--- a/src/docs/resources/Demo01Frame_structure.puml
+++ b/src/docs/resources/Demo01Frame_structure.puml
@@ -70,7 +70,7 @@ config=StructureConfiguration;
"showPackageLevels": 2,
"showDetailedClassStructure": true
},
- "rootClass": "com.snapgames.apps.Demo01Frame",
+ "rootClass": "com.snapgames.apps.desktop.game.GameApp",
"extensionCallbackMethod": "" // qualified.class.name#methodName - signature: public static String method(String)
}
diagram meta data end '/
diff --git a/src/main/java/com/snapgames/apps/Demo01App.java b/src/main/java/com/snapgames/apps/console/Demo01App.java
similarity index 98%
rename from src/main/java/com/snapgames/apps/Demo01App.java
rename to src/main/java/com/snapgames/apps/console/Demo01App.java
index 5737553..3264495 100644
--- a/src/main/java/com/snapgames/apps/Demo01App.java
+++ b/src/main/java/com/snapgames/apps/console/Demo01App.java
@@ -1,4 +1,4 @@
-package com.snapgames.apps;
+package com.snapgames.apps.console;
import java.io.IOException;
import java.time.LocalDateTime;
diff --git a/src/main/java/com/snapgames/apps/Demo01Frame.java b/src/main/java/com/snapgames/apps/desktop/game/GameApp.java
similarity index 95%
rename from src/main/java/com/snapgames/apps/Demo01Frame.java
rename to src/main/java/com/snapgames/apps/desktop/game/GameApp.java
index 4d35352..0146237 100644
--- a/src/main/java/com/snapgames/apps/Demo01Frame.java
+++ b/src/main/java/com/snapgames/apps/desktop/game/GameApp.java
@@ -1,7 +1,7 @@
-package com.snapgames.apps;
+package com.snapgames.apps.desktop.game;
-import com.snapgames.apps.scenes.PlayScene;
-import com.snapgames.apps.scenes.TitleScene;
+import com.snapgames.apps.desktop.game.scenes.PlayScene;
+import com.snapgames.apps.desktop.game.scenes.TitleScene;
import javax.imageio.ImageIO;
import javax.swing.*;
@@ -24,7 +24,7 @@
import java.util.stream.Collectors;
/**
- * Main class for Project {@link Demo01Frame}
+ * Main class for Project {@link GameApp}
*
* This class is the main class for a java game template.
* It initialize default components and services
@@ -55,7 +55,7 @@
* @author Frédéric Delorme frederic.delorme@gmail.com
* @since 1.0.0
*/
-public class Demo01Frame implements KeyListener, MouseListener, MouseWheelListener, MouseMotionListener {
+public class GameApp implements KeyListener, MouseListener, MouseWheelListener, MouseMotionListener {
/**
*
The {@link Entity} class is the Core object for any Scene.
@@ -67,8 +67,8 @@ public class Demo01Frame implements KeyListener, MouseListener, MouseWheelListen
* to the mass
and assigned {@link Material} and applied forces
.
*
*
- * The {@link Entity} is drawn by the {@link Demo01Frame#render(Map)} and more precisely by
- * the {@link Demo01Frame#drawEntity(Entity, Graphics2D)} operation.
+ * The {@link Entity} is drawn by the {@link GameApp#render(Map)} and more precisely by
+ * the {@link GameApp#drawEntity(Entity, Graphics2D)} operation.
*
* you can add som {@link Behavior} on the entity to enhance the different phases of the entity processing:
*
@@ -82,8 +82,8 @@ public class Demo01Frame implements KeyListener, MouseListener, MouseWheelListen
*
* @author Frédéric Delorme
* @see Behavior
- * @see Demo01Frame#update(double)
- * @see Demo01Frame#render(Map)
+ * @see GameApp#update(double)
+ * @see GameApp#render(Map)
* @since 1.0.0
*/
public static class Entity extends Rectangle2D.Double {
@@ -575,7 +575,7 @@ public interface Behavior {
*
* @param app
*/
- default void create(Demo01Frame app, Entity e) {
+ default void create(GameApp app, Entity e) {
}
/**
@@ -584,7 +584,7 @@ default void create(Demo01Frame app, Entity e) {
* @param app the parent application
* @param e the concerned {@link Entity}
*/
- default void input(Demo01Frame app, Entity e) {
+ default void input(GameApp app, Entity e) {
}
/**
@@ -593,7 +593,7 @@ default void input(Demo01Frame app, Entity e) {
* @param app the parent application
* @param e the concerned {@link Entity}
*/
- default void update(Demo01Frame app, Entity e, double elapsed) {
+ default void update(GameApp app, Entity e, double elapsed) {
}
/**
@@ -603,7 +603,7 @@ default void update(Demo01Frame app, Entity e, double elapsed) {
* @param e the concerned {@link Entity}.
* @param g the {@link Graphics2D} API to use.
*/
- default void draw(Demo01Frame app, Entity e, Graphics2D g) {
+ default void draw(GameApp app, Entity e, Graphics2D g) {
}
/**
@@ -613,7 +613,7 @@ default void draw(Demo01Frame app, Entity e, Graphics2D g) {
* @param e the concerned {@link Entity}
* @param k the {@link KeyEvent} to be processed.
*/
- default void onKeyPressed(Demo01Frame app, Entity e, KeyEvent k) {
+ default void onKeyPressed(GameApp app, Entity e, KeyEvent k) {
}
/**
@@ -623,7 +623,7 @@ default void onKeyPressed(Demo01Frame app, Entity e, KeyEvent k) {
* @param e the concerned {@link Entity}
* @param k the {@link KeyEvent} to be processed.
*/
- default void onKeyReleased(Demo01Frame app, Entity e, KeyEvent k) {
+ default void onKeyReleased(GameApp app, Entity e, KeyEvent k) {
}
/**
@@ -632,7 +632,7 @@ default void onKeyReleased(Demo01Frame app, Entity e, KeyEvent k) {
* @param app the parent application
* @param e the concerned {@link Entity}
*/
- default void onActivate(Demo01Frame app, Entity e) {
+ default void onActivate(GameApp app, Entity e) {
}
/**
@@ -641,7 +641,7 @@ default void onActivate(Demo01Frame app, Entity e) {
* @param app the parent application
* @param e the concerned {@link Entity}
*/
- default void onDeactivate(Demo01Frame app, Entity e) {
+ default void onDeactivate(GameApp app, Entity e) {
}
/**
@@ -652,7 +652,7 @@ default void onDeactivate(Demo01Frame app, Entity e) {
* @param mouseX mouse X position
* @param mouseY mouse y position
*/
- default void onMouseIn(Demo01Frame app, Entity e, double mouseX, double mouseY) {
+ default void onMouseIn(GameApp app, Entity e, double mouseX, double mouseY) {
}
/**
@@ -663,7 +663,7 @@ default void onMouseIn(Demo01Frame app, Entity e, double mouseX, double mouseY)
* @param mouseX mouse X position
* @param mouseY mouse y position
*/
- default void onMouseOut(Demo01Frame app, Entity e, double mouseX, double mouseY) {
+ default void onMouseOut(GameApp app, Entity e, double mouseX, double mouseY) {
}
/**
@@ -675,7 +675,7 @@ default void onMouseOut(Demo01Frame app, Entity e, double mouseX, double mouseY)
* @param mouseY mouse y position
* @param buttonId the button number that has been clicked.
*/
- default void onMouseClick(Demo01Frame app, Entity e, double mouseX, double mouseY, int buttonId) {
+ default void onMouseClick(GameApp app, Entity e, double mouseX, double mouseY, int buttonId) {
}
/**
@@ -687,7 +687,7 @@ default void onMouseClick(Demo01Frame app, Entity e, double mouseX, double mouse
* @param mouseY mouse y position
* @param buttonId the button number that has been clicked.
*/
- default void onMousePressed(Demo01Frame app, Entity e, double mouseX, double mouseY, int buttonId) {
+ default void onMousePressed(GameApp app, Entity e, double mouseX, double mouseY, int buttonId) {
}
/**
@@ -699,7 +699,7 @@ default void onMousePressed(Demo01Frame app, Entity e, double mouseX, double mou
* @param mouseY mouse y position
* @param buttonId the button number that has been clicked.
*/
- default void onMouseReleased(Demo01Frame app, Entity e, double mouseX, double mouseY, int buttonId) {
+ default void onMouseReleased(GameApp app, Entity e, double mouseX, double mouseY, int buttonId) {
}
}
@@ -886,7 +886,7 @@ public enum Align {
*/
public static class AlignBehavior implements Behavior {
@Override
- public void update(Demo01Frame app, Entity e, double elapsed) {
+ public void update(GameApp app, Entity e, double elapsed) {
e.child.forEach(c -> {
switch (c.getClass().getSimpleName()) {
case "Button", "TextBox" -> {
@@ -968,7 +968,7 @@ public interface UIObject extends Behavior {
Color mouseReleasedTextColor = Color.WHITE;
@Override
- default void onMousePressed(Demo01Frame app, Entity e, double mouseX, double mouseY, int buttonId) {
+ default void onMousePressed(GameApp app, Entity e, double mouseX, double mouseY, int buttonId) {
e.setFillColor(mousePressedColor);
if (e instanceof Button) {
Button bt = (Button) e;
@@ -977,7 +977,7 @@ default void onMousePressed(Demo01Frame app, Entity e, double mouseX, double mou
}
@Override
- default void onMouseReleased(Demo01Frame app, Entity e, double mouseX, double mouseY, int buttonId) {
+ default void onMouseReleased(GameApp app, Entity e, double mouseX, double mouseY, int buttonId) {
e.setFillColor(mouseReleasedColor);
if (e instanceof Button) {
Button bt = (Button) e;
@@ -986,13 +986,13 @@ default void onMouseReleased(Demo01Frame app, Entity e, double mouseX, double mo
}
@Override
- default void onMouseIn(Demo01Frame app, Entity e, double mouseX, double mouseY) {
+ default void onMouseIn(GameApp app, Entity e, double mouseX, double mouseY) {
e.setFillColor(mouseOnColor);
e.setBorderColor(mouseOnBorderColor);
}
@Override
- default void onMouseOut(Demo01Frame app, Entity e, double mouseX, double mouseY) {
+ default void onMouseOut(GameApp app, Entity e, double mouseX, double mouseY) {
e.setFillColor(mouseOutColor);
e.setBorderColor(mouseOutBorderColor);
}
@@ -1069,28 +1069,28 @@ public Button setAlign(Align a) {
*/
public interface Scene {
- default void load(Demo01Frame app) {
+ default void load(GameApp app) {
}
- void create(Demo01Frame app);
+ void create(GameApp app);
- default void initialize(Demo01Frame app) {
+ default void initialize(GameApp app) {
}
- void activate(Demo01Frame app);
+ void activate(GameApp app);
- default void input(Demo01Frame app) {
+ default void input(GameApp app) {
}
- default void update(Demo01Frame app, double elapsed) {
+ default void update(GameApp app, double elapsed) {
}
- default void draw(Demo01Frame app, Graphics2D g) {
+ default void draw(GameApp app, Graphics2D g) {
}
- void deactivate(Demo01Frame app);
+ void deactivate(GameApp app);
- void dispose(Demo01Frame app);
+ void dispose(GameApp app);
List getBehaviors();
@@ -1118,7 +1118,7 @@ default void draw(Demo01Frame app, Graphics2D g) {
public abstract static class AbstractScene implements Scene {
private static long index = 0;
private final long id = index++;
- private final Demo01Frame app;
+ private final GameApp app;
private String name = "scene_" + id;
private List behaviors = new CopyOnWriteArrayList<>();
@@ -1134,10 +1134,10 @@ public abstract static class AbstractScene implements Scene {
/**
* Create a new {@link AbstractScene} with a name
and a parent app
.
*
- * @param app the parent application {@link Demo01Frame}
+ * @param app the parent application {@link GameApp}
* @param name thename opf this new {@link AbstractScene}
*/
- public AbstractScene(Demo01Frame app, String name) {
+ public AbstractScene(GameApp app, String name) {
this.name = name;
this.app = app;
}
@@ -1204,17 +1204,17 @@ public Camera getActiveCamera() {
}
@Override
- public void activate(Demo01Frame app) {
+ public void activate(GameApp app) {
// nothing to do by default.
}
@Override
- public void deactivate(Demo01Frame app) {
+ public void deactivate(GameApp app) {
getEntities().values().forEach(e -> e.setActive(false));
}
@Override
- public void dispose(Demo01Frame app) {
+ public void dispose(GameApp app) {
}
}
@@ -1311,9 +1311,9 @@ public void dispose(Demo01Frame app) {
private Color backGroundColor = Color.BLACK;
/**
- * Create the {@link Demo01Frame} instance and detect the current java context.
+ * Create the {@link GameApp} instance and detect the current java context.
*/
- public Demo01Frame() {
+ public GameApp() {
info("Initialization application %s (%s); running on JDK %s; at %s; with classpath = %s",
messages.getString("app.name"),
messages.getString("app.version"),
@@ -1347,9 +1347,9 @@ private void init(String[] args) {
}
/**
- * Parse all the arguments from args
and set default values into {@link Demo01Frame#config} as a configuration set.
+ * Parse all the arguments from args
and set default values into {@link GameApp#config} as a configuration set.
*
- * @param args the list of arguments to parse and set as default in the {@link Demo01Frame#config}.
+ * @param args the list of arguments to parse and set as default in the {@link GameApp#config}.
*/
private void parseCliArguments(String[] args) {
List lArgs = Arrays.asList(args);
@@ -1440,7 +1440,7 @@ public void parseConfiguration() {
public void loadConfiguration(String configFilePath) {
try {
- Path rootPath = Paths.get(Demo01Frame.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParent();
+ Path rootPath = Paths.get(GameApp.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParent();
File propertyFile = new File(rootPath.toFile(), configFilePath);
if (propertyFile.exists()) {
try (InputStream input = new FileInputStream(propertyFile)) {
@@ -1533,8 +1533,8 @@ public void activateScene(String sceneName) {
* The {@link Entity} and its child are set to active, and the corresponding behaviors for the
* {@link Entity} and all its child will be applied
*
- * - {@link Behavior#onActivate(Demo01Frame, Entity)} if {@link Entity} is set to visible,
- * - {@link Behavior#onDeactivate(Demo01Frame, Entity)} if visibility of the {@link Entity} is unset.
+ * - {@link Behavior#onActivate(GameApp, Entity)} if {@link Entity} is set to visible,
+ * - {@link Behavior#onDeactivate(GameApp, Entity)} if visibility of the {@link Entity} is unset.
*
*
* @param e the {@link Entity} to set as visible.
@@ -1579,12 +1579,12 @@ public static T getResource(String path) {
case "ttf" -> {
return (T) Font.createFont(
Font.TRUETYPE_FONT,
- Demo01Frame.class.getResourceAsStream(path));
+ GameApp.class.getResourceAsStream(path));
}
case "png", "jpg" -> {
if (path.contains("|")) {
String filePath = path.substring(0, path.lastIndexOf("|"));
- BufferedImage img = ImageIO.read(Objects.requireNonNull(Demo01Frame.class.getResourceAsStream(filePath)));
+ BufferedImage img = ImageIO.read(Objects.requireNonNull(GameApp.class.getResourceAsStream(filePath)));
String slice = path.substring(path.lastIndexOf("|") + 1);
String[] slices = slice.split(",");
return (T) img.getSubimage(
@@ -1594,7 +1594,7 @@ public static T getResource(String path) {
Integer.parseInt(slices[3])
);
} else {
- return (T) ImageIO.read(Demo01Frame.class.getResourceAsStream(path));
+ return (T) ImageIO.read(GameApp.class.getResourceAsStream(path));
}
}
default -> {
@@ -1755,7 +1755,7 @@ private void updateEntity(double delay, Entity e) {
}
/**
- * The {@link Demo01Frame#applyPhysics(double, Entity)} method updates the
+ * The {@link GameApp#applyPhysics(double, Entity)} method updates the
* physics properties of an {@link Entity} object based on the forces acting
* on it, the delay time, and the {@link Entity}'s material properties.
*
@@ -2160,7 +2160,7 @@ public void dispose() {
/*----- Game start entry point -----*/
public static void main(String[] argc) {
- Demo01Frame app = new Demo01Frame();
+ GameApp app = new GameApp();
app.run(argc);
}
@@ -2358,7 +2358,6 @@ public World getWorld() {
return this.world;
}
-
public void setExit(boolean x) {
exit = x;
}
diff --git a/src/main/java/com/snapgames/apps/scenes/PlayScene.java b/src/main/java/com/snapgames/apps/desktop/game/scenes/PlayScene.java
similarity index 67%
rename from src/main/java/com/snapgames/apps/scenes/PlayScene.java
rename to src/main/java/com/snapgames/apps/desktop/game/scenes/PlayScene.java
index a2f68b2..ec447d9 100644
--- a/src/main/java/com/snapgames/apps/scenes/PlayScene.java
+++ b/src/main/java/com/snapgames/apps/desktop/game/scenes/PlayScene.java
@@ -1,15 +1,15 @@
-package com.snapgames.apps.scenes;
+package com.snapgames.apps.desktop.game.scenes;
-import com.snapgames.apps.Demo01Frame;
+import com.snapgames.apps.desktop.game.GameApp;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.geom.Point2D;
-import static com.snapgames.apps.Demo01Frame.getResource;
-import static com.snapgames.apps.Demo01Frame.setPause;
+import static com.snapgames.apps.desktop.game.GameApp.getResource;
+import static com.snapgames.apps.desktop.game.GameApp.setPause;
-public class PlayScene extends Demo01Frame.AbstractScene {
+public class PlayScene extends GameApp.AbstractScene {
/**
@@ -25,76 +25,76 @@ public class PlayScene extends Demo01Frame.AbstractScene {
Font textFont;
- public PlayScene(Demo01Frame app, String name) {
+ public PlayScene(GameApp app, String name) {
super(app, name);
}
@Override
- public void load(Demo01Frame app) {
+ public void load(GameApp app) {
scoreFont = getResource("/fonts/upheavtt.ttf");
textFont = getResource("/fonts/Minecraftia-Regular.ttf");
}
@Override
- public void create(Demo01Frame app) {
+ public void create(GameApp app) {
Font scoreFont = getResource("/fonts/upheavtt.ttf");
Font textFont = getResource("/fonts/Minecraftia-Regular.ttf");
- add(new Demo01Frame.ImageObject("forest")
+ add(new GameApp.ImageObject("forest")
.setImage(getResource("/images/backgrounds/forest.jpg"))
.setPosition(0, 0)
.setSize(app.getWorld().playArea.getWidth(), app.getWorld().playArea.getHeight())
);
- add(new Demo01Frame.TextObject("score")
+ add(new GameApp.TextObject("score")
.setText("%05d")
.setValue(score)
.setFont(scoreFont.deriveFont(18.0f))
.setPosition(20, 16)
.setBorderColor(Color.WHITE)
.setRelativeToCamera(true)
- .add(new Demo01Frame.Behavior() {
+ .add(new GameApp.Behavior() {
@Override
- public void input(Demo01Frame app, Demo01Frame.Entity e) {
- ((Demo01Frame.TextObject) e).setValue(score);
+ public void input(GameApp app, GameApp.Entity e) {
+ ((GameApp.TextObject) e).setValue(score);
}
})
);
- add(new Demo01Frame.ImageObject("heart")
+ add(new GameApp.ImageObject("heart")
.setImage(getResource("/images/tiles01.png|0,96,16,16"))
.setPosition(app.getBuffer().getWidth() - 40, 3)
.setSize(16, 16)
.setRelativeToCamera(true)
);
- add(new Demo01Frame.TextObject("Life")
+ add(new GameApp.TextObject("Life")
.setText("%01d")
.setValue(lifeCount)
.setFont(textFont.deriveFont(8.0f))
.setPosition(app.getBuffer().getWidth() - 32, 16)
.setBorderColor(Color.WHITE)
.setRelativeToCamera(true)
- .add(new Demo01Frame.Behavior() {
+ .add(new GameApp.Behavior() {
@Override
- public void input(Demo01Frame app, Demo01Frame.Entity e) {
- ((Demo01Frame.TextObject) e).setValue(lifeCount);
+ public void input(GameApp app, GameApp.Entity e) {
+ ((GameApp.TextObject) e).setValue(lifeCount);
}
})
);
generateEntities(app, "enemy_", 20);
- Demo01Frame.GameObject player = (Demo01Frame.GameObject) new Demo01Frame.GameObject("player")
- .setNature(Demo01Frame.GameObjectNature.RECTANGLE)
+ GameApp.GameObject player = (GameApp.GameObject) new GameApp.GameObject("player")
+ .setNature(GameApp.GameObjectNature.RECTANGLE)
.setPosition(app.getWorld().playArea.getWidth() * 0.5,
app.getWorld().playArea.getHeight() * 0.5)
.setSize(16, 16).setPriority(200)
- .setMaterial(new Demo01Frame.Material("Player_MAT", 1.0, 0.998, 0.98))
+ .setMaterial(new GameApp.Material("Player_MAT", 1.0, 0.998, 0.98))
.setMass(10.0)
- .add(new Demo01Frame.Behavior() {
+ .add(new GameApp.Behavior() {
@Override
- public void input(Demo01Frame app, Demo01Frame.Entity player) {
+ public void input(GameApp app, GameApp.Entity player) {
double speed = 0.025;
if (app.isKeyPressed(KeyEvent.VK_UP)) {
player.forces.add(new Point2D.Double(0, -(speed * 2.0)));
@@ -114,14 +114,14 @@ public void input(Demo01Frame app, Demo01Frame.Entity player) {
generateEntities(app, "enemy_", 20);
- setActiveCamera((Demo01Frame.Camera)
- new Demo01Frame.Camera("cam01")
+ setActiveCamera((GameApp.Camera)
+ new GameApp.Camera("cam01")
.setTarget(player)
.setTweenFactor(0.01)
.setSize(app.getBuffer().getWidth(), app.getBuffer().getHeight())
- .add(new Demo01Frame.Behavior() {
+ .add(new GameApp.Behavior() {
@Override
- public void draw(Demo01Frame app, Demo01Frame.Entity e, Graphics2D g) {
+ public void draw(GameApp app, GameApp.Entity e, Graphics2D g) {
g.setColor(Color.WHITE);
g.setFont(textFont.deriveFont(8.0f));
g.drawString(
@@ -130,7 +130,7 @@ public void draw(Demo01Frame app, Demo01Frame.Entity e, Graphics2D g) {
}
}));
- Demo01Frame.DialogBox exitConfirmation = (Demo01Frame.DialogBox) new Demo01Frame.DialogBox("exitConfirmBox")
+ GameApp.DialogBox exitConfirmation = (GameApp.DialogBox) new GameApp.DialogBox("exitConfirmBox")
.setText(app.messages.getString("app.dialog.exit.message"))
.setFont(textFont.deriveFont(8.0f))
.setTextColor(Color.WHITE)
@@ -140,20 +140,20 @@ public void draw(Demo01Frame app, Demo01Frame.Entity e, Graphics2D g) {
.setActive(false)
.setPosition((app.getBuffer().getWidth() - 140) * 0.5, (app.getBuffer().getHeight() - 40) * 0.5)
.setPriority(10)
- .add(new Demo01Frame.Behavior() {
+ .add(new GameApp.Behavior() {
@Override
- public void onActivate(Demo01Frame app, Demo01Frame.Entity e) {
+ public void onActivate(GameApp app, GameApp.Entity e) {
setPause(true);
}
@Override
- public void onDeactivate(Demo01Frame app, Demo01Frame.Entity e) {
+ public void onDeactivate(GameApp app, GameApp.Entity e) {
setPause(false);
}
})
- .add(new Demo01Frame.UIObject() {
+ .add(new GameApp.UIObject() {
@Override
- public void onKeyReleased(Demo01Frame app, Demo01Frame.Entity e, KeyEvent k) {
+ public void onKeyReleased(GameApp app, GameApp.Entity e, KeyEvent k) {
if (k.getKeyCode() == KeyEvent.VK_Y || k.getKeyCode() == KeyEvent.VK_SPACE) {
app.setExit(true);
}
@@ -163,41 +163,41 @@ public void onKeyReleased(Demo01Frame app, Demo01Frame.Entity e, KeyEvent k) {
}
}
});
- add((Demo01Frame.Entity) exitConfirmation);
+ add((GameApp.Entity) exitConfirmation);
// Add the required button OK
- Demo01Frame.Entity okButton = (Demo01Frame.Button) new Demo01Frame.Button("OK")
- .setAlign(Demo01Frame.Align.RIGHT)
- .setTextAlign(Demo01Frame.Align.CENTER)
+ GameApp.Entity okButton = (GameApp.Button) new GameApp.Button("OK")
+ .setAlign(GameApp.Align.RIGHT)
+ .setTextAlign(GameApp.Align.CENTER)
.setText(app.messages.getString("app.dialog.button.ok"))
.setTextColor(Color.WHITE)
.setFillColor(Color.GRAY)
.setActive(false)
.setSize(40, 12)
.setPriority(20)
- .add(new Demo01Frame.UIObject() {
+ .add(new GameApp.UIObject() {
@Override
- public void onMouseClick(Demo01Frame app, Demo01Frame.Entity e, double mouseX, double mouseY, int buttonId) {
+ public void onMouseClick(GameApp app, GameApp.Entity e, double mouseX, double mouseY, int buttonId) {
app.setExit(true);
e.setFillColor(Color.CYAN);
}
});
// Add the required button Cancel
- Demo01Frame.Entity cancelButton = new Demo01Frame.Button("Cancel")
- .setAlign(Demo01Frame.Align.LEFT)
+ GameApp.Entity cancelButton = new GameApp.Button("Cancel")
+ .setAlign(GameApp.Align.LEFT)
.setText(app.messages.getString("app.dialog.button.cancel"))
- .setTextAlign(Demo01Frame.Align.CENTER)
+ .setTextAlign(GameApp.Align.CENTER)
.setTextColor(Color.WHITE)
.setFillColor(Color.GRAY)
.setActive(false)
.setSize(40, 12)
.setPriority(20)
- .add(new Demo01Frame.UIObject() {
+ .add(new GameApp.UIObject() {
@Override
- public void onMouseClick(Demo01Frame app, Demo01Frame.Entity e, double mouseX, double mouseY, int buttonId) {
+ public void onMouseClick(GameApp app, GameApp.Entity e, double mouseX, double mouseY, int buttonId) {
app.setExit(false);
- Demo01Frame.DialogBox db = (Demo01Frame.DialogBox) getEntity("exitConfirmBox");
+ GameApp.DialogBox db = (GameApp.DialogBox) getEntity("exitConfirmBox");
db.setVisible(false);
setPause(false);
e.setFillColor(Color.CYAN);
@@ -209,13 +209,13 @@ public void onMouseClick(Demo01Frame app, Demo01Frame.Entity e, double mouseX, d
exitConfirmation.add(okButton);
exitConfirmation.add(cancelButton);
- add(new Demo01Frame.Behavior() {
+ add(new GameApp.Behavior() {
@Override
- public void onKeyReleased(Demo01Frame app, Demo01Frame.Entity e, KeyEvent k) {
+ public void onKeyReleased(GameApp app, GameApp.Entity e, KeyEvent k) {
switch (k.getKeyCode()) {
// exit application on ESCAPE
case KeyEvent.VK_ESCAPE -> {
- Demo01Frame.DialogBox db = (Demo01Frame.DialogBox) getEntity("exitConfirmBox");
+ GameApp.DialogBox db = (GameApp.DialogBox) getEntity("exitConfirmBox");
app.activateEntity(db, true);
}
case KeyEvent.VK_PAGE_UP -> {
@@ -238,16 +238,16 @@ public void onKeyReleased(Demo01Frame app, Demo01Frame.Entity e, KeyEvent k) {
}
- private void generateEntities(Demo01Frame app, String rootName, int nbEntities) {
+ private void generateEntities(GameApp app, String rootName, int nbEntities) {
for (int i = 0; i < nbEntities; i++) {
- add(new Demo01Frame.Entity(rootName + Demo01Frame.Entity.index)
+ add(new GameApp.Entity(rootName + GameApp.Entity.index)
.setPosition(app.getWorld().playArea.getWidth() * Math.random(),
app.getWorld().playArea.getHeight() * Math.random())
.setSize(8, 8)
.setPriority(100 + i)
.setFillColor(Color.RED)
.setAcceleration(0.25 - (Math.random() * 0.5), 0.25 - (Math.random() * 0.5))
- .setMaterial(new Demo01Frame.Material("Enemy_MAT", 1.0, 0.98, 1.0))
+ .setMaterial(new GameApp.Material("Enemy_MAT", 1.0, 0.98, 1.0))
.setMass(2.0 + (5.0 * Math.random())));
}
}
diff --git a/src/main/java/com/snapgames/apps/scenes/TitleScene.java b/src/main/java/com/snapgames/apps/desktop/game/scenes/TitleScene.java
similarity index 67%
rename from src/main/java/com/snapgames/apps/scenes/TitleScene.java
rename to src/main/java/com/snapgames/apps/desktop/game/scenes/TitleScene.java
index bcb6265..f8087cf 100644
--- a/src/main/java/com/snapgames/apps/scenes/TitleScene.java
+++ b/src/main/java/com/snapgames/apps/desktop/game/scenes/TitleScene.java
@@ -1,14 +1,14 @@
-package com.snapgames.apps.scenes;
+package com.snapgames.apps.desktop.game.scenes;
-import com.snapgames.apps.Demo01Frame;
+import com.snapgames.apps.desktop.game.GameApp;
import java.awt.*;
import java.awt.event.KeyEvent;
-import static com.snapgames.apps.Demo01Frame.getResource;
-import static com.snapgames.apps.Demo01Frame.messages;
+import static com.snapgames.apps.desktop.game.GameApp.getResource;
+import static com.snapgames.apps.desktop.game.GameApp.messages;
-public class TitleScene extends Demo01Frame.AbstractScene {
+public class TitleScene extends GameApp.AbstractScene {
Font scoreFont;
@@ -17,55 +17,55 @@ public class TitleScene extends Demo01Frame.AbstractScene {
/**
* Create a new {@link TitleScene} with a name
and a parent app
.
*
- * @param app the parent application {@link Demo01Frame}
+ * @param app the parent application {@link GameApp}
* @param name thename opf this new {@link TitleScene}
*/
- public TitleScene(Demo01Frame app, String name) {
+ public TitleScene(GameApp app, String name) {
super(app, name);
}
@Override
- public void load(Demo01Frame app) {
+ public void load(GameApp app) {
scoreFont = getResource("/fonts/upheavtt.ttf");
textFont = getResource("/fonts/Minecraftia-Regular.ttf");
}
@Override
- public void create(Demo01Frame app) {
+ public void create(GameApp app) {
- add(new Demo01Frame.ImageObject("forest")
+ add(new GameApp.ImageObject("forest")
.setImage(getResource("/images/backgrounds/forest.jpg"))
.setPosition(0, 0)
.setSize(app.getWorld().playArea.getWidth(), app.getWorld().playArea.getHeight())
);
- add(new Demo01Frame.TextObject("game-title")
+ add(new GameApp.TextObject("game-title")
.setText(messages.getString("app.scene.title.game.title"))
.setFont(scoreFont.deriveFont(18.0f))
- .setTextAlign(Demo01Frame.Align.CENTER)
+ .setTextAlign(GameApp.Align.CENTER)
.setPosition(app.getBuffer().getWidth() * 0.5, app.getBuffer().getHeight() * 0.15)
.setBorderColor(Color.WHITE)
.setRelativeToCamera(true)
);
- add(new Demo01Frame.TextObject("welcome-msg")
+ add(new GameApp.TextObject("welcome-msg")
.setText(messages.getString("app.scene.title.welcome.message"))
.setFont(textFont.deriveFont(12.0f))
- .setTextAlign(Demo01Frame.Align.CENTER)
+ .setTextAlign(GameApp.Align.CENTER)
.setPosition(app.getBuffer().getWidth() * 0.5, app.getBuffer().getHeight() * 0.65)
.setBorderColor(Color.WHITE)
.setRelativeToCamera(true)
);
- add(new Demo01Frame.TextObject("copyright-msg")
+ add(new GameApp.TextObject("copyright-msg")
.setText(messages.getString("app.scene.title.copyright.message"))
.setFont(textFont.deriveFont(6.0f))
- .setTextAlign(Demo01Frame.Align.RIGHT)
+ .setTextAlign(GameApp.Align.RIGHT)
.setPosition(app.getBuffer().getWidth() - 10, app.getBuffer().getHeight() - 20)
.setBorderColor(Color.WHITE)
.setRelativeToCamera(true)
);
- add(new Demo01Frame.Behavior() {
+ add(new GameApp.Behavior() {
@Override
- public void onKeyReleased(Demo01Frame app, Demo01Frame.Entity e, KeyEvent k) {
+ public void onKeyReleased(GameApp app, GameApp.Entity e, KeyEvent k) {
switch (k.getKeyCode()) {
case KeyEvent.VK_ENTER -> {
app.activateScene("play");
@@ -80,7 +80,7 @@ public void onKeyReleased(Demo01Frame app, Demo01Frame.Entity e, KeyEvent k) {
}
@Override
- public void update(Demo01Frame app, double elapsed) {
+ public void update(GameApp app, double elapsed) {
super.update(app, elapsed);
}
}