init
This commit is contained in:
28
Assets/Tiles/gen_tiles.py
Normal file
28
Assets/Tiles/gen_tiles.py
Normal file
@@ -0,0 +1,28 @@
|
||||
import zlib
|
||||
import struct
|
||||
|
||||
def make_png(width, height, data):
|
||||
def chunk(tag, data):
|
||||
return struct.pack('>I', len(data)) + tag + data + struct.pack('>I', zlib.crc32(tag + data))
|
||||
|
||||
# IHDR
|
||||
ihdr = struct.pack('>IIBBBBB', width, height, 8, 6, 0, 0, 0)
|
||||
|
||||
# IDAT
|
||||
# RGBA format. width * height * 4
|
||||
# Scanlines need to be prepended with filter type 0
|
||||
raw_data = b''
|
||||
for y in range(height):
|
||||
raw_data += b'\x00' # Filter type 0
|
||||
for x in range(width):
|
||||
if x < 16: # Left side: Green (Grass)
|
||||
raw_data += b'\x4b\x69\x2f\xff' # #4b692f
|
||||
else: # Right side: Gray (Wall)
|
||||
raw_data += b'\x8b\x9b\xb4\xff' # #8b9bb4
|
||||
|
||||
idat = zlib.compress(raw_data)
|
||||
|
||||
return b'\x89PNG\r\n\x1a\n' + chunk(b'IHDR', ihdr) + chunk(b'IDAT', idat) + chunk(b'IEND', b'')
|
||||
|
||||
with open('/Users/wangx/Documents/playground/whale_town/Assets/Tiles/placeholder_tiles.png', 'wb') as f:
|
||||
f.write(make_png(32, 16, None))
|
||||
Reference in New Issue
Block a user