1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
| #include "body.h"
body::body() : m_vx(0), m_vy(0), m_leg(0), m_kick(0)
{
m_rectangle.x = 500;
m_rectangle.y = 0;
m_rectangle.w = 88;
m_rectangle.h = 304;
}
body::~body()
{
//dtor
}
void body::load(SDL_Renderer *renderer)
{
m_surface3 = SDL_LoadBMP(kick);
m_texture3 = SDL_CreateTextureFromSurface(renderer, m_surface3);
m_surface2 = SDL_LoadBMP(jambe);
m_texture2 = SDL_CreateTextureFromSurface(renderer, m_surface2);
m_surface1 = SDL_LoadBMP(defaut);
m_texture1 = SDL_CreateTextureFromSurface(renderer, m_surface1);
}
void body::affiche(SDL_Renderer *renderer)
{
if(m_leg)
{
m_rectangle.w = 169;
SDL_RenderCopy(renderer, m_texture2, NULL, &m_rectangle);
}
else if(m_kick)
{
m_rectangle.w = 185;
SDL_RenderCopy(renderer, m_texture3, NULL, &m_rectangle);
}
else
{
m_rectangle.w = 88;
SDL_RenderCopy(renderer, m_texture1, NULL, &m_rectangle);
}
}
void body::action(input touch)
{
if(touch.getTouchDown(SDL_SCANCODE_UP) && m_rectangle.y >= 420)
m_vy += -20;
if(touch.getTouchDown(SDL_SCANCODE_DOWN))
{
}
if(touch.getTouchDown(SDL_SCANCODE_RIGHT))
m_vx = 4;
if(touch.getTouchDown(SDL_SCANCODE_LEFT))
m_vx = -4;
if(touch.getTouchDown(SDL_SCANCODE_C))
{
if(m_kick)
m_kick = 0;
else
m_kick = 1;
}
if(touch.getTouchUp(SDL_SCANCODE_C))
m_kick = 0;
if(touch.getTouchUp(SDL_SCANCODE_RIGHT))
{
}
if(touch.getTouchUp(SDL_SCANCODE_LEFT))
{
}
}
void body::dynamic()
{
m_rectangle.x += m_vx;
m_rectangle.y += m_vy;
if(m_rectangle.y >= 420)
{
m_vy = 0;
m_rectangle.y = 420;
m_leg = 0;
}
else
{
m_vy += 1;
if(!m_kick)
m_leg = 1;
else
m_leg = 0;
}
m_vx *= 0.99;
}
float body::location()
{
return m_location;
} |
Partager