init: draw_map work

This commit is contained in:
starnakin 2023-06-20 21:30:28 +02:00
commit 24ae92916d
3 changed files with 123 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
tmp.*

118
game.🗿 Normal file
View File

@ -0,0 +1,118 @@
define INPUT = 0xbffe;
define SCREEN = 0xbfff;
define SPAWN_X = 1;
define SPAWN_Y = 1;
define CASE_SIZE = 42;
draw_pixel(x, y, c)
{
[SCREEN + (x & 127) + (y & 127) * 128] = c;
}
draw_x(x, y, selected)
{
local current_x = 0;
local current_y;
loop
{
if (current_x == CASE_SIZE)
return;
current_y = 0;
loop
{
if (current_y == CASE_SIZE)
break;
if (current_x == current_y | current_x == CASE_SIZE - current_y)
draw_pixel(x + current_x, y + current_y, 0xffff);
else
draw_pixel(x + current_x, y + current_y, 0x1111 * (selected + 2));
current_y++;
}
current_x++;
}
}
draw_o(x, y, selected)
{
local current_x = 0;
local current_y;
loop
{
if (current_x == CASE_SIZE)
return;
current_y = 0;
loop
{
if (current_y == CASE_SIZE)
break;
if (current_x == 2 | current_y == 2 | current_x == CASE_SIZE - 2 | current_y == CASE_SIZE - 2)
draw_pixel(x + current_x, y + current_y, 0xffff);
else
draw_pixel(x + current_x, y + current_y, 0x1111 * (selected + 2));
current_y++;
}
current_x++;
}
}
draw_blank(x, y, selected)
{
local current_x = 0;
local current_y;
loop
{
if (current_x == CASE_SIZE)
return;
current_y = 0;
loop
{
if (current_y == CASE_SIZE)
break;
draw_pixel(x + current_x, y + current_y, 0x1111 * (selected + 2));
current_y++;
}
current_x++;
}
}
draw_case(x, y, content, selected)
{
if (content == 'x')
draw_x(x, y, selected);
else if (content == 'o')
draw_o(x, y, selected);
else
draw_blank(x, y, selected);
}
draw_map(map, cursor_x, cursor_y)
{
local x = 0;
local y;
loop
{
if (x == 3)
return;
y = 0;
loop
{
if (y == 3)
break;
draw_case(x * CASE_SIZE + (x != 0) * (x), y * CASE_SIZE + (y != 0) * (y), [map + x * 3 + y], cursor_x == x & cursor_y == y);
y++;
}
x++;
}
}
main()
{
local map = {'b', 'b', 'b','b', 'b', 'b', 'b', 'b', 'b'};
loop
{
slp;
draw_map(map, 0, 0);
}
}

4
run.sh Executable file
View File

@ -0,0 +1,4 @@
cat game.🗿 >tmp.🗿
golemc tmp.🗿 >tmp.asm
orgaasm tmp.asm tmp.rom
orgaemu tmp.rom