30 class SpriteMotion final {
32 std::unique_ptr<Sprite> sprite;
35 SpriteMotion(std::unique_ptr<Sprite> sprite) : sprite(std::move(sprite)) {}
36 SpriteMotion(
CmdFX_Sprite* sprite) : sprite(std::make_unique<Sprite>(sprite)) {}
62 std::vector<double> motion;
67 for (
int i = 0; i < 4; ++i) {
68 motion.push_back(arr[i]);
75 double getVelocityX() {
79 int setVelocityX(
double velocity) {
83 double getVelocityY() {
87 int setVelocityY(
double velocity) {
91 double getAccelerationX() {
95 int setAccelerationX(
double acceleration) {
99 double getAccelerationY() {
103 int setAccelerationY(
double acceleration) {
107 bool isAboutToCollide(Sprite& sprite2) {
111 bool isAboutToCollide(std::unique_ptr<Sprite> sprite2) {
115 std::vector<std::unique_ptr<Sprite>> getAboutToCollideSprites() {
116 std::vector<std::unique_ptr<Sprite>> sprites;
119 for (
int i = 0; arr[i] !=
nullptr; ++i) {
120 sprites.emplace_back(std::make_unique<Sprite>(arr[i]));
126 int resetAllMotion() {
std::vector< double > getMotion()
Gets the motion array of a sprite as a vector.
Definition motion.hpp:61
Velocity and Acceleration functions.
double Sprite_getAccelerationY(CmdFX_Sprite *sprite)
Gets the Y acceleration of a sprite.
int Sprite_setAccelerationY(CmdFX_Sprite *sprite, double acceleration)
Sets the Y acceleration of a sprite.
double Sprite_getVelocityY(CmdFX_Sprite *sprite)
Gets the Y velocity of a sprite.
int Sprite_isAboutToCollide(CmdFX_Sprite *sprite1, CmdFX_Sprite *sprite2)
Whether a sprite is about to collide with another sprite.
double * Sprite_getMotion(CmdFX_Sprite *sprite)
Gets the motion array of a sprite.
void Engine_enableMotionDebug()
Enables motion debugging.
int Sprite_setVelocityX(CmdFX_Sprite *sprite, double velocity)
Sets the X velocity of a sprite.
int Sprite_setVelocityY(CmdFX_Sprite *sprite, double velocity)
Sets the Y velocity of a sprite.
CmdFX_Sprite ** Sprite_getAboutToCollideSprites(CmdFX_Sprite *sprite)
Gets all of the sprites the sprite is about to collide with.
double Sprite_getVelocityX(CmdFX_Sprite *sprite)
Gets the X velocity of a sprite.
int Sprite_setAccelerationX(CmdFX_Sprite *sprite, double acceleration)
Sets the X acceleration of a sprite.
double Sprite_getAccelerationX(CmdFX_Sprite *sprite)
Gets the X acceleration of a sprite.
void Engine_disableMotionDebug()
Disables motion debugging.
int Sprite_resetAllMotion(CmdFX_Sprite *sprite)
Resets all motion of a sprite.
int Engine_isMotionDebugEnabled()
Whether motion debugging is enabled.
A C++ wrapper around the CmdFX Physics Engine.
Definition engine.hpp:25
bool isMotionDebugEnabled()
Checks if motion debugging is enabled.
Definition engine.hpp:54
void disableMotionDebug()
Disables motion debugging.
Definition motion.hpp:162
void enableMotionDebug()
Enables motion debugging.
Definition motion.hpp:155
Primary namespace for CmdFX.
Definition cmdfx.hpp:22
struct CmdFX_Sprite CmdFX_Sprite
Represents a sprite that can be drawn to the terminal.
C++ Extensions for the CmdFX Sprites API.
Represents a sprite that can be drawn to the terminal.
Definition sprites.h:30