forked from kdx/jtmm2-old
Tiled level editor support.
This commit is contained in:
parent
ffc2b2d594
commit
39b96a5aef
|
@ -4,3 +4,6 @@
|
|||
[submodule "assets-fx"]
|
||||
path = assets-fx
|
||||
url = https://gitea.planet-casio.com/KikooDX/jtmm2-assets-fx
|
||||
[submodule "levels"]
|
||||
path = levels
|
||||
url = https://gitea.planet-casio.com/KikooDX/jtmm2-levels
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 2ca487d1a0954668a17ba730f64088cf6caec6b0
|
|
@ -1,19 +0,0 @@
|
|||
#!/usr/bin/env luajit
|
||||
|
||||
math.randomseed(os.time()) --set randomseed
|
||||
local function create_random_level(width, height, layers)
|
||||
io.write(width, "\n")
|
||||
io.write(height, "\n")
|
||||
for i = 1, layers, 1 do
|
||||
for r = 1, width * height, 1 do
|
||||
local var = math.ceil(math.random() * 4) * math.floor(math.random() * 1.5)
|
||||
if var ~= 0 then var = var + math.floor(math.random() * 4) * 16 end
|
||||
io.write(var, "\n")
|
||||
end
|
||||
if i ~= layers then
|
||||
io.write("n\n")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
create_random_level(64, 64, 1)
|
|
@ -1,85 +0,0 @@
|
|||
#!/usr/bin/env luajit
|
||||
|
||||
local function create_includes_c()
|
||||
io.write[[#include "level.h"
|
||||
#include "tiles.h"
|
||||
]]
|
||||
end
|
||||
|
||||
local function read_level(id)
|
||||
local file = io.open(id..".jtmm2")
|
||||
if not file then
|
||||
return nil
|
||||
else
|
||||
local content = {width = nil, height = nil, layers = {{}}}
|
||||
local line_nb = 0
|
||||
local layer_nb = 1
|
||||
for line in file:lines() do
|
||||
line_nb = line_nb + 1
|
||||
if line_nb < 3 then
|
||||
if content.width then
|
||||
content.height = tonumber(line)
|
||||
else
|
||||
content.width = tonumber(line)
|
||||
end
|
||||
else
|
||||
if line == "n" then
|
||||
layer_nb = layer_nb + 1
|
||||
table.insert(content.layers, {})
|
||||
else
|
||||
table.insert(content.layers[layer_nb], line)
|
||||
end
|
||||
end
|
||||
end
|
||||
file:close()
|
||||
return content
|
||||
end
|
||||
end
|
||||
|
||||
local function create_structure_c(id)
|
||||
local content = read_level(id)
|
||||
if content then
|
||||
-- layers
|
||||
for i, layer in ipairs(content.layers) do
|
||||
io.write("const Tile tiles_", id, "_", i, "[] = {\n\t")
|
||||
for i, v in ipairs(layer) do
|
||||
io.write(v, ", ")
|
||||
if i % 14 == 0 and i ~= #layer then
|
||||
io.write("\n\t")
|
||||
end
|
||||
end
|
||||
io.write("\n};\n");
|
||||
end
|
||||
-- array
|
||||
io.write("const Tile *layers_", id, "[] = {")
|
||||
for i = 1, #content.layers, 1 do
|
||||
io.write("tiles_", id, "_", i, ", ")
|
||||
end
|
||||
io.write("};\n")
|
||||
-- structure
|
||||
io.write("const Level level_", id, " = {\n")
|
||||
io.write("\t.width = ", content.width, ",\n")
|
||||
io.write("\t.height = ", content.height, ",\n")
|
||||
io.write("\t.layers = layers_", id, ",\n")
|
||||
io.write("\t.layers_count = ", #content.layers, ",\n")
|
||||
io.write("\t.solid_layer = 0\n")
|
||||
io.write("};\n")
|
||||
end
|
||||
end
|
||||
|
||||
local function create_function_c(max)
|
||||
io.write("void level_set(const Level **level, uint level_id)\n")
|
||||
io.write("{\n")
|
||||
io.write("\tswitch(level_id)\n")
|
||||
io.write("\t{\n")
|
||||
io.write()
|
||||
for i = 0, max, 1 do
|
||||
io.write("\t\tcase ", i, ": ")
|
||||
io.write("*level = &level_", i, "; break;\n")
|
||||
end
|
||||
io.write("\t}\n}\n")
|
||||
end
|
||||
|
||||
create_includes_c()
|
||||
create_structure_c(0)
|
||||
create_function_c(0)
|
|
@ -1,4 +1,3 @@
|
|||
#!/bin/sh
|
||||
cd levels
|
||||
./create_demo.lua > 0.jtmm2
|
||||
./generate_c.lua > ../src/gen_levels.c
|
||||
lua build_levels.lua > ../src/gen_levels.c
|
||||
|
|
|
@ -20,7 +20,7 @@ int main(void) {
|
|||
init(); /* initialize gint */
|
||||
|
||||
/* main game loop */
|
||||
play_level(0);
|
||||
play_level(1);
|
||||
|
||||
/* return to menu */
|
||||
return 1;
|
||||
|
@ -29,7 +29,7 @@ int main(void) {
|
|||
int play_level(uint level_id) {
|
||||
/* create player */
|
||||
Player player = {
|
||||
//.pos = {TILE_SIZE, TILE_SIZE},
|
||||
.pos = {TILE_SIZE, TILE_SIZE},
|
||||
.spd = {0, 0},
|
||||
.hbox = {TILE_SIZE - 1, TILE_SIZE - 1},
|
||||
.vbox = {7, 7},
|
||||
|
@ -37,7 +37,6 @@ int play_level(uint level_id) {
|
|||
.grace = 0,
|
||||
.jump_held = false
|
||||
};
|
||||
vec_cpy(&player.pos, (Vec){0, 0}); /* place the player at "0/0"*/
|
||||
|
||||
/* set level */
|
||||
const Level *level;
|
||||
|
|
Loading…
Reference in New Issue