diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000000000000000000000000000000000000..de4500eadcaf3bb433df92ed62169618ffad3b0e --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CompilerConfiguration"> + <annotationProcessing> + <profile name="Maven default annotation processors profile" enabled="true"> + <sourceOutputDir name="target/generated-sources/annotations" /> + <sourceTestOutputDir name="target/generated-test-sources/test-annotations" /> + <outputRelativeToContentRoot value="true" /> + <module name="jiaxi3-project-1" /> + </profile> + </annotationProcessing> + <bytecodeTargetLevel> + <module name="jiaxi3-project-1" target="11" /> + </bytecodeTargetLevel> + </component> +</project> \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000000000000000000000000000000000000..712ab9d985c20018a0c97b93d2148ac1ffe588a5 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="RemoteRepositoriesConfiguration"> + <remote-repository> + <option name="id" value="central" /> + <option name="name" value="Central Repository" /> + <option name="url" value="https://repo.maven.apache.org/maven2" /> + </remote-repository> + <remote-repository> + <option name="id" value="central" /> + <option name="name" value="Maven Central repository" /> + <option name="url" value="https://repo1.maven.org/maven2" /> + </remote-repository> + <remote-repository> + <option name="id" value="jboss.community" /> + <option name="name" value="JBoss Community repository" /> + <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" /> + </remote-repository> + </component> +</project> \ No newline at end of file diff --git a/.idea/libraries/Maven__io_github_eleanor_em_bagel_1_9_3.xml b/.idea/libraries/Maven__io_github_eleanor_em_bagel_1_9_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..8a3817e8e03ccad221cb388d67521c24d3f93203 --- /dev/null +++ b/.idea/libraries/Maven__io_github_eleanor_em_bagel_1_9_3.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: io.github.eleanor-em:bagel:1.9.3"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/io/github/eleanor-em/bagel/1.9.3/bagel-1.9.3.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/io/github/eleanor-em/bagel/1.9.3/bagel-1.9.3-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/io/github/eleanor-em/bagel/1.9.3/bagel-1.9.3-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_3_3_1.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_3_3_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..e98564b365d8486ca9d54a81d4a858f21e33c3c8 --- /dev/null +++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_3_3_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.lwjgl:lwjgl:3.3.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.3.1/lwjgl-3.3.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.3.1/lwjgl-3.3.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.3.1/lwjgl-3.3.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_3_3_1.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_3_3_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..6f6e6029938d74ab77da10664741dbc65ed63e33 --- /dev/null +++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_3_3_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.lwjgl:lwjgl-assimp:3.3.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.3.1/lwjgl-assimp-3.3.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.3.1/lwjgl-assimp-3.3.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.3.1/lwjgl-assimp-3.3.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_natives_windows_3_3_1.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_natives_windows_3_3_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..c833f3b48c412f941f7610bfcb8c81efa503344f --- /dev/null +++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_assimp_natives_windows_3_3_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.lwjgl:lwjgl-assimp:natives-windows:3.3.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.3.1/lwjgl-assimp-3.3.1-natives-windows.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.3.1/lwjgl-assimp-3.3.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-assimp/3.3.1/lwjgl-assimp-3.3.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_3_3_1.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_3_3_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..575ef41acb75020f769bf7f85b0316ce0473a00d --- /dev/null +++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_3_3_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.lwjgl:lwjgl-glfw:3.3.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.3.1/lwjgl-glfw-3.3.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.3.1/lwjgl-glfw-3.3.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.3.1/lwjgl-glfw-3.3.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_natives_windows_3_3_1.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_natives_windows_3_3_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..53723e077a20b294e423abdf24bc077524f09298 --- /dev/null +++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_glfw_natives_windows_3_3_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.lwjgl:lwjgl-glfw:natives-windows:3.3.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.3.1/lwjgl-glfw-3.3.1-natives-windows.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.3.1/lwjgl-glfw-3.3.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-glfw/3.3.1/lwjgl-glfw-3.3.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_natives_windows_3_3_1.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_natives_windows_3_3_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..fd3d30064c2c8802ac60bb9b8f7ed0fa48eaed9e --- /dev/null +++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_natives_windows_3_3_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.lwjgl:lwjgl:natives-windows:3.3.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.3.1/lwjgl-3.3.1-natives-windows.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.3.1/lwjgl-3.3.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl/3.3.1/lwjgl-3.3.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_3_3_1.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_3_3_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..3898dc0192f2d6b09f5cc8e3927418f88689ee41 --- /dev/null +++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_3_3_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.lwjgl:lwjgl-openal:3.3.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.3.1/lwjgl-openal-3.3.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.3.1/lwjgl-openal-3.3.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.3.1/lwjgl-openal-3.3.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_natives_windows_3_3_1.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_natives_windows_3_3_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..8ce280d599df008d3248a447e9b0ab95ed362d08 --- /dev/null +++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_openal_natives_windows_3_3_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.lwjgl:lwjgl-openal:natives-windows:3.3.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.3.1/lwjgl-openal-3.3.1-natives-windows.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.3.1/lwjgl-openal-3.3.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-openal/3.3.1/lwjgl-openal-3.3.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_3_3_1.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_3_3_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..2b4c9d9706511f001f887f9b073702ec9a011822 --- /dev/null +++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_3_3_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.lwjgl:lwjgl-opengl:3.3.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.3.1/lwjgl-opengl-3.3.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.3.1/lwjgl-opengl-3.3.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.3.1/lwjgl-opengl-3.3.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_natives_windows_3_3_1.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_natives_windows_3_3_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..efacd01b4f5f5b25f3981a14a67f3084563eab49 --- /dev/null +++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_opengl_natives_windows_3_3_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.lwjgl:lwjgl-opengl:natives-windows:3.3.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.3.1/lwjgl-opengl-3.3.1-natives-windows.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.3.1/lwjgl-opengl-3.3.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-opengl/3.3.1/lwjgl-opengl-3.3.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_3_3_1.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_3_3_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..28e05c466568d219fdf600eb2af4d54ba77a1076 --- /dev/null +++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_3_3_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.lwjgl:lwjgl-stb:3.3.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.3.1/lwjgl-stb-3.3.1.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.3.1/lwjgl-stb-3.3.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.3.1/lwjgl-stb-3.3.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_natives_windows_3_3_1.xml b/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_natives_windows_3_3_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..41b68da764c01af5061b4f54a42042981f65bd05 --- /dev/null +++ b/.idea/libraries/Maven__org_lwjgl_lwjgl_stb_natives_windows_3_3_1.xml @@ -0,0 +1,13 @@ +<component name="libraryTable"> + <library name="Maven: org.lwjgl:lwjgl-stb:natives-windows:3.3.1"> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.3.1/lwjgl-stb-3.3.1-natives-windows.jar!/" /> + </CLASSES> + <JAVADOC> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.3.1/lwjgl-stb-3.3.1-javadoc.jar!/" /> + </JAVADOC> + <SOURCES> + <root url="jar://$MAVEN_REPOSITORY$/org/lwjgl/lwjgl-stb/3.3.1/lwjgl-stb-3.3.1-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/src/ShadowDimension.java b/src/ShadowDimension.java index b781d1866f5291ca67b64718b168f91ef43d787e..957bc311a967938e5a16cf02743615ce15435bd2 100644 --- a/src/ShadowDimension.java +++ b/src/ShadowDimension.java @@ -1,19 +1,32 @@ import bagel.*; +import bagel.util.Colour; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; /** * Skeleton Code for SWEN20003 Project 1, Semester 2, 2022 - * + * <p> * Please enter your name below + * * @author */ + public class ShadowDimension extends AbstractGame { private final static int WINDOW_WIDTH = 1024; private final static int WINDOW_HEIGHT = 768; private final static String GAME_TITLE = "SHADOW DIMENSION"; private final Image BACKGROUND_IMAGE = new Image("res/background0.png"); + private final Font title = new Font("res/frostbite.ttf", 75); + private final Font hint = new Font("res/frostbite.ttf", 40); - public ShadowDimension(){ + private static int game_state = 0; + + Player player = new Player(); + + public ShadowDimension() { super(WINDOW_WIDTH, WINDOW_HEIGHT, GAME_TITLE); } @@ -29,8 +42,30 @@ public class ShadowDimension extends AbstractGame { * Method used to read file and create objects (You can change this * method as you wish). */ - private void readCSV(){ + private void readCSV() { + String str = null; + String[] csv; + try { + /*Read CSV file*/ + str = new String(Files.readAllBytes(Paths.get("res/level0.csv"))); + } catch (IOException e) { + throw new RuntimeException(e); + } + + /*Split csv text by \r\n or \n, get all line.*/ + csv = str.split("\r\n|\n"); + /*For all line*/ + for (int i = 0; i < csv.length; i++) { + /*Split by ',' , get data.*/ + String[] line = csv[i].split(","); + if (line[0].equals("Player")) { + /*Set player pos*/ + player.X = Integer.parseInt(line[1]); + player.Y = Integer.parseInt(line[2]); + } + //System.out.println(csv[i]); + } } /** @@ -39,9 +74,45 @@ public class ShadowDimension extends AbstractGame { */ @Override protected void update(Input input) { - BACKGROUND_IMAGE.draw(Window.getWidth()/2.0, Window.getHeight()/2.0); + /*State for game + * 0:Init and show welcom page + * 1:Show Play page*/ + switch (game_state) { + case 0: { + /*Draw Text*/ + Drawing.drawRectangle(0, 0, 1024, 768, new Colour(103.0 / 256, 153.0 / 256, 231.0 / 256)); + title.drawString("SHADOW DIMENSION", 260, 250); + hint.drawString("PRESS SPACE TO START\nUSE ARROW KEYS TO FIND GATE", + (Window.getWidth() - hint.getWidth("USE ARROW KEYS TO FIND GATE") + 90) / 2, + (Window.getHeight() - 80 + 190) / 2); + + /*Wait for space key*/ + if (input.wasPressed(Keys.SPACE)) { + /*Change game state to 1(play page)*/ + game_state = 1; + /*Read csv file and get info of player & wall & hole & world size*/ + readCSV(); + } + break; + } + + case 1: { + /*Show world image*/ + BACKGROUND_IMAGE.draw(Window.getWidth() / 2.0, Window.getHeight() / 2.0); + + /*Show player image*/ + player.Update(); + break; + } + + default: { + + break; + } + } + - if (input.wasPressed(Keys.ESCAPE)){ + if (input.wasPressed(Keys.ESCAPE)) { Window.close(); }