diff --git a/bin/RabiClone.jar b/bin/RabiClone.jar index c755515..bdfe61b 100644 Binary files a/bin/RabiClone.jar and b/bin/RabiClone.jar differ diff --git a/src/sig/Maps.java b/src/sig/Maps.java new file mode 100644 index 0000000..c0a3362 --- /dev/null +++ b/src/sig/Maps.java @@ -0,0 +1,23 @@ +package sig; + +import java.io.File; + +import sig.engine.Map; + +public enum Maps { + + WORLD1("world1.map"), + ; + + final public static String MAPS_DIR = "maps"; + Map map; + + Maps(String filename) { + File map_loc = new File(new File("..",MAPS_DIR),filename); + this.map=Map.LoadMap(map_loc); + } + + public Map getMap() { + return map; + } +} diff --git a/src/sig/RabiClone.java b/src/sig/RabiClone.java index dd1a123..8d7b3d0 100644 --- a/src/sig/RabiClone.java +++ b/src/sig/RabiClone.java @@ -22,6 +22,8 @@ public class RabiClone{ public static int BASE_WIDTH=512; public static int BASE_HEIGHT=288; + + public static Maps CURRENT_MAP = Maps.WORLD1; public static void main(String[] args) { RabiClone r = new RabiClone(); @@ -43,9 +45,7 @@ public class RabiClone{ p.render(); - for (int i=0;i<10;i++) { - OBJ.add(new Player(p)); - } + OBJ.add(new Player(p)); long lastGameTime = System.nanoTime(); while (true) { diff --git a/src/sig/engine/Map.java b/src/sig/engine/Map.java new file mode 100644 index 0000000..555d951 --- /dev/null +++ b/src/sig/engine/Map.java @@ -0,0 +1,44 @@ +package sig.engine; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; + +public class Map { + //Maps contain 512x288 tiles, allowing for 16384x9216 pixels of action per map. + //294912 bytes = 294KB of memory storage per map. + //Since a screen normally fits 16x9 tiles, you get 32x32 (1024) screens of gameplay per world. + char[] tiles = new char[512*288]; + + public static Map LoadMap(File mapFile) { + try { + Map newMap = new Map(); + DataInputStream stream = new DataInputStream(new FileInputStream(mapFile)); + int marker=0; + while (stream.available()!=0) { + newMap.tiles[marker++]=stream.readChar(); + } + stream.close(); + return newMap; + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + public static void SaveMap(Map map, File mapFile) { + try { + int marker=0; + DataOutputStream stream = new DataOutputStream(new FileOutputStream(mapFile)); + while (marker