From 3898fcada968dc4deb01c0fa27cd1c81b6b2b622 Mon Sep 17 00:00:00 2001 From: JIAXI3 <jiaxi3@student.unimelb.edu.au> Date: Tue, 30 Aug 2022 15:23:29 +0800 Subject: [PATCH] 1. Complete the start screen. 2. Complete the CSV reading. 3. Complete the player display. --- .idea/compiler.xml | 16 ++++ .idea/jarRepositories.xml | 20 +++++ ...aven__io_github_eleanor_em_bagel_1_9_3.xml | 13 +++ .../Maven__org_lwjgl_lwjgl_3_3_1.xml | 13 +++ .../Maven__org_lwjgl_lwjgl_assimp_3_3_1.xml | 13 +++ ...jgl_lwjgl_assimp_natives_windows_3_3_1.xml | 13 +++ .../Maven__org_lwjgl_lwjgl_glfw_3_3_1.xml | 13 +++ ...lwjgl_lwjgl_glfw_natives_windows_3_3_1.xml | 13 +++ ..._org_lwjgl_lwjgl_natives_windows_3_3_1.xml | 13 +++ .../Maven__org_lwjgl_lwjgl_openal_3_3_1.xml | 13 +++ ...jgl_lwjgl_openal_natives_windows_3_3_1.xml | 13 +++ .../Maven__org_lwjgl_lwjgl_opengl_3_3_1.xml | 13 +++ ...jgl_lwjgl_opengl_natives_windows_3_3_1.xml | 13 +++ .../Maven__org_lwjgl_lwjgl_stb_3_3_1.xml | 13 +++ ..._lwjgl_lwjgl_stb_natives_windows_3_3_1.xml | 13 +++ src/ShadowDimension.java | 81 +++++++++++++++++-- 16 files changed, 281 insertions(+), 5 deletions(-) create mode 100644 .idea/compiler.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/libraries/Maven__io_github_eleanor_em_bagel_1_9_3.xml create mode 100644 .idea/libraries/Maven__org_lwjgl_lwjgl_3_3_1.xml create mode 100644 .idea/libraries/Maven__org_lwjgl_lwjgl_assimp_3_3_1.xml create mode 100644 .idea/libraries/Maven__org_lwjgl_lwjgl_assimp_natives_windows_3_3_1.xml create mode 100644 .idea/libraries/Maven__org_lwjgl_lwjgl_glfw_3_3_1.xml create mode 100644 .idea/libraries/Maven__org_lwjgl_lwjgl_glfw_natives_windows_3_3_1.xml create mode 100644 .idea/libraries/Maven__org_lwjgl_lwjgl_natives_windows_3_3_1.xml create mode 100644 .idea/libraries/Maven__org_lwjgl_lwjgl_openal_3_3_1.xml create mode 100644 .idea/libraries/Maven__org_lwjgl_lwjgl_openal_natives_windows_3_3_1.xml create mode 100644 .idea/libraries/Maven__org_lwjgl_lwjgl_opengl_3_3_1.xml create mode 100644 .idea/libraries/Maven__org_lwjgl_lwjgl_opengl_natives_windows_3_3_1.xml create mode 100644 .idea/libraries/Maven__org_lwjgl_lwjgl_stb_3_3_1.xml create mode 100644 .idea/libraries/Maven__org_lwjgl_lwjgl_stb_natives_windows_3_3_1.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..de4500e --- /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 0000000..712ab9d --- /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 0000000..8a3817e --- /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 0000000..e98564b --- /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 0000000..6f6e602 --- /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 0000000..c833f3b --- /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 0000000..575ef41 --- /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 0000000..53723e0 --- /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 0000000..fd3d300 --- /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 0000000..3898dc0 --- /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 0000000..8ce280d --- /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 0000000..2b4c9d9 --- /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 0000000..efacd01 --- /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 0000000..28e05c4 --- /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 0000000..41b68da --- /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 b781d18..957bc31 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(); } -- GitLab