Files
game/mario/mario.hpp
T

37 lines
1.1 KiB
C++
Raw Normal View History

2021-05-22 23:13:26 +02:00
#ifndef MARIO_H
#define MARIO_H
#include "../sdlpp/sdlpp_rectrenderer.hpp"
#include "mario_visitor.hpp"
2021-05-23 23:32:15 +02:00
#include "sprites.hpp"
2021-05-22 23:13:26 +02:00
class Mario : public SDLPP::RectangleRender {
public:
Mario(const std::shared_ptr< SDLPP::Renderer > &renderer);
void walkLeft();
void walkRight();
void setStanding();
void handleVisitor(MarioVisitor &visitor, SDLPP::Vec2D<double> previous_position);
2021-05-22 23:54:01 +02:00
void jump();
void stopJump();
2021-05-23 23:32:15 +02:00
virtual void custom_move( int ticks ) override;
2021-05-22 23:13:26 +02:00
private:
bool faces_right = true;
2021-05-23 23:45:45 +02:00
double side_movement = 0.39;
2021-05-23 23:32:15 +02:00
double jump_movement = 1.0;
2021-05-22 23:54:01 +02:00
bool jumping = false;
bool stop_jump = false;
double max_jump = 0;
double min_jump = 0;
double slow_jump = 0;
bool on_ground = true;
2021-05-23 23:32:15 +02:00
int ticks_till_gravity = 0;
// gravity should be added every frame in 60fps game
const int base_gravity_ticks = 1000/60;
const double gravity_add_jumping = jump_movement/32.0;
const double gravity_add_falling = jump_movement/(64.0/7.0);
2021-05-25 22:05:50 +02:00
std::shared_ptr<SDLPP::RectColider> top_collision = nullptr;
2021-05-22 23:13:26 +02:00
};
#endif