KirbyDreamLand/IA_Monstre.cpp

105 lines
1.6 KiB
C++

#include "IA_Monstre.hpp"
Mob::Mob()
{
direction = true;
couldown = 0;
}
void Mob::SetDirection( bool d)
{
direction = d;
}
void Mob::SetCouldown( int c)
{
couldown = c;
}
void Mob_InLine::Update()
{
if(direction)
{
Move( - 1 , 0 );
if(CollisionDecor( GetX() - 1 , GetY() )) direction = false;
}
else
{
Move( 1 , 0 );
if(CollisionDecor( GetX() + 1 , GetY() )) direction = true;
}
ReverseRender(direction);
}
void Mob_InLine_Jump::UpdateEverySecond()
{
if(couldown < 0)
{
GetBody()->velocity.y = 25 ;
couldown = 80 ;
}
couldown --;
}
void Mob_InLine_Fly::Update()
{
if(direction)
{
Move( - 2 , 0 );
if(CollisionDecor( GetX() - 1 , GetY() )) direction = false;
}
else
{
Move( 2 , 0 );
if(CollisionDecor( GetX() + 1 , GetY() )) direction = true;
}
GetBody()->velocity.y = 9;
ReverseRender(direction);
}
void Mob_Piaf::Update()
{
if( CollisionDecor( GetX() , (GetY() - 1 )))
SetIt(0);
else
SetIt(1);
ReverseRender(direction);
}
void Mob_Piaf::UpdateEverySecond()
{
if( CollisionDecor( GetX() , (GetY() - 1 )) && !couldown )
GetBody()->velocity.y = 25;
couldown --;
if(couldown < 0)couldown = 4;
}
void Mob_Champ::Update()
{
couldown --;
if(couldown < 0)
{
if(direction)
direction = false;
else
direction = true;
GetBody()->velocity.y = 20;
couldown = 50;
}
ReverseRender(direction);
}