Compare commits
36 commits
Author | SHA1 | Date | |
---|---|---|---|
|
1779f750ff | ||
|
cdf2cbd6c0 | ||
b9faf6c22c | |||
|
d1f0ad538e | ||
|
8375917b35 | ||
a61d10bb56 | |||
6abdc90a3a | |||
945adb53c9 | |||
e92dadaf4d | |||
b124afdedf | |||
e37a74137d | |||
5a9eb10507 | |||
ba56c0d911 | |||
68915cb24b | |||
6ae437ef75 | |||
7a3afe1281 | |||
500464fa73 | |||
2a42731628 | |||
b9c7ce3b48 | |||
ddb62cb395 | |||
97697d2d7a | |||
5e6630a92d | |||
f452b40000 | |||
40e4b160df | |||
|
14992d0939 | ||
|
7cbc525dc6 | ||
|
9b57ca68c6 | ||
|
237102965b | ||
f0316c3205 | |||
227d4a8648 | |||
7bd011429b | |||
|
d6dcc1aaec | ||
087ae62db5 | |||
|
3739c80335 | ||
|
b96b25e37c | ||
|
c2eec1f22e |
|
@ -1,10 +1,8 @@
|
|||
---
|
||||
# We'll use defaults from the LLVM style, but with 4 columns indentation.
|
||||
BasedOnStyle: LLVM
|
||||
IndentWidth: 4
|
||||
---
|
||||
|
||||
Language: Cpp
|
||||
# Force pointers to the type for C++.
|
||||
DerivePointerAlignment: false
|
||||
PointerAlignment: Left
|
||||
---
|
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
|||
build
|
||||
.vscode
|
||||
/.vs
|
||||
|
|
41
README.de.md
|
@ -0,0 +1,41 @@
|
|||
# ParadiSO - eine minimale 2D-Grafikengine
|
||||
|
||||
**ParadiSO** wurde als stark abgespeckte 2D-Version meiner `pixwerx`-Engine konzipiert. _ParadiSO_ verfolgt einen minimalistischen Ansatz für 2D-Grafik zu Bildungszwecken. Es verwendet modernes C++ und ein datengetriebenes Design, jedoch keine ECS (Entity Component System).
|
||||
|
||||
## Bildungszwecke
|
||||
|
||||
Einige Argumente für seinen Bildungsaspekt:
|
||||
|
||||
- Kombination verschiedener Konzepte und Paradigmen zur Erstellung ausdrucksstarker, aber knappen Codes
|
||||
- Stark von Rust-Code inspiriert
|
||||
- Für den mathematischen Code wird eine sofortige Auswertung verwendet (keine Expression-Templates), jedoch mit der Verwendung von `constexpr`, um eventuelle Performance-Overheads auszugleichen und optimale Vektorisierung zu erreichen.
|
||||
- Versteckt alte `C`-APIs hinter einer modernisierten Fassade
|
||||
- Es lehnt sich stark an die STL und ihre Algorithmen an
|
||||
|
||||
## Minimalistisch
|
||||
|
||||
Da diese Engine einige Muster und Designkonzepte zeigen soll, versucht sie, unnötigen Ballast zu vermeiden.
|
||||
|
||||
## Abhängigkeiten
|
||||
|
||||
ParadiSO wird mit den notwendigen Komponenten geliefert. Diese sollte jedoch hier erwähnt werden:
|
||||
|
||||
- [GLFW 3.3.8](https://github.com/glfw/glfw)
|
||||
- [GLAD](https://github.com/Dav1dde/glad)
|
||||
- [STB image](https://github.com/nothings/stb)
|
||||
|
||||
## Toolchains
|
||||
|
||||
ParadiSO kann auf verschiedenen Plattformen gebaut werden
|
||||
|
||||
- Windows (Visual Studio Build Tools 2022)
|
||||
- MacOS (clang 14 or later)
|
||||
- Linux (clang 14 or later, gcc 13.2.1)
|
||||
|
||||
Andere Kombinationen sind möglich aber nicht getestet.
|
||||
|
||||
## Beiträge
|
||||
|
||||
- [Tim Götzelmann](https://code.technotecture.net/Timeplex) Windows Build
|
||||
- [Robin Rottstädt](https://code.technotecture.net/robin_rottstaedt) Flappy Bird Clone, Bitmap Loader
|
||||
- [brxxh](https://code.technotecture.net/brxxh) Flappy Bird Clone
|
34
README.md
|
@ -1,16 +1,16 @@
|
|||
# ParadisSO - a minimal 2D graphics engine
|
||||
# ParadiSO - a minimal 2D graphics engine
|
||||
|
||||
**ParadiSO** was conceived as a heavily stripped down 2D version of my `pixwerx` engine. *ParadiSO* mimics a minimalistic approach to 2D graphics for educational purposes. It uses modern C++ and a data-driven design, but no ECS.
|
||||
**ParadiSO** was conceived as a heavily stripped down 2D version of my `pixwerx` engine. _ParadiSO_ mimics a minimalistic approach to 2D graphics for educational purposes. It uses modern C++ and a data-driven design, but no ECS.
|
||||
|
||||
## Educational
|
||||
|
||||
Some arguments for its educational side:
|
||||
|
||||
* mix and match of various concepts and paradigms to write expressive but concise code
|
||||
* heavily inspired by Rust code
|
||||
* math code is eager evaluation but `constexpr` to compensate overheads
|
||||
* hides old-style `C` APIs behind a renovated facade
|
||||
* it leans heavily on the STL and its algorithms
|
||||
- mix and match of various concepts and paradigms to write expressive but concise code
|
||||
- heavily inspired by Rust code
|
||||
- math code is eager evaluation but `constexpr` to compensate overheads
|
||||
- hides old-style `C` APIs behind a renovated facade
|
||||
- it leans heavily on the STL and its algorithms
|
||||
|
||||
## Minimal
|
||||
|
||||
|
@ -20,6 +20,22 @@ Because this engine should show some patterns and design concepts it tries to av
|
|||
|
||||
ParadiSO comes with batteries included. However, it should be mentioned here:
|
||||
|
||||
* [GLFW 3.3.8](https://github.com/glfw/glfw)
|
||||
* [GLAD](https://github.com/Dav1dde/glad)
|
||||
- [GLFW 3.3.8](https://github.com/glfw/glfw)
|
||||
- [GLAD](https://github.com/Dav1dde/glad)
|
||||
- [STB image](https://github.com/nothings/stb)
|
||||
|
||||
## Toolchains
|
||||
|
||||
ParadiSO is being developed to work on all major desktop systems.
|
||||
|
||||
- Windows (Visual Studio Build Tools 2022)
|
||||
- MacOS (clang 14 or later)
|
||||
- Linux (clang 14 or later, gcc 13.2.1)
|
||||
|
||||
Other combinations might work but are untested.
|
||||
|
||||
## Contributors
|
||||
|
||||
- [Tim Götzelmann](https://code.technotecture.net/Timeplex) Windows Build
|
||||
- [Robin Rottstädt](https://code.technotecture.net/robin_rottstaedt) Flappy Bird Clone, Bitmap Loader
|
||||
- [brxxh](https://code.technotecture.net/brxxh) Flappy Bird Clone
|
||||
|
|
50
docs/README.md
Normal file
|
@ -0,0 +1,50 @@
|
|||
# Todo
|
||||
|
||||
Here some ideas for improving this tiny engine:
|
||||
|
||||
## Rendering
|
||||
- [ ] replace the OpenGL renderer with a Vulkan backend
|
||||
- [ ] add animatable sprites (access to UV mapping and tiling)
|
||||
- [ ] add a SDF based renderer (parametric tiles and font rendering)
|
||||
|
||||
## Game Support
|
||||
- [ ] audio!
|
||||
- [ ] some minimal animation system with tweening with different f-curves
|
||||
|
||||
|
||||
## System Level
|
||||
|
||||
- [ ] add a `Asset` handler to load cache and manage assets
|
||||
- [ ] introspection of file system if we load assset
|
||||
|
||||
## Design
|
||||
|
||||
- [ ] replace some of the 'unkown source' assets
|
||||
|
||||
## Build / Dev Support
|
||||
- [ ] add a test rig either with Snitch or Catch2
|
||||
- [ ] write some reasonable testcases
|
||||
- [ ] add CPU and GPU benchmarks to address various issues
|
||||
|
||||
|
||||
# Issues
|
||||
|
||||
|
||||
```sh
|
||||
Performance counter stats for 'bin/paradiso_pong':
|
||||
|
||||
555,35 msec task-clock:u # 0,042 CPUs utilized
|
||||
0 context-switches:u # 0,000 /sec
|
||||
0 cpu-migrations:u # 0,000 /sec
|
||||
4.072 page-faults:u # 7,332 K/sec
|
||||
319.484.735 cycles:u # 0,575 GHz
|
||||
358.165.995 instructions:u # 1,12 insn per cycle
|
||||
86.037.942 branches:u # 154,926 M/sec
|
||||
2.469.068 branch-misses:u # 2,87% of all branches
|
||||
|
||||
13,092775373 seconds time elapsed
|
||||
|
||||
0,311565000 seconds user
|
||||
0,247491000 seconds sys
|
||||
```
|
||||
above run with `perf stat bin/paradiso_pong` shows some really bad performance issues.
|
|
@ -1,2 +1,3 @@
|
|||
add_subdirectory(simple)
|
||||
add_subdirectory(pong)
|
||||
add_subdirectory(quickwings)
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* paradiso - Paradigmen der Softwareentwicklung
|
||||
*
|
||||
* (c) Copyright 2023 Hartmut Seichter
|
||||
* (c) Copyright 2023-2024 Hartmut Seichter
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -16,7 +16,6 @@
|
|||
|
||||
#include <unordered_map>
|
||||
|
||||
#include <iomanip>
|
||||
#include <iostream>
|
||||
|
||||
struct PongStage {
|
||||
|
@ -86,7 +85,7 @@ struct PongPaddle {
|
|||
velocity_horizontal *= whoopiness;
|
||||
sprite.pivot.x() += velocity_horizontal;
|
||||
|
||||
std::clamp(sprite.pivot.x(), -0.5f, 0.5f);
|
||||
sprite.pivot.x() = std::clamp(sprite.pivot.x(), -0.5f, 0.5f);
|
||||
|
||||
// update shader uniforms
|
||||
shader.set_uniform("pivot", sprite.pivot);
|
||||
|
@ -151,7 +150,7 @@ struct PongBall {
|
|||
|
||||
void draw(const paradiso::Shader& shader) {
|
||||
|
||||
std::clamp(sprite.pivot.x(), -0.5f, 0.5f);
|
||||
sprite.pivot.x() = std::clamp(sprite.pivot.x(), -0.5f, 0.5f);
|
||||
|
||||
// update shader uniforms
|
||||
shader.set_uniform("pivot", sprite.pivot);
|
||||
|
@ -166,6 +165,9 @@ struct PongBall {
|
|||
paradiso::Renderer renderer{};
|
||||
|
||||
constexpr void push(const auto& impulse) noexcept { velocity += impulse; }
|
||||
|
||||
constexpr void whoop(const auto& whoopiness) noexcept { velocity *= whoopiness; }
|
||||
|
||||
};
|
||||
|
||||
auto main() -> int {
|
||||
|
@ -234,6 +236,19 @@ auto main() -> int {
|
|||
ball.sprite.pivot.x() = 0.0f;
|
||||
ball.sprite.pivot.y() = 0.9f;
|
||||
}
|
||||
// speed adjust
|
||||
if (w.keyboard_input().top().key == 'N') {
|
||||
|
||||
std::cout << "Speed Up!\n";
|
||||
|
||||
ball.push(paradiso::Vector2<float>::make(0.f,0.01f));
|
||||
|
||||
} else if (w.keyboard_input().top().key == 'M') {
|
||||
|
||||
ball.push(paradiso::Vector2<float>::make(0.f,-0.01f));
|
||||
|
||||
std::cout << "Speed Lower!\n";
|
||||
}
|
||||
}
|
||||
|
||||
ball.interact(stage);
|
||||
|
|
20
examples/quickwings/CMakeLists.txt
Normal file
|
@ -0,0 +1,20 @@
|
|||
set(quickwings_srcs quickwings.cpp)
|
||||
set(quickwings_assets
|
||||
assets/background-day.png
|
||||
assets/base.png
|
||||
assets/pipe-green.png
|
||||
assets/yellowbird-downflap.png
|
||||
assets/yellowbird-midflap.png
|
||||
assets/yellowbird-upflap.png
|
||||
)
|
||||
|
||||
set_source_files_properties(${quickwings_assets} PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
|
||||
add_executable(quickwings ${quickwings_srcs} ${quickwings_assets})
|
||||
|
||||
target_link_libraries(quickwings paradiso_core)
|
||||
|
||||
add_custom_command(TARGET quickwings POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/assets/ $<TARGET_FILE_DIR:quickwings>/assets)
|
||||
|
BIN
examples/quickwings/assets/background-day.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
examples/quickwings/assets/base.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
examples/quickwings/assets/gameover.png
Normal file
After Width: | Height: | Size: 758 B |
BIN
examples/quickwings/assets/message.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
examples/quickwings/assets/pipe-green.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
examples/quickwings/assets/tappybird/Font/kenvector_future.ttf
Normal file
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterA.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterB.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterC.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterD.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterE.png
Normal file
After Width: | Height: | Size: 747 B |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterF.png
Normal file
After Width: | Height: | Size: 771 B |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterG.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterH.png
Normal file
After Width: | Height: | Size: 795 B |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterI.png
Normal file
After Width: | Height: | Size: 448 B |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterJ.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterK.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterL.png
Normal file
After Width: | Height: | Size: 580 B |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterM.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterN.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterO.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterP.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterQ.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterR.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterS.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterT.png
Normal file
After Width: | Height: | Size: 696 B |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterU.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterV.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterW.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterX.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterY.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Letters/letterZ.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Numbers/number0.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Numbers/number1.png
Normal file
After Width: | Height: | Size: 948 B |
BIN
examples/quickwings/assets/tappybird/PNG/Numbers/number2.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Numbers/number3.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Numbers/number4.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Numbers/number5.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Numbers/number6.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Numbers/number7.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Numbers/number8.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Numbers/number9.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Planes/planeBlue1.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Planes/planeBlue2.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Planes/planeBlue3.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Planes/planeGreen1.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Planes/planeGreen2.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Planes/planeGreen3.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Planes/planeRed1.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Planes/planeRed2.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Planes/planeRed3.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Planes/planeYellow1.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Planes/planeYellow2.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/Planes/planeYellow3.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/UI/UIbg.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/UI/buttonLarge.png
Normal file
After Width: | Height: | Size: 826 B |
BIN
examples/quickwings/assets/tappybird/PNG/UI/buttonSmall.png
Normal file
After Width: | Height: | Size: 832 B |
BIN
examples/quickwings/assets/tappybird/PNG/UI/medalBronze.png
Normal file
After Width: | Height: | Size: 9.1 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/UI/medalGold.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/UI/medalSilver.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/UI/tap.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/UI/tapLeft.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/UI/tapRight.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/UI/tapTick.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/UI/textGameOver.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/UI/textGetReady.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/background.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/groundDirt.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/groundGrass.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/groundIce.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/groundRock.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/groundSnow.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/puffLarge.png
Normal file
After Width: | Height: | Size: 448 B |
BIN
examples/quickwings/assets/tappybird/PNG/puffSmall.png
Normal file
After Width: | Height: | Size: 291 B |
BIN
examples/quickwings/assets/tappybird/PNG/rock.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/rockDown.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/rockGrass.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/rockGrassDown.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/rockIce.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/rockIceDown.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/rockSnow.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/rockSnowDown.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/starBronze.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/starGold.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
examples/quickwings/assets/tappybird/PNG/starSilver.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
examples/quickwings/assets/tappybird/Spritesheet/planes.png
Normal file
After Width: | Height: | Size: 35 KiB |
14
examples/quickwings/assets/tappybird/Spritesheet/planes.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<TextureAtlas imagePath="sheet.png">
|
||||
<SubTexture name="planeBlue1.png" x="0" y="73" width="88" height="73"/>
|
||||
<SubTexture name="planeBlue2.png" x="0" y="0" width="88" height="73"/>
|
||||
<SubTexture name="planeBlue3.png" x="0" y="365" width="88" height="73"/>
|
||||
<SubTexture name="planeGreen1.png" x="88" y="219" width="88" height="73"/>
|
||||
<SubTexture name="planeGreen2.png" x="88" y="146" width="88" height="73"/>
|
||||
<SubTexture name="planeGreen3.png" x="88" y="73" width="88" height="73"/>
|
||||
<SubTexture name="planeRed1.png" x="88" y="0" width="88" height="73"/>
|
||||
<SubTexture name="planeRed2.png" x="0" y="438" width="88" height="73"/>
|
||||
<SubTexture name="planeRed3.png" x="88" y="292" width="88" height="73"/>
|
||||
<SubTexture name="planeYellow1.png" x="0" y="292" width="88" height="73"/>
|
||||
<SubTexture name="planeYellow2.png" x="0" y="219" width="88" height="73"/>
|
||||
<SubTexture name="planeYellow3.png" x="0" y="146" width="88" height="73"/>
|
||||
</TextureAtlas>
|
BIN
examples/quickwings/assets/tappybird/Spritesheet/sheet.png
Normal file
After Width: | Height: | Size: 246 KiB |
81
examples/quickwings/assets/tappybird/Spritesheet/sheet.xml
Normal file
|
@ -0,0 +1,81 @@
|
|||
<TextureAtlas imagePath="sheet.png">
|
||||
<SubTexture name="UIbg.png" x="0" y="986" width="264" height="264"/>
|
||||
<SubTexture name="background.png" x="0" y="355" width="800" height="480"/>
|
||||
<SubTexture name="buttonLarge.png" x="0" y="1250" width="196" height="70"/>
|
||||
<SubTexture name="buttonSmall.png" x="0" y="1320" width="136" height="80"/>
|
||||
<SubTexture name="groundDirt.png" x="0" y="0" width="808" height="71"/>
|
||||
<SubTexture name="groundGrass.png" x="0" y="142" width="808" height="71"/>
|
||||
<SubTexture name="groundIce.png" x="0" y="71" width="808" height="71"/>
|
||||
<SubTexture name="groundRock.png" x="0" y="284" width="808" height="71"/>
|
||||
<SubTexture name="groundSnow.png" x="0" y="213" width="808" height="71"/>
|
||||
<SubTexture name="letterA.png" x="412" y="835" width="61" height="64"/>
|
||||
<SubTexture name="letterB.png" x="487" y="1537" width="50" height="66"/>
|
||||
<SubTexture name="letterC.png" x="460" y="977" width="52" height="66"/>
|
||||
<SubTexture name="letterD.png" x="432" y="1613" width="54" height="66"/>
|
||||
<SubTexture name="letterE.png" x="511" y="1965" width="45" height="64"/>
|
||||
<SubTexture name="letterF.png" x="512" y="963" width="44" height="64"/>
|
||||
<SubTexture name="letterG.png" x="460" y="1107" width="52" height="66"/>
|
||||
<SubTexture name="letterH.png" x="473" y="835" width="51" height="64"/>
|
||||
<SubTexture name="letterI.png" x="524" y="835" width="22" height="64"/>
|
||||
<SubTexture name="letterJ.png" x="512" y="1027" width="42" height="66"/>
|
||||
<SubTexture name="letterK.png" x="432" y="1821" width="53" height="64"/>
|
||||
<SubTexture name="letterL.png" x="512" y="899" width="44" height="64"/>
|
||||
<SubTexture name="letterM.png" x="392" y="1967" width="66" height="64"/>
|
||||
<SubTexture name="letterN.png" x="432" y="1679" width="53" height="64"/>
|
||||
<SubTexture name="letterO.png" x="418" y="1284" width="60" height="66"/>
|
||||
<SubTexture name="letterP.png" x="489" y="1427" width="48" height="65"/>
|
||||
<SubTexture name="letterQ.png" x="418" y="1205" width="60" height="79"/>
|
||||
<SubTexture name="letterR.png" x="478" y="1249" width="51" height="65"/>
|
||||
<SubTexture name="letterS.png" x="511" y="1899" width="46" height="66"/>
|
||||
<SubTexture name="letterT.png" x="460" y="1043" width="52" height="64"/>
|
||||
<SubTexture name="letterU.png" x="485" y="1757" width="51" height="66"/>
|
||||
<SubTexture name="letterV.png" x="400" y="913" width="61" height="64"/>
|
||||
<SubTexture name="letterW.png" x="136" y="1320" width="76" height="64"/>
|
||||
<SubTexture name="letterX.png" x="418" y="1409" width="58" height="64"/>
|
||||
<SubTexture name="letterY.png" x="432" y="1473" width="57" height="64"/>
|
||||
<SubTexture name="letterZ.png" x="486" y="1613" width="50" height="64"/>
|
||||
<SubTexture name="medalBronze.png" x="0" y="1400" width="114" height="119"/>
|
||||
<SubTexture name="medalGold.png" x="0" y="1519" width="114" height="119"/>
|
||||
<SubTexture name="medalSilver.png" x="0" y="1638" width="114" height="119"/>
|
||||
<SubTexture name="number0.png" x="432" y="1743" width="53" height="78"/>
|
||||
<SubTexture name="number1.png" x="512" y="1093" width="37" height="76"/>
|
||||
<SubTexture name="number2.png" x="477" y="1350" width="51" height="77"/>
|
||||
<SubTexture name="number3.png" x="485" y="1679" width="51" height="78"/>
|
||||
<SubTexture name="number4.png" x="432" y="1537" width="55" height="76"/>
|
||||
<SubTexture name="number5.png" x="485" y="1823" width="50" height="76"/>
|
||||
<SubTexture name="number6.png" x="432" y="1885" width="53" height="77"/>
|
||||
<SubTexture name="number7.png" x="478" y="1173" width="51" height="76"/>
|
||||
<SubTexture name="number8.png" x="461" y="899" width="51" height="78"/>
|
||||
<SubTexture name="number9.png" x="458" y="1962" width="53" height="77"/>
|
||||
<SubTexture name="planeBlue1.png" x="330" y="1371" width="88" height="73"/>
|
||||
<SubTexture name="planeBlue2.png" x="372" y="1132" width="88" height="73"/>
|
||||
<SubTexture name="planeBlue3.png" x="222" y="1562" width="88" height="73"/>
|
||||
<SubTexture name="planeGreen1.png" x="114" y="1639" width="88" height="73"/>
|
||||
<SubTexture name="planeGreen2.png" x="216" y="1951" width="88" height="73"/>
|
||||
<SubTexture name="planeGreen3.png" x="222" y="1489" width="88" height="73"/>
|
||||
<SubTexture name="planeRed1.png" x="216" y="1878" width="88" height="73"/>
|
||||
<SubTexture name="planeRed2.png" x="372" y="1059" width="88" height="73"/>
|
||||
<SubTexture name="planeRed3.png" x="372" y="986" width="88" height="73"/>
|
||||
<SubTexture name="planeYellow1.png" x="304" y="1967" width="88" height="73"/>
|
||||
<SubTexture name="planeYellow2.png" x="330" y="1298" width="88" height="73"/>
|
||||
<SubTexture name="planeYellow3.png" x="330" y="1225" width="88" height="73"/>
|
||||
<SubTexture name="puffLarge.png" x="114" y="1712" width="42" height="35"/>
|
||||
<SubTexture name="puffSmall.png" x="196" y="1250" width="25" height="21"/>
|
||||
<SubTexture name="rock.png" x="114" y="1400" width="108" height="239"/>
|
||||
<SubTexture name="rockDown.png" x="324" y="1489" width="108" height="239"/>
|
||||
<SubTexture name="rockGrass.png" x="0" y="1757" width="108" height="239"/>
|
||||
<SubTexture name="rockGrassDown.png" x="264" y="986" width="108" height="239"/>
|
||||
<SubTexture name="rockIce.png" x="216" y="1639" width="108" height="239"/>
|
||||
<SubTexture name="rockIceDown.png" x="222" y="1250" width="108" height="239"/>
|
||||
<SubTexture name="rockSnow.png" x="324" y="1728" width="108" height="239"/>
|
||||
<SubTexture name="rockSnowDown.png" x="108" y="1757" width="108" height="239"/>
|
||||
<SubTexture name="starBronze.png" x="170" y="1996" width="39" height="37"/>
|
||||
<SubTexture name="starGold.png" x="369" y="1444" width="39" height="37"/>
|
||||
<SubTexture name="starSilver.png" x="330" y="1444" width="39" height="37"/>
|
||||
<SubTexture name="tap.png" x="156" y="1712" width="40" height="40"/>
|
||||
<SubTexture name="tapLeft.png" x="0" y="1996" width="85" height="42"/>
|
||||
<SubTexture name="tapRight.png" x="85" y="1996" width="85" height="42"/>
|
||||
<SubTexture name="tapTick.png" x="418" y="1350" width="59" height="59"/>
|
||||
<SubTexture name="textGameOver.png" x="0" y="835" width="412" height="78"/>
|
||||
<SubTexture name="textGetReady.png" x="0" y="913" width="400" height="73"/>
|
||||
</TextureAtlas>
|
510
examples/quickwings/assets/tappybird/Vector/vector.svg
Normal file
After Width: | Height: | Size: 446 KiB |