GoldQuest/Perso.cpp

179 lines
5.4 KiB
C++

#include "Perso.hpp"
void Control ::Start()
{
couldown = 0;
Vie=40;
BarreVie=0;
VieMax=40;
p_epee->Disable();
p_epee->AffectTag("Epee");
}
void Control::Update()
{
BarreVie=Vie*40/VieMax;
ML_line (126,40,126,40-BarreVie,ML_BLACK);
ML_line (125,1,125,41,ML_BLACK);
ML_line (127,1,127,42,ML_BLACK);
ML_line (125,1,127,1,ML_BLACK);
ML_line (125,41,127,41,ML_BLACK);
Object * Buffer = GetObject()->GetObjectCollisionTag("Slime");
if(Buffer != NULL)
{
Vie--;
int difx = GetObject()->GetTransform()->GetX() - Buffer->GetTransform()->GetX();
int dify = GetObject()->GetTransform()->GetY() - Buffer->GetTransform()->GetY();
GetObject()->GetRigidBody()->Move(difx * 2 ,dify * 2);
}
if (input_trigger(K_SHIFT) || couldown > 0)
{
couldown --;
if(couldown < 0) couldown = 10;
switch (Direction_p)
{
case 1:
GetObject()->GetRender()->SetIt(7);
p_epee->GetTransform()->SetXY(GetObject()->GetTransform()->GetX() + 1,GetObject()->GetTransform()->GetY() + 12);
p_epee->GetRender()->SetDirection(0);
break;
case 2:
GetObject()->GetRender()->SetIt(8);
GetObject()->GetRender()->ReverseRender(true);
p_epee->GetTransform()->SetXY(GetObject()->GetTransform()->GetX()+14,GetObject()->GetTransform()->GetY()-2);
p_epee->GetRender()->SetDirection(270);
break;
case 3:
GetObject()->GetRender()->SetIt(6);
p_epee->GetTransform()->SetXY(GetObject()->GetTransform()->GetX() + 6,GetObject()->GetTransform()->GetY() - 12);
p_epee->GetRender()->SetDirection(180);
break;
case 4:
GetObject()->GetRender()->SetIt(8);
GetObject()->GetRender()->ReverseRender(false);
p_epee->GetTransform()->SetXY(GetObject()->GetTransform()->GetX() - 8,GetObject()->GetTransform()->GetY() - 3);
p_epee->GetRender()->SetDirection(90);
break;
}
p_epee->Enable();
}
else
{
p_epee->Disable();
if(input_press(K_RIGHT))
{
GetObject()->GetRigidBody()->Move(1,0);
GetObject()->GetRender()->SetIt(5);
GetObject()->GetRender()->ReverseRender(true);
Direction_p=2;
}
else if(input_press(K_LEFT))
{
GetObject()->GetRigidBody()->Move(-1,0);
GetObject()->GetRender()->SetIt(5);
GetObject()->GetRender()->ReverseRender(false);
Direction_p=4;
}
else if(input_press(K_UP))
{
GetObject()->GetRigidBody()->Move (0,1);
GetObject()->GetRender()->SetIt(3);
Direction_p=1;
}
else if(input_press(K_DOWN))
{
GetObject()->GetRigidBody()->Move (0,-1);
GetObject()->GetRender()->SetIt(1);
Direction_p=3;
}
else
{
switch (Direction_p)
{
case 1:GetObject()->GetRender()->SetIt(2);break;
case 2:GetObject()->GetRender()->SetIt(4);break;
case 3:GetObject()->GetRender()->SetIt(0);break;
case 4:GetObject()->GetRender()->SetIt(4);break;
}
}
}
if(GetObject()->GetCollisionTag("T1"))
{
GetEngine()->MoveObject(GetObject(),1);
GetEngine()->MoveObject(p_epee,1);
GetEngine()->SetCurrentLevel(1);
GetObject()->GetTransform()->SetXY(29,3);
}
if(GetObject()->GetCollisionTag("T2"))
{
GetEngine()->MoveObject(GetObject(),0);
GetEngine()->MoveObject(p_epee,0);
GetEngine()->SetCurrentLevel(0);
GetObject()->GetTransform()->SetXY(169,86);
}
if(GetObject()->GetCollisionTag("T3"))
{
GetEngine()->MoveObject(GetObject(),1);
GetEngine()->MoveObject(p_epee,1);
GetEngine()->SetCurrentLevel(1);
GetObject()->GetTransform()->SetXY(169,3);
}
if(GetObject()->GetCollisionTag("T4"))
{
GetEngine()->MoveObject(GetObject(),0);
GetEngine()->MoveObject(p_epee,0);
GetEngine()->SetCurrentLevel(0);
GetObject()->GetTransform()->SetXY(197,86);
}
if(GetObject()->GetCollisionTag("T5"))
{
GetEngine()->MoveObject(GetObject(),2);
GetEngine()->MoveObject(p_epee,2);
GetEngine()->SetCurrentLevel(2);
GetObject()->GetTransform()->SetXY(57,3);
}
if(GetObject()->GetCollisionTag("T6"))
{
GetEngine()->MoveObject(GetObject(),0);
GetEngine()->MoveObject(p_epee,0);
GetEngine()->SetCurrentLevel(0);
GetObject()->GetTransform()->SetXY(57,69);
}
if(GetObject()->GetCollisionTag("T7"))
{
GetEngine()->MoveObject(GetObject(),3);
GetEngine()->MoveObject(p_epee,3);
GetEngine()->SetCurrentLevel(3);
GetObject()->GetTransform()->SetXY(113,3);
}
if(GetObject()->GetCollisionTag("T8"))
{
GetEngine()->MoveObject(GetObject(),0);
GetEngine()->MoveObject(p_epee,0);
GetEngine()->SetCurrentLevel(0);
GetObject()->GetTransform()->SetXY(71,113);
}
if (input_press(K_EXIT))GetEngine()->StopGame();
GetEngine()->MiddleScreen(GetObject()->GetTransform()->GetX() + 6 , GetObject()->GetTransform()->GetY() + 6);
}