aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/parse_sprite_png.py48
-rw-r--r--sprites/bunny-back.pngbin0 -> 707 bytes
-rw-r--r--sprites/bunny-front.pngbin0 -> 644 bytes
-rw-r--r--sprites/bunny-side.pngbin0 -> 178 bytes
-rw-r--r--sprites/tree-tileset.pngbin0 -> 583 bytes
5 files changed, 48 insertions, 0 deletions
diff --git a/scripts/parse_sprite_png.py b/scripts/parse_sprite_png.py
new file mode 100644
index 0000000..1fcc4ab
--- /dev/null
+++ b/scripts/parse_sprite_png.py
@@ -0,0 +1,48 @@
+from PIL import Image
+import numpy as np
+import sys
+
+file = Image.open(sys.argv[1]).convert("RGB")
+
+px_array = np.asarray(file)
+
+def getpx(sprite_nb, x, y):
+ sprite_line = int(sprite_nb / (file.width / 8))
+ sprite_column = int(sprite_nb % (file.width / 8))
+
+ return [int(x) for x in px_array[int(sprite_line * 8 + y)][int(sprite_column * 8 + x)]]
+
+
+if file.width % 8 != 0 or file.height % 8 != 0:
+ raise ValueError("Width and height must be multiples of 8px")
+
+sprite_nb = int((file.width / 8) * (file.height / 8))
+
+for nb in range(0, sprite_nb):
+ result1 = [0,0,0,0,0,0,0,0]
+ result2 = [0,0,0,0,0,0,0,0]
+ for y in range(0, 8):
+ for x in range(0, 8):
+ px = getpx(nb, x, y)
+ dw = px[0] - 0xe0 + px[1] - 0xf8 + px[2] - 0xd0
+ dlg = px[0] - 0x88 + px[1] - 0xc0 + px[2] - 0x70
+ ddg = px[0] - 0x34 + px[1] - 0x68 + px[2] - 0x56
+ db = px[0] - 0x08 + px[1] - 0x18 + px[2] - 0x20
+
+ if min(abs(db), abs(ddg)) < min(abs(dlg), abs(dw)):
+ result2[y] |= 1 << (7-x)
+ if min(abs(db), abs(dlg)) < min(abs(ddg), abs(dw)):
+ result1[y] |= 1 << (7-x)
+
+ if abs(db) < min(abs(dw), abs(dlg), abs(ddg)):
+ print("#", end = '')
+ else:
+ print(" ", end = '')
+ print("\n", end = '')
+ print("\n")
+ for i in range(0, 8):
+ if i == 0:
+ print(".DB $%02x, $%02x" % (result1[i], result2[i]), end='')
+ else:
+ print(", $%02x, $%02x" % (result1[i], result2[i]), end='')
+ print("\n")
diff --git a/sprites/bunny-back.png b/sprites/bunny-back.png
new file mode 100644
index 0000000..df25343
--- /dev/null
+++ b/sprites/bunny-back.png
Binary files differ
diff --git a/sprites/bunny-front.png b/sprites/bunny-front.png
new file mode 100644
index 0000000..c752211
--- /dev/null
+++ b/sprites/bunny-front.png
Binary files differ
diff --git a/sprites/bunny-side.png b/sprites/bunny-side.png
new file mode 100644
index 0000000..09f9764
--- /dev/null
+++ b/sprites/bunny-side.png
Binary files differ
diff --git a/sprites/tree-tileset.png b/sprites/tree-tileset.png
new file mode 100644
index 0000000..2248190
--- /dev/null
+++ b/sprites/tree-tileset.png
Binary files differ