update doc, travis poging1
This commit is contained in:
parent
db43d447da
commit
778de89501
|
@ -1,4 +1,5 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
build/
|
||||||
|
|
||||||
# Created by https://www.gitignore.io/api/clion,cmake
|
# Created by https://www.gitignore.io/api/clion,cmake
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
language: cpp
|
||||||
|
compiler: g++
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
# Install a supported cmake version
|
||||||
|
- wget -O cmake.sh https://cmake.org/files/v3.12/cmake-3.12.1-Linux-x86_64.sh
|
||||||
|
- sudo sh cmake.sh --skip-license --exclude-subdir --prefix=/usr/local
|
||||||
|
|
||||||
|
script:
|
||||||
|
- mkdir build
|
||||||
|
- cd build
|
||||||
|
- cmake -DCMAKE_CXX_COMPILER=$BIN_PATH/clang++ -DCMAKE_INSTALL_PREFIX=./ ../
|
||||||
|
- cd test
|
||||||
|
- make
|
||||||
|
- ./unittest
|
|
@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 3.12)
|
||||||
SET(CMAKE_C_COMPILER arm-none-eabi-gcc)
|
SET(CMAKE_C_COMPILER arm-none-eabi-gcc)
|
||||||
SET(CMAKE_CXX_COMPILER arm-none-eabi-g++)
|
SET(CMAKE_CXX_COMPILER arm-none-eabi-g++)
|
||||||
SET(CMAKE_OBJCOPY arm-none-eabi-objcopy)
|
SET(CMAKE_OBJCOPY arm-none-eabi-objcopy)
|
||||||
SET(CMAKE_AR arm-none-eabi-ar)
|
SET(CMAKE_AR arm-none-eabi-ar CACHE FILEPATH "Archiver")
|
||||||
SET(CMAKE_RANLIB arm-none-eabi-ranlib)
|
SET(CMAKE_RANLIB arm-none-eabi-ranlib)
|
||||||
|
|
||||||
SET(BASE_CMAKE_LINK_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
|
SET(BASE_CMAKE_LINK_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
|
||||||
|
|
29
README.md
29
README.md
|
@ -1,6 +1,8 @@
|
||||||
|
|
||||||
## A high-level object-oriented Gameboy Advance sprite engine library
|
## A high-level object-oriented Gameboy Advance sprite engine library
|
||||||
|
|
||||||
|
![travis build status](https://travis-ci.org/wgroeneveld/gba-sprite-engine.svg?branch=master)
|
||||||
|
|
||||||
That's a mouthful - let's break that down:
|
That's a mouthful - let's break that down:
|
||||||
|
|
||||||
#### High-level object-oriented
|
#### High-level object-oriented
|
||||||
|
@ -117,7 +119,9 @@ Creating sprites is easy with the `SpriteBuilder`. Specify what kind of sprite y
|
||||||
|
|
||||||
Sample rotation demo 3.
|
Sample rotation demo 3.
|
||||||
|
|
||||||
**Sprite animation is built-in**! Just feed your sprite data to the builder and use `.withAnimated(amountOfFrames, frameDelay)`. Remember to position each frame in one column in the image itself (vertically).
|
**Sprite animation is built-in**! Just feed your sprite data to the builder and use `.withAnimated(amountOfFrames, frameDelay)`. Remember to position each frame in one column in the image itself (vertically). Like this:
|
||||||
|
|
||||||
|
![lama gif example](https://github.com/wgroeneveld/gba-sprite-engine/blob/master/demos/demo1-basicfeatures/lama.png?raw=true)
|
||||||
|
|
||||||
Useful sprite methods:
|
Useful sprite methods:
|
||||||
|
|
||||||
|
@ -160,15 +164,34 @@ The engine comes with (some) [Google Test](https://github.com/google/googletest)
|
||||||
|
|
||||||
### Compiling everything
|
### Compiling everything
|
||||||
|
|
||||||
The project has been developed with CLion. The `.idea` dir is there for you to get started.
|
#### Prerequirements
|
||||||
|
|
||||||
|
1. cmake 3.12.x or higher: the cmake linker toolchain set contains a bug in .11
|
||||||
|
2. A compiled Google Test 1.8.x or higher with `$GTEST_DIR` env. var
|
||||||
|
3. The [DevkitPro toolchain](https://devkitpro.org/wiki/Getting_Started) installed in your `$PATH`
|
||||||
|
4. The [mGBA emulator](https://mgba.io/downloads.html)
|
||||||
|
|
||||||
|
#### Compiling with cmake
|
||||||
|
|
||||||
|
The project has been developed with CLion. The `.idea` dir is there for you to get started. The project can be imported as a cmake project.
|
||||||
|
|
||||||
As such, `CMake` was an easy choice. Use the following commands to build everything, including the demos:
|
As such, `CMake` was an easy choice. Use the following commands to build everything, including the demos:
|
||||||
|
|
||||||
1. `mkdir cmake-build-debug && cd cmake-build-debug`
|
1. `mkdir cmake-build-debug && cd cmake-build-debug`
|
||||||
2. `cmake ./../`
|
2. `cmake ./../`
|
||||||
|
3. `make`
|
||||||
|
|
||||||
|
The demos will be in `cmake-build-debug/demox/demoname.gba`.
|
||||||
|
|
||||||
Things you might need to change in `CMakeLists.txt` files:
|
Things you might need to change in `CMakeLists.txt` files:
|
||||||
|
|
||||||
1. I'm assuming your GBA cross compiler is in your `$PATH`. If it's not, add an absolute path to `SET(CMAKE_C_COMPILER arm-none-eabi-gcc)` etc.
|
1. I'm assuming your GBA cross compiler is in your `$PATH`. If it's not, add an absolute path to `SET(CMAKE_C_COMPILER arm-none-eabi-gcc)` etc.
|
||||||
2. The Google Test Library should be compiled from source in some directory. I have mine hardcoded: `SET(GTEST_LIBRARY "/Users/jefklak/CLionProjects/googletest-release-1.8.0/googletest")` so adjust accordinly or exclude the test subproject.
|
2. I'm assuming your Google Test Library is compiled and in your `$GTEST_DIR` path. If not, add an absolute path to: `SET(GTEST_LIBRARY "/Users/jefklak/CLionProjects/googletest-release-1.8.0/googletest")`.
|
||||||
|
|
||||||
|
#### Running unit tests
|
||||||
|
|
||||||
|
After compiling, execute the `unittest` main executable:
|
||||||
|
|
||||||
|
`./cmake-build-debug/test/unittest`
|
||||||
|
|
||||||
|
And hope for exit code 0!
|
||||||
|
|
|
@ -48,8 +48,8 @@ private:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const void *data;
|
const void *data;
|
||||||
u32 x, y, priority, dx, dy;
|
int x, y, dx, dy;
|
||||||
u32 w, h, size_bits, shape_bits;
|
u32 priority, w, h, size_bits, shape_bits;
|
||||||
bool stayWithinBounds;
|
bool stayWithinBounds;
|
||||||
u32 imageSize, tileIndex;
|
u32 imageSize, tileIndex;
|
||||||
SpriteSize spriteSize;
|
SpriteSize spriteSize;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
cmake_minimum_required(VERSION 3.10)
|
cmake_minimum_required(VERSION 3.12)
|
||||||
project(Unittest)
|
project(Unittest)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
|
||||||
SET(GTEST_LIBRARY "/Users/jefklak/CLionProjects/googletest-release-1.8.0/googletest")
|
SET(GTEST_LIBRARY "$ENV{GTEST_DIR}")
|
||||||
|
|
||||||
# reset linker flags; ARM + GTest doesn't work
|
# reset linker flags; ARM + GTest doesn't work
|
||||||
SET(CMAKE_EXE_LINKER_FLAGS "${BASE_CMAKE_LINK_FLAGS}")
|
SET(CMAKE_EXE_LINKER_FLAGS "${BASE_CMAKE_LINK_FLAGS}")
|
||||||
|
|
|
@ -17,12 +17,12 @@ protected:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class SomeScene : public scene {
|
class SomeScene : public Scene {
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<Sprite> someSprite1;
|
std::unique_ptr<Sprite> someSprite1;
|
||||||
std::unique_ptr<Sprite> someSprite2;
|
std::unique_ptr<Sprite> someSprite2;
|
||||||
public:
|
public:
|
||||||
SomeScene() : scene(nullptr) { };
|
SomeScene() : Scene(nullptr) { };
|
||||||
std::vector<Sprite *> sprites() override {
|
std::vector<Sprite *> sprites() override {
|
||||||
return {
|
return {
|
||||||
someSprite1.get(), someSprite2.get()
|
someSprite1.get(), someSprite2.get()
|
||||||
|
|
Loading…
Reference in New Issue