KirbyDreamLand/IA_Monstre.cpp

105 lines
1.6 KiB
C++
Raw Permalink Normal View History

2016-04-30 13:46:05 +02:00
#include "IA_Monstre.hpp"
2016-07-12 19:10:22 +02:00
Mob::Mob()
2016-04-30 13:46:05 +02:00
{
direction = true;
2016-07-12 19:10:22 +02:00
couldown = 0;
2016-04-30 13:46:05 +02:00
}
2016-07-12 19:10:22 +02:00
void Mob::SetDirection( bool d)
2016-04-30 13:46:05 +02:00
{
2016-07-12 19:10:22 +02:00
direction = d;
2016-04-30 13:46:05 +02:00
}
2016-07-12 19:10:22 +02:00
void Mob::SetCouldown( int c)
2016-04-30 13:46:05 +02:00
{
2016-07-12 19:10:22 +02:00
couldown = c;
2016-04-30 13:46:05 +02:00
}
2016-07-12 19:10:22 +02:00
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);
}
2016-04-30 13:46:05 +02:00
2016-07-12 19:10:22 +02:00
void Mob_InLine_Jump::UpdateEverySecond()
2016-04-30 13:46:05 +02:00
{
2016-07-12 19:10:22 +02:00
if(couldown < 0)
{
GetBody()->velocity.y = 25 ;
couldown = 80 ;
}
2016-04-30 13:46:05 +02:00
2016-07-12 19:10:22 +02:00
couldown --;
2016-04-30 13:46:05 +02:00
}
2016-07-12 19:10:22 +02:00
void Mob_InLine_Fly::Update()
2016-04-30 13:46:05 +02:00
{
2016-07-12 19:10:22 +02:00
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 )))
2016-04-30 13:46:05 +02:00
SetIt(0);
else
SetIt(1);
2016-07-12 19:10:22 +02:00
ReverseRender(direction);
2016-04-30 13:46:05 +02:00
}
2016-07-12 19:10:22 +02:00
void Mob_Piaf::UpdateEverySecond()
2016-04-30 13:46:05 +02:00
{
2016-07-12 19:10:22 +02:00
if( CollisionDecor( GetX() , (GetY() - 1 )) && !couldown )
GetBody()->velocity.y = 25;
2016-04-30 13:46:05 +02:00
2016-07-12 19:10:22 +02:00
couldown --;
2016-04-30 13:46:05 +02:00
2016-07-12 19:10:22 +02:00
if(couldown < 0)couldown = 4;
2016-04-30 13:46:05 +02:00
}
2016-07-12 19:10:22 +02:00
void Mob_Champ::Update()
2016-04-30 13:46:05 +02:00
{
2016-07-12 19:10:22 +02:00
couldown --;
2016-04-30 13:46:05 +02:00
2016-07-12 19:10:22 +02:00
if(couldown < 0)
2016-04-30 13:46:05 +02:00
{
2016-07-12 19:10:22 +02:00
if(direction)
direction = false;
else
direction = true;
2016-04-30 13:46:05 +02:00
2016-07-12 19:10:22 +02:00
GetBody()->velocity.y = 20;
2016-04-30 13:46:05 +02:00
2016-07-12 19:10:22 +02:00
couldown = 50;
2016-04-30 13:46:05 +02:00
}
2016-07-12 19:10:22 +02:00
ReverseRender(direction);
2016-04-30 13:46:05 +02:00
}