Skip to content
Snippets Groups Projects
Commit 3898fcad authored by jiaxi liu's avatar jiaxi liu
Browse files

1. Complete the start screen.

2. Complete the CSV reading.
3. Complete the player display.
parent b66e9b75
No related branches found
No related tags found
No related merge requests found
Showing
with 281 additions and 5 deletions
<?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
<?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
<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
<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
<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
<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
<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
<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
<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
<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
<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
<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
<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
<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
<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
import bagel.*; 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 * Skeleton Code for SWEN20003 Project 1, Semester 2, 2022
* * <p>
* Please enter your name below * Please enter your name below
*
* @author * @author
*/ */
public class ShadowDimension extends AbstractGame { public class ShadowDimension extends AbstractGame {
private final static int WINDOW_WIDTH = 1024; private final static int WINDOW_WIDTH = 1024;
private final static int WINDOW_HEIGHT = 768; private final static int WINDOW_HEIGHT = 768;
private final static String GAME_TITLE = "SHADOW DIMENSION"; private final static String GAME_TITLE = "SHADOW DIMENSION";
private final Image BACKGROUND_IMAGE = new Image("res/background0.png"); 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);
private static int game_state = 0;
Player player = new Player();
public ShadowDimension() { public ShadowDimension() {
super(WINDOW_WIDTH, WINDOW_HEIGHT, GAME_TITLE); super(WINDOW_WIDTH, WINDOW_HEIGHT, GAME_TITLE);
...@@ -30,7 +43,29 @@ public class ShadowDimension extends AbstractGame { ...@@ -30,7 +43,29 @@ public class ShadowDimension extends AbstractGame {
* method as you wish). * 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,8 +74,44 @@ public class ShadowDimension extends AbstractGame { ...@@ -39,8 +74,44 @@ public class ShadowDimension extends AbstractGame {
*/ */
@Override @Override
protected void update(Input input) { protected void update(Input input) {
/*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); 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(); Window.close();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment