A game highly inspired by Rabi-Ribi being developed using a custom-developed Sig game engine from the ground up with a proper game studio!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
RabiClone/src/sig/map/Map.java

53 lines
1.6 KiB

package sig.map;
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.
final public static int MAP_WIDTH=512;
final public static int MAP_HEIGHT=288;
char[] tiles = new char[MAP_WIDTH*MAP_HEIGHT];
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<map.tiles.length) {
stream.writeChar(map.tiles[marker++]);
}
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void ModifyTile(int x,int y,Tile t) {
tiles[y*MAP_WIDTH+x]=(char)t.ordinal();
}
}