Write a python script to generate byte arrays.
This is preparing for textures for the Flappy Bird clone.
This commit is contained in:
parent
aaa6c15a9a
commit
dd801873de
4 changed files with 52 additions and 1 deletions
7
src/flappyBird/Assets.hh
Normal file
7
src/flappyBird/Assets.hh
Normal file
|
@ -0,0 +1,7 @@
|
|||
#ifndef ASSETS_HH
|
||||
#define ASSETS_HH
|
||||
#include <vector>
|
||||
namespace assets {
|
||||
std::vector<unsigned char> bird();
|
||||
}
|
||||
#endif
|
BIN
src/flappyBird/assets/yellowbird-downflap.png
Normal file
BIN
src/flappyBird/assets/yellowbird-downflap.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 426 B |
41
src/flappyBird/generateAssets.py
Normal file
41
src/flappyBird/generateAssets.py
Normal file
|
@ -0,0 +1,41 @@
|
|||
import argparse
|
||||
from pathlib import Path
|
||||
from PIL import Image
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("function")
|
||||
parser.add_argument("input")
|
||||
parser.add_argument("output")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
function = args.function
|
||||
input = Path(args.input)
|
||||
output = Path(args.output)
|
||||
|
||||
if not input.exists():
|
||||
print("Input " + str(path.absolute()) + " not found.")
|
||||
raise SystemExit(1)
|
||||
|
||||
hexList = list()
|
||||
|
||||
with Image.open(input) as image:
|
||||
imageBytes = bytes(image.getdata())
|
||||
byteList = list(imageBytes)
|
||||
|
||||
for byte in byteList:
|
||||
hexList.append(f'0x{byte:02x}')
|
||||
|
||||
|
||||
code = f"""#include <Assets.hh>
|
||||
#include <vector>
|
||||
|
||||
namespace assets {{
|
||||
std::vector<unsigned char> {function}() {{
|
||||
return {{ {','.join(hexList)} }};
|
||||
}}
|
||||
}}
|
||||
"""
|
||||
|
||||
with open(output, 'w') as f:
|
||||
f.write(code)
|
|
@ -5,5 +5,8 @@ flappy_sources = [
|
|||
'MainMenu.cc'
|
||||
]
|
||||
|
||||
flappy_bird = static_library('flappyBird', flappy_sources, dependencies: deps, include_directories: incdirs)
|
||||
python3 = find_program('python3')
|
||||
bird = custom_target('bird', output: 'birdSprite.cc', input: ['generateAssets.py', 'assets/yellowbird-downflap.png'], command: [python3, '@INPUT0@', 'bird', '@INPUT1@', '@OUTPUT@'])
|
||||
|
||||
flappy_bird = static_library('flappyBird', [flappy_sources, bird], dependencies: deps, include_directories: incdirs)
|
||||
flappy_dep = declare_dependency(link_with: [flappy_bird], include_directories: incdirs)
|
||||
|
|
Loading…
Reference in a new issue