Initial commit
BIN
data/8bitlim.ttf
Normal file
BIN
data/floor_1.png
Executable file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
data/floor_2.png
Executable file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
data/floor_3.png
Executable file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
data/input_frame.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
data/item.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
data/lunchds.ttf
Normal file
BIN
data/player.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
data/sky.jpg
Normal file
|
After Width: | Height: | Size: 12 MiB |
436
polarized.pde
Normal file
@@ -0,0 +1,436 @@
|
||||
int map[][] = {
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
int player_pos[][] = {
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
int s_width = 1920;
|
||||
int s_height = 1080;
|
||||
|
||||
// Image loading
|
||||
PImage floor_1;
|
||||
PImage floor_2;
|
||||
PImage floor_3;
|
||||
PImage input_frame;
|
||||
PImage player;
|
||||
PImage item;
|
||||
PImage sky;
|
||||
PFont font;
|
||||
PFont font_term;
|
||||
String entry = "> ";
|
||||
String log[] = {""};
|
||||
|
||||
boolean is_summoned = false;
|
||||
|
||||
void
|
||||
tolog(String str)
|
||||
{
|
||||
log = append(log, str);
|
||||
}
|
||||
|
||||
void
|
||||
startup()
|
||||
{
|
||||
tolog("Welcome to Polarized.");
|
||||
tolog("");
|
||||
tolog("First of all you had to summon");
|
||||
tolog("your player.");
|
||||
tolog("");
|
||||
tolog("To do so type help.");
|
||||
tolog("");
|
||||
}
|
||||
|
||||
void
|
||||
setup()
|
||||
{
|
||||
size(800, 400);
|
||||
floor_1 = loadImage("floor_1.png");
|
||||
floor_2 = loadImage("floor_2.png");
|
||||
floor_3 = loadImage("floor_3.png");
|
||||
sky = loadImage("sky.jpg");
|
||||
player = loadImage("player.png");
|
||||
item = loadImage("item.png");
|
||||
input_frame = loadImage("input_frame.png");
|
||||
font = createFont("8bitlim.ttf", 16);
|
||||
font_term = createFont("lunchds.ttf", 16);
|
||||
textFont(font);
|
||||
startup();
|
||||
}
|
||||
|
||||
int time = 0;
|
||||
int fps = 30;
|
||||
|
||||
void
|
||||
help()
|
||||
{
|
||||
tolog("Here is the lst of all the commands");
|
||||
tolog("available");
|
||||
tolog("");
|
||||
tolog("help - show this page.");
|
||||
tolog("");
|
||||
if (!is_summoned)
|
||||
tolog("summon [0-7] [A-H] - create your player.");
|
||||
else
|
||||
{
|
||||
tolog("move [UP, LEFT, RIGHT, DOWN] - move the");
|
||||
tolog("player");
|
||||
}
|
||||
tolog("");
|
||||
}
|
||||
|
||||
void
|
||||
createPlayer(int row, char c)
|
||||
{
|
||||
int col = 0;
|
||||
switch(c)
|
||||
{
|
||||
case 'A':
|
||||
col = 0;
|
||||
break;
|
||||
case 'B':
|
||||
col = 1;
|
||||
break;
|
||||
case 'C':
|
||||
col = 2;
|
||||
break;
|
||||
case 'D':
|
||||
col = 3;
|
||||
break;
|
||||
case 'E':
|
||||
col = 4;
|
||||
break;
|
||||
case 'F':
|
||||
col = 5;
|
||||
break;
|
||||
case 'G':
|
||||
col = 6;
|
||||
break;
|
||||
case 'H':
|
||||
col = 7;
|
||||
break;
|
||||
}
|
||||
player_pos[col][row] = 1;
|
||||
map[row][col] = 2;
|
||||
}
|
||||
|
||||
void
|
||||
summon()
|
||||
{
|
||||
tolog("");
|
||||
if (entry.charAt(9) >= '0' && entry.charAt(9) < '9')
|
||||
{
|
||||
if (entry.charAt(11) == 'A' || entry.charAt(11) == 'B' || entry.charAt(11) == 'C' || entry.charAt(11) == 'D' || entry.charAt(11) == 'E' || entry.charAt(11) == 'F' || entry.charAt(11) == 'G' || entry.charAt(11) == 'H')
|
||||
{
|
||||
tolog("Player was summoned in " + entry.substring(9, 12) + ".");
|
||||
tolog("");
|
||||
tolog("Nice now you can try to move in each");
|
||||
tolog("directions now.");
|
||||
tolog("Consult your objectives with obj command.");
|
||||
tolog("");
|
||||
is_summoned = true;
|
||||
createPlayer(entry.charAt(9) - '0', entry.charAt(11));
|
||||
tolog("New commands added type help");
|
||||
tolog("");
|
||||
}
|
||||
else
|
||||
{
|
||||
tolog("Wrong position\n");
|
||||
is_summoned = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
tolog("Wrong position\n");
|
||||
is_summoned = false;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
moveDown()
|
||||
{
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
boolean is_moved = false;
|
||||
|
||||
while (y < 8)
|
||||
{
|
||||
x = 0;
|
||||
while (x < 8)
|
||||
{
|
||||
if (player_pos[x][y] == 1 && !is_moved)
|
||||
{
|
||||
if (y != 7)
|
||||
{
|
||||
if (player_pos[x][y + 1] == 0)
|
||||
{
|
||||
player_pos[x][y + 1] = 1;
|
||||
player_pos[x][y] = 0;
|
||||
is_moved = true;
|
||||
}
|
||||
else
|
||||
tolog("There is something on your way.");
|
||||
}
|
||||
else
|
||||
tolog("suicide is not a solution.");
|
||||
}
|
||||
x++;
|
||||
}
|
||||
y++;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
moveUp()
|
||||
{
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
boolean is_moved = false;
|
||||
|
||||
while (y < 8)
|
||||
{
|
||||
x = 0;
|
||||
while (x < 8)
|
||||
{
|
||||
if (player_pos[x][y] == 1 && !is_moved)
|
||||
{
|
||||
if (y != 0)
|
||||
{
|
||||
if (player_pos[x][y - 1] == 0)
|
||||
{
|
||||
player_pos[x][y - 1] = 1;
|
||||
player_pos[x][y] = 0;
|
||||
is_moved = true;
|
||||
}
|
||||
else
|
||||
tolog("There is something on your way.");
|
||||
}
|
||||
else
|
||||
tolog("suicide is not a solution.");
|
||||
}
|
||||
x++;
|
||||
}
|
||||
y++;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
moveLeft()
|
||||
{
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
boolean is_moved = false;
|
||||
|
||||
while (y < 8)
|
||||
{
|
||||
x = 0;
|
||||
while (x < 8)
|
||||
{
|
||||
if (player_pos[x][y] == 1 && !is_moved)
|
||||
{
|
||||
if (x != 0)
|
||||
{
|
||||
if (player_pos[x - 1][y] == 0)
|
||||
{
|
||||
player_pos[x - 1][y] = 1;
|
||||
player_pos[x][y] = 0;
|
||||
is_moved = true;
|
||||
}
|
||||
else
|
||||
tolog("There is something on your way.");
|
||||
}
|
||||
else
|
||||
tolog("suicide is not a solution.");
|
||||
}
|
||||
x++;
|
||||
}
|
||||
y++;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
moveRight()
|
||||
{
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
boolean is_moved = false;
|
||||
|
||||
while (y < 8)
|
||||
{
|
||||
x = 0;
|
||||
while (x < 8)
|
||||
{
|
||||
if (player_pos[x][y] == 1 && !is_moved)
|
||||
{
|
||||
if (x != 7)
|
||||
{
|
||||
if (player_pos[x + 1][y] == 0)
|
||||
{
|
||||
player_pos[x + 1][y] = 1;
|
||||
player_pos[x][y] = 0;
|
||||
is_moved = true;
|
||||
}
|
||||
else
|
||||
tolog("There is something on youur way.");
|
||||
}
|
||||
else
|
||||
tolog("suicide is not a solution.");
|
||||
}
|
||||
x++;
|
||||
}
|
||||
y++;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
move()
|
||||
{
|
||||
if (entry.substring(7, entry.length()).toLowerCase().equals("up"))
|
||||
moveUp();
|
||||
else if (entry.substring(7, entry.length()).toLowerCase().equals("down"))
|
||||
moveDown();
|
||||
else if (entry.substring(7, entry.length()).toLowerCase().equals("left"))
|
||||
moveLeft();
|
||||
else if (entry.substring(7, entry.length()).toLowerCase().equals("right"))
|
||||
moveRight();
|
||||
else
|
||||
tolog("Wrong arguments.");
|
||||
}
|
||||
|
||||
void
|
||||
command_logic()
|
||||
{
|
||||
if (entry.equals("> help"))
|
||||
help();
|
||||
else if (entry.length() == 12 && entry.substring(2, 8).equals("summon") && is_summoned == false)
|
||||
summon();
|
||||
else if (entry.length() > 7 && entry.substring(2, 6).equals("move") && is_summoned)
|
||||
move();
|
||||
else
|
||||
{
|
||||
tolog(entry.substring(2, entry.length()) + " command not found");
|
||||
tolog("");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
keyPressed()
|
||||
{
|
||||
entry = entry + key;
|
||||
if (keyCode == BACKSPACE)
|
||||
{
|
||||
if (entry.length() > 3)
|
||||
entry = entry.substring( 0, entry.length()-2 );
|
||||
else
|
||||
entry = entry.substring( 0, entry.length()-1 );
|
||||
}
|
||||
if (keyCode == SHIFT)
|
||||
entry = entry.substring( 0, entry.length()-1 );
|
||||
if (keyCode == ENTER)
|
||||
{
|
||||
entry = entry.substring( 0, entry.length()-1 );
|
||||
if (entry.length() > 2)
|
||||
{
|
||||
tolog(entry);
|
||||
command_logic();
|
||||
}
|
||||
entry = "> ";
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
draw_map()
|
||||
{
|
||||
int offset_x = 180;
|
||||
int offset_y = 100;
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
|
||||
background(50);
|
||||
image(sky, 0, 0, 800, 400);
|
||||
stroke(200);
|
||||
line(400, 0, 400, 400);
|
||||
while (y < 8)
|
||||
{
|
||||
x = 0;
|
||||
while (x < 8)
|
||||
{
|
||||
if (map[y][x] == 0)
|
||||
image(floor_1, offset_x + (x - y) * 20, offset_y + (y + x) * 12);
|
||||
if (map[y][x] == 1)
|
||||
image(floor_2, offset_x + (x - y) * 20, offset_y + (y + x) * 12);
|
||||
if (map[y][x] == 2)
|
||||
image(floor_3, offset_x + (x - y) * 20, offset_y + (y + x) * 12);
|
||||
x++;
|
||||
}
|
||||
y++;
|
||||
}
|
||||
text("0", 190, 100); // -25 +10
|
||||
text("1", 170, 110);
|
||||
text("2", 145, 125);
|
||||
text("3", 125, 135);
|
||||
text("4", 105, 145);
|
||||
text("5", 85, 160);
|
||||
text("6", 60, 170);
|
||||
text("7", 40, 185);
|
||||
text("A", abs(190 - 405), 100); // -25 +10
|
||||
text("B", abs(170 - 405), 110);
|
||||
text("C", abs(145 - 405), 125);
|
||||
text("D", abs(125 - 405), 135);
|
||||
text("E", abs(105 - 405), 145);
|
||||
text("F", abs(85 - 405), 160);
|
||||
text("G", abs(60 - 405), 170);
|
||||
text("H", abs(40 - 405), 185);
|
||||
image(input_frame, 400, 0);
|
||||
x = 0;
|
||||
y = 0;
|
||||
while (y < 8)
|
||||
{
|
||||
x = 0;
|
||||
while (x < 8)
|
||||
{
|
||||
if (player_pos[x][y] == 1)
|
||||
image(player, offset_x + (x - y) * 20 - 4, offset_y + (y + x) * 12 - 45, 60, 70);
|
||||
if (player_pos[x][y] == 2)
|
||||
image(item, offset_x + (x - y) * 20 + 15, offset_y + (y + x) * 12, 16, 16);
|
||||
x++;
|
||||
}
|
||||
y++;
|
||||
}
|
||||
textFont(font_term);
|
||||
text(entry, 415, 375);
|
||||
int i = 0;
|
||||
int j = 0;
|
||||
while (i + j < log.length)
|
||||
{
|
||||
while (log.length - j > 17)
|
||||
j++;
|
||||
text(log[i + j], 415, i * 20);
|
||||
i++;
|
||||
}
|
||||
textFont(font);
|
||||
}
|
||||
|
||||
void
|
||||
draw()
|
||||
{
|
||||
draw_map();
|
||||
time++;
|
||||
if (time > fps)
|
||||
time = 0;
|
||||
}
|
||||