From fa3824f09f7679229f8bb7c776975f02eb68241a Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Fri, 1 Jul 2022 13:11:52 -0400 Subject: [PATCH] attempt to do some map drawing, and oh god it works Signed-off-by: Christine Dodrill --- maps/TestMap.json | 40 ++++++++++ maps/TestMap.tmx | 21 +++++ sprites/Cave.png | Bin 0 -> 5163 bytes sprites/Cave.tsx | 4 + sprites/TownTiles.ase | Bin 2134 -> 2134 bytes sprites/testmap.png | Bin 0 -> 146 bytes src/main.zig | 175 ++++++++++++++++++++++++++++++++++++++---- src/sprites.zig | 14 +++- src/tools/genmap.js | 21 +++++ 9 files changed, 257 insertions(+), 18 deletions(-) create mode 100644 maps/TestMap.json create mode 100644 maps/TestMap.tmx create mode 100644 sprites/Cave.png create mode 100644 sprites/Cave.tsx create mode 100644 sprites/testmap.png create mode 100644 src/tools/genmap.js diff --git a/maps/TestMap.json b/maps/TestMap.json new file mode 100644 index 0000000..c728afe --- /dev/null +++ b/maps/TestMap.json @@ -0,0 +1,40 @@ +{ "compressionlevel":-1, + "editorsettings": + { + "export": + { + "format":"json", + "target":"TestMap.json" + } + }, + "height":10, + "infinite":false, + "layers":[ + { + "data":[29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 18, 29, 29, 29, 29, 29, 29, 29, 29, 29, 38, 29, 29, 29, 29, 1, 2, 3, 4, 2, 48, 4, 2, 3, 4, 6, 50, 50, 50, 50, 50, 50, 22, 50, 23, 16, 22, 50, 23, 50, 43, 50, 50, 50, 50, 26, 41, 50, 50, 50, 50, 50, 22, 50, 50, 6, 50, 50, 50, 22, 50, 50, 50, 42, 50], + "height":10, + "id":1, + "name":"Tile Layer 1", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":10, + "x":0, + "y":0 + }], + "nextlayerid":2, + "nextobjectid":1, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.4.3", + "tileheight":16, + "tilesets":[ + { + "firstgid":1, + "source":"..\/sprites\/Cave.tsx" + }], + "tilewidth":16, + "type":"map", + "version":1.4, + "width":10 +} \ No newline at end of file diff --git a/maps/TestMap.tmx b/maps/TestMap.tmx new file mode 100644 index 0000000..649336a --- /dev/null +++ b/maps/TestMap.tmx @@ -0,0 +1,21 @@ + + + + + + + + +29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,18,29,29,29,29, +29,29,29,29,29,38,29,29,29,29, +1,2,3,4,2,48,4,2,3,4, +6,50,50,50,50,50,50,22,50,23, +16,22,50,23,50,43,50,50,50,50, +26,41,50,50,50,50,50,22,50,50, +6,50,50,50,22,50,50,50,42,50 + + + diff --git a/sprites/Cave.png b/sprites/Cave.png new file mode 100644 index 0000000000000000000000000000000000000000..f8f9b24b211b9d82f089a18e962bbbf244d706fe GIT binary patch literal 5163 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 Z{|8SPk}gR{g6aSO002ovPDHLkV1g#LFV6q~ literal 0 HcmV?d00001 diff --git a/sprites/Cave.tsx b/sprites/Cave.tsx new file mode 100644 index 0000000..40c99e7 --- /dev/null +++ b/sprites/Cave.tsx @@ -0,0 +1,4 @@ + + + + diff --git a/sprites/TownTiles.ase b/sprites/TownTiles.ase index 615a0b01c8ecdf4dfc78cc8b86b433ba8b5e1658..b33e9980b50554b1849651945aecbccc5a6b3d44 100644 GIT binary patch delta 20 ccmca6a7|!>2D1Qzz(hm;i4JTV8?Lbf07QWXo&W#< delta 20 ccmca6a7|!>1~Uf($3#Q_i4JTV8?Lbf07JnBjsO4v diff --git a/sprites/testmap.png b/sprites/testmap.png new file mode 100644 index 0000000000000000000000000000000000000000..3291219aba415d95833b79c36bda859e49e39b82 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}KAtX)ArY;~ zDboY~oOfWnz;j`_i#4;b>#mgyZn6fi8UopStP-v;F6NUcW$^yXmEXnFvB_hZ$Nz@* f11p$ORWL9d*vB$qlIB7opt%g5u6{1-oD!M"); + Deno.exit(1); +} + +const mapFile = Deno.args[0]; +const data = await Deno.readTextFile(mapFile); +const map = JSON.parse(data); + +let layer = map.layers[0]; + +console.log(`pub const map = [${layer.data.length}]Tile{`); + +layer.data.forEach((tile, index) => { + tile -= 1; + const tileY = Math.trunc(tile / layer.height); + const tileX = tile % layer.width; + console.log(` Tile{.x = ${tileX}, .y = ${tileY}},`); +}); + +console.log("};");