Ajout des 4 maps
This commit is contained in:
parent
20fcc83f04
commit
7a3d3e6326
32
GUI.cpp
32
GUI.cpp
|
@ -80,25 +80,33 @@ void Script_GUI::Lose()
|
|||
{
|
||||
bool cinematic = true;
|
||||
|
||||
int y = GetEngine()->ListeObject[0]->OTransforms->GetY();
|
||||
Object * Kirby;
|
||||
|
||||
for(int i = 0 ; i < GetEngine()->GetCurrentLevel()->GetNbObject() ; i++ )
|
||||
{
|
||||
if(!strcmp(GetEngine()->GetCurrentLevel()->GetListeObject()[i]->GetTag(), "Kirby"))Kirby = GetEngine()->GetCurrentLevel()->GetListeObject()[i];
|
||||
}
|
||||
|
||||
int y = Kirby->GetTransform()->GetY();
|
||||
|
||||
float force = 4.5;
|
||||
|
||||
GetEngine()->ListeObject[0]->ORender->SetIt(11);
|
||||
Kirby->GetRender()->ForceSetIt(11);
|
||||
|
||||
ML_clear_vram();
|
||||
|
||||
GetEngine()->gamemap->AfficherMap();
|
||||
GetEngine()->ListeObject[0]->OTransforms->SetY(y);
|
||||
GetEngine()->GetCurrentLevel()->DrawMap();
|
||||
Kirby->GetTransform()->SetY(y);
|
||||
GetEngine()->UpdateRelativePosition();
|
||||
GetEngine()->ListeObject[0]->ORender->DrawObject();
|
||||
this->Update();
|
||||
Kirby->GetRender()->DrawObject();
|
||||
|
||||
Update();
|
||||
|
||||
ML_display_vram();
|
||||
|
||||
Sleep(400);
|
||||
|
||||
while(cinematic == true)
|
||||
while(cinematic)
|
||||
{
|
||||
|
||||
y += force;
|
||||
|
@ -108,14 +116,14 @@ void Script_GUI::Lose()
|
|||
|
||||
if(y < -16) cinematic = false;
|
||||
|
||||
GetEngine()->gamemap->AfficherMap();
|
||||
GetEngine()->GetCurrentLevel()->DrawMap();
|
||||
|
||||
GetEngine()->ListeObject[0]->OTransforms->SetY(y);
|
||||
Kirby->GetTransform()->SetY(y);
|
||||
|
||||
GetEngine()->UpdateRelativePosition();
|
||||
|
||||
GetEngine()->ListeObject[0]->ORender->DrawObject();
|
||||
this->Update();
|
||||
Kirby->GetRender()->DrawObject();
|
||||
Update();
|
||||
|
||||
ML_display_vram();
|
||||
|
||||
|
@ -129,7 +137,7 @@ void Script_GUI::Lose()
|
|||
TryAgain();
|
||||
}
|
||||
|
||||
GetEngine()->ListeObject[0]->OTransforms->SetXY(0, 17);
|
||||
Kirby->GetTransform()->SetXY(8, 32);
|
||||
}
|
||||
|
||||
void Script_GUI::TryAgain()
|
||||
|
|
2
GUI.hpp
2
GUI.hpp
|
@ -1,7 +1,7 @@
|
|||
#ifndef GUI
|
||||
#define GUI
|
||||
|
||||
#include "..\C-Engine\CHeader.hpp"
|
||||
#include "..\C-Engine\CEngine.hpp"
|
||||
|
||||
class Script_GUI: public Script
|
||||
{
|
||||
|
|
116
Kirby.cpp
116
Kirby.cpp
|
@ -1,98 +1,78 @@
|
|||
|
||||
#include "..\C-Engine\CHeader.hpp"
|
||||
#include "..\C-Engine\CEngine.hpp"
|
||||
|
||||
#include "Sources\Script_Control.hpp"
|
||||
#include "Sources\IA_Monstre.hpp"
|
||||
#include "Sources\GUI.hpp"
|
||||
#include "Script_Control.hpp"
|
||||
#include "GUI.hpp"
|
||||
|
||||
int Niveau1()
|
||||
{
|
||||
|
||||
#include "Sources\Sprite.hpp" // Inclusion des sprites.
|
||||
#include "Sprite.hpp" // Inclusion des sprites.
|
||||
|
||||
|
||||
//*****************Creation des objects******************
|
||||
|
||||
Object Kirby;
|
||||
Kirby.OTransforms->SetXY(8, 30);
|
||||
Kirby.ORender->SetRender(A_Kirby , 12);
|
||||
Kirby.ORigibody = new Rigibody(&Kirby);
|
||||
Kirby.ORigibody->SetMass(1);
|
||||
Kirby.ORigibody->AddForce(0 , -15);
|
||||
Kirby.AffectTag("Kirby");
|
||||
|
||||
Object Ours;
|
||||
Ours.OTransforms->SetXY(200 , 18);
|
||||
Ours.ORender->SetRender(A_Ours);
|
||||
Ours.ORigibody = new Rigibody(&Ours);
|
||||
Ours.ORigibody->SetMass(5);
|
||||
Ours.AffectTag("Ennemis");
|
||||
|
||||
Object Piaf;
|
||||
Piaf.OTransforms->SetXY(300 , 34);
|
||||
Piaf.ORender->SetRender(A_Piaf , 2);
|
||||
Piaf.ORigibody = new Rigibody(&Piaf);
|
||||
Piaf.ORigibody->SetMass(1);
|
||||
Piaf.AffectTag("Ennemis");
|
||||
|
||||
Object Champignon;
|
||||
Champignon.OTransforms->SetXY( 500 , 18);
|
||||
Champignon.ORender->SetRender( A_Champ , 2);
|
||||
Champignon.ORigibody = new Rigibody(&Champignon);
|
||||
Champignon.ORigibody->SetMass(1);
|
||||
Champignon.AffectTag("Ennemis");
|
||||
|
||||
Object Etoile;
|
||||
Etoile.OTransforms->SetXY(1250 , 52);
|
||||
Etoile.ORender->SetRender(A_Etoile);
|
||||
Etoile.AffectTag("Etoile");
|
||||
|
||||
Object Aspiration;
|
||||
Aspiration.ORender->SetRender(A_Aspiration);
|
||||
Aspiration.AffectTag("Aspiration");
|
||||
Object * Kirby = new Object;
|
||||
Kirby->GetTransform()->SetXY(8, 32);
|
||||
Kirby->GetRender()->SetRender(A_Kirby , 12);
|
||||
|
||||
Control * Kirby_Script = new Control;
|
||||
IaOurs * Ours_Script = new IaOurs;
|
||||
IaPiaf * Piaf_Script = new IaPiaf;
|
||||
IaChamp * Champignon_Script = new IaChamp;
|
||||
SAspi * Aspiration_Script = new SAspi;
|
||||
Kirby->AffectScript(Kirby_Script);
|
||||
|
||||
Kirby.AffectScript(Kirby_Script);
|
||||
Ours.AffectScript(Ours_Script);
|
||||
Piaf.AffectScript(Piaf_Script);
|
||||
Champignon.AffectScript(Champignon_Script);
|
||||
Aspiration.AffectScript(Aspiration_Script);
|
||||
Object * Aspiration = new Object;
|
||||
Aspiration->GetRender()->SetRender(A_Aspiration);
|
||||
Aspiration->AffectTag("Aspiration");
|
||||
|
||||
SAspi * Aspiration_Script = new SAspi;
|
||||
Aspiration->AffectScript(Aspiration_Script);
|
||||
|
||||
Script_GUI * Game_GUI = new Script_GUI;
|
||||
Kirby_Script->Initialisation( A_Star , A_Soufle , Aspiration , Game_GUI );
|
||||
|
||||
//***********Creation de la map***************
|
||||
|
||||
Map Niveau1;
|
||||
Niveau1.SetMap(Tileset1 , map1 , TileProp , 16 , 16 , 81 ,7);
|
||||
Level * L_GreenGreen1 = new Level;
|
||||
L_GreenGreen1->SetMap(GreenGreenTileset , GreenGreen1 , GreenGreenProp , 16 , 16 , 90 , 8);
|
||||
|
||||
Level * L_GreenGreen2 = new Level;
|
||||
L_GreenGreen2->SetMap(GreenGreenTileset , GreenGreen2 , GreenGreenProp , 16 , 16 , 82 , 8);
|
||||
|
||||
Level * L_GreenGreen3 = new Level;
|
||||
L_GreenGreen3->SetMap(GreenGreenTileset , GreenGreen3 , GreenGreenProp , 16 , 16 , 16 , 40);
|
||||
|
||||
Level * L_GreenGreen4 = new Level;
|
||||
L_GreenGreen4->SetMap(GreenGreenTileset , GreenGreen4 , GreenGreenProp , 16 , 16 , 10 , 24);
|
||||
|
||||
Level * L_GreenGreen5 = new Level;
|
||||
L_GreenGreen5->SetMap(GreenGreenTileset , GreenGreen5 , GreenGreenProp , 16 , 16 , 15 , 8);
|
||||
|
||||
Level * GreenGreenWorld[] = { L_GreenGreen1 , L_GreenGreen2 , L_GreenGreen3 , L_GreenGreen4 , L_GreenGreen5};
|
||||
|
||||
Trigger * Trigger1 = new Trigger; Trigger1->CreateTrigger( 688 , 32 , 16 , 25 ); Trigger1->SetDestination( 112 , 48 , 4 , "Kirby");
|
||||
Trigger * Trigger2 = new Trigger; Trigger2->CreateTrigger( 112 , 48 , 16 , 25 ); Trigger2->SetDestination( 688 , 32 , 0 , "Kirby");
|
||||
Trigger * Trigger3 = new Trigger; Trigger3->CreateTrigger( 1200 , 16 , 16 , 25 ); Trigger3->SetDestination( 96 , 32 , 2 , "Kirby");
|
||||
Trigger * Trigger4 = new Trigger; Trigger4->CreateTrigger( 128 , 544 , 16 , 25 ); Trigger4->SetDestination( 16 , 336 , 3 , "Kirby");
|
||||
Trigger * Trigger5 = new Trigger; Trigger5->CreateTrigger( 1250 , 68 , 16 , 16 ); Trigger5->SetDestination( 8 , 16 , 1 , "Kirby"); Trigger5->GetRender()->SetRender(A_Star);
|
||||
|
||||
//**************Assignation des objects************
|
||||
|
||||
Engine Game;
|
||||
|
||||
Game.AddObject( & Kirby);
|
||||
Game.AddObject( & Champignon);
|
||||
Game.AddObject( & Piaf);
|
||||
Game.AddObject( & Ours);
|
||||
Game.AddObject( & Etoile);
|
||||
Game.SetLevel(GreenGreenWorld,5);
|
||||
|
||||
Game.AffectMap( &Niveau1);
|
||||
Game.AddObject(Trigger1,0);
|
||||
Game.AddObject(Trigger2,4);
|
||||
Game.AddObject(Trigger3,1);
|
||||
Game.AddObject(Trigger4,2);
|
||||
Game.AddObject(Trigger5,0);
|
||||
|
||||
Niveau1.AffectEngine( &Game);
|
||||
Game.SetCurrentLevel(0);
|
||||
|
||||
Script_GUI Game_GUI;
|
||||
Game.AddObject(Kirby,0);
|
||||
|
||||
Game.AffectScript(Game_GUI);
|
||||
Game.AffectGui(Game_GUI);
|
||||
|
||||
Kirby_Script->Initialisation( A_Etoile , A_Soufle , &Aspiration , &Game_GUI );
|
||||
|
||||
Game.SetFpsWish(4);
|
||||
Game.SetType(1);
|
||||
|
||||
Game.Game();
|
||||
Game.StartGame();
|
||||
|
||||
return 1;
|
||||
|
||||
|
|
|
@ -5,302 +5,305 @@
|
|||
|
||||
void Control::Start()
|
||||
{
|
||||
direction = false;
|
||||
couldown = 0;
|
||||
isground = false;
|
||||
isdo = false; // Si réalise une action True
|
||||
isaspi = false;
|
||||
isfull = 0;
|
||||
ishurt = 0;
|
||||
|
||||
Ventre = Vide;
|
||||
direction = 0;
|
||||
|
||||
GetEngine()->AddObject(OAspi);
|
||||
|
||||
GetObject()->ORigibody->UseFixeBody(16,16);
|
||||
GetObject()->AddRigidBody();
|
||||
GetObject()->GetRigidBody()->SetMass(2);
|
||||
GetObject()->GetRigidBody()->UseFixeBody(16,16);
|
||||
|
||||
GetObject()->AffectTag("Kirby");
|
||||
|
||||
oldx = GetObject()->GetTransform()->GetX();
|
||||
oldy = GetObject()->GetTransform()->GetY();
|
||||
}
|
||||
|
||||
void Control::Teleport( int x , int y , int level )
|
||||
{
|
||||
if(input_trigger(K_UP))
|
||||
{
|
||||
GetEngine()->GetCurrentLevel()->DrawLevel();
|
||||
|
||||
for(int i = 0 ; i < 190 ; i ++)
|
||||
{
|
||||
ML_line(0,i,i,0,ML_BLACK);
|
||||
ML_display_vram();
|
||||
Sleep(3);
|
||||
}
|
||||
|
||||
|
||||
GetEngine()->MoveObject(GetObject(),level);
|
||||
GetEngine()->MoveObject(OAspi,level);
|
||||
GetEngine()->SetCurrentLevel(level);
|
||||
GetObject()->GetTransform()->SetXY(x,y);
|
||||
|
||||
input_update();
|
||||
}
|
||||
}
|
||||
|
||||
void Control::Update()
|
||||
{
|
||||
if(GetEngine()->GetIdCurrentLevel() < 3)GenerateMonster();
|
||||
|
||||
if( GetObject()->ORigibody->CollisionDecor( GetX() , ( GetY() - 1 )) == 1) isground = true;
|
||||
else isground = false;
|
||||
//Check si on touche le sol ou une plateforme
|
||||
|
||||
isground = GetObject()->GetRigidBody()->CollisionDecor( GetObject()->GetTransform()->GetX() , GetObject()->GetTransform()->GetY() - 1 );
|
||||
|
||||
if(!mod(GetObject()->GetTransform()->GetY() , 16) && GetObject()->GetRigidBody()->GetBody()->velocity.y < 11 )
|
||||
{
|
||||
int cas1 = GetEngine()->GetCurrentLevel()->GetIdMap( GetObject()->GetTransform()->GetX() , GetObject()->GetTransform()->GetY() - 1 , true );
|
||||
int cas2 = GetEngine()->GetCurrentLevel()->GetIdMap( GetObject()->GetTransform()->GetX() + 16 , GetObject()->GetTransform()->GetY() - 1 , true );
|
||||
|
||||
if(cas1 == 58)cas1 = 56;
|
||||
if(cas2 == 58)cas2 = 56;
|
||||
|
||||
if(cas1 == 56 || ( mod(GetObject()->GetTransform()->GetX() , 16) && cas2 == 56) )
|
||||
{
|
||||
GetObject()->GetRigidBody()->GetBody()->velocity.y = 10;
|
||||
isground = true;
|
||||
|
||||
if(input_press(K_DOWN))
|
||||
{
|
||||
GetObject()->GetRigidBody()->GetBody()->velocity.y = - 11;
|
||||
isground = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Initialise à 0 l'action du joueur
|
||||
|
||||
isdo = false;
|
||||
|
||||
if(ishurt == 0)
|
||||
//On vérifie si le joueur n'a pas pris un dégat
|
||||
|
||||
if(ishurt)//Si oui allors on le recule
|
||||
{
|
||||
GetObject()->GetRender()->ForceSetIt(2);
|
||||
|
||||
if( Ventre == Vide)
|
||||
if(ishurt > 15)
|
||||
{
|
||||
if(input_release(K_OPTN) && isaspi == true)
|
||||
{
|
||||
OAspi->OTransforms->SetXY(-1000 , - 1000);
|
||||
isaspi = false;
|
||||
}
|
||||
|
||||
|
||||
if(input_press(K_OPTN))
|
||||
{
|
||||
|
||||
isaspi = true;
|
||||
|
||||
if(direction == false)
|
||||
{
|
||||
OAspi->OTransforms->SetXY( GetX() + 16 , GetY());
|
||||
OAspi->ORender->ReverseRender(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
OAspi->OTransforms->SetXY( GetX() - 40 , GetY());
|
||||
OAspi->ORender->ReverseRender(true);
|
||||
}
|
||||
|
||||
SetIt(3);
|
||||
isdo = true;
|
||||
}
|
||||
|
||||
|
||||
//***************************//
|
||||
if(input_press(K_DOWN))
|
||||
{
|
||||
SetIt(10);
|
||||
isdo = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
//***************************//
|
||||
if(input_trigger(K_SHIFT))
|
||||
{
|
||||
if(isground == true)
|
||||
{
|
||||
GetObject()->ORigibody->R_body.velocity.y = 25;
|
||||
|
||||
SetIt(2);
|
||||
isdo = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(input_trigger(K_UP))
|
||||
{
|
||||
Ventre = Air;
|
||||
|
||||
SetIt(9);
|
||||
isdo = true;
|
||||
}
|
||||
}
|
||||
|
||||
//***************************//
|
||||
|
||||
if(input_press(K_RIGHT) && (isground == true && GetObject()->ORender->GetIt() == 3) == false)
|
||||
{
|
||||
Move( 2 , 0 );
|
||||
direction = false;
|
||||
|
||||
if(GetObject()->ORender->GetIt() != 3)SetIt(1);
|
||||
isdo = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(input_press(K_LEFT) && (isground == true && GetObject()->ORender->GetIt() == 3) == false)
|
||||
{
|
||||
Move( -2 , 0 );
|
||||
direction = true;
|
||||
|
||||
if(GetObject()->ORender->GetIt() != 3)SetIt(1);
|
||||
isdo = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
//***************************//
|
||||
|
||||
if(isground == false && GetObject()->ORender->GetIt() != 3)SetIt(2);
|
||||
else if(isdo == false)SetIt(0);
|
||||
|
||||
GetObject()->GetRigidBody()->GetBody()->velocity.x = 40 * ((direction) - (!direction));
|
||||
GetObject()->GetRigidBody()->GetBody()->velocity.y = 45;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if(input_press(K_RIGHT))
|
||||
{
|
||||
Move( 2 , 0 );
|
||||
direction = false;
|
||||
|
||||
if(isground == true)SetIt(5);
|
||||
isdo = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(input_press(K_LEFT))
|
||||
{
|
||||
Move( -2 , 0 );
|
||||
direction = true;
|
||||
|
||||
if(isground == true)SetIt(5);
|
||||
isdo = true;
|
||||
}
|
||||
}
|
||||
|
||||
//***************************//
|
||||
|
||||
if(input_trigger(K_UP))
|
||||
{
|
||||
if(Ventre == Air)
|
||||
{
|
||||
GetObject()->ORigibody->R_body.velocity.y = 25;
|
||||
SetIt(7);
|
||||
isdo = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(input_trigger(K_SHIFT))
|
||||
{
|
||||
if(isground == true)
|
||||
{
|
||||
GetObject()->ORigibody->R_body.velocity.y = 25;
|
||||
|
||||
SetIt(6);
|
||||
isdo = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//***************************//
|
||||
|
||||
if(input_trigger(K_OPTN))
|
||||
{
|
||||
if(Ventre == Air)
|
||||
{
|
||||
Object * Buffer = new Object;
|
||||
SSoufle * ScriptSouffle = new SSoufle;
|
||||
|
||||
ScriptSouffle->time = 12;
|
||||
ScriptSouffle->Interface = Interface;
|
||||
|
||||
Buffer->AffectTag("Souffle");
|
||||
|
||||
Buffer->ORender->SetRender(RenderSouffle);
|
||||
Buffer->AffectScript(ScriptSouffle);
|
||||
|
||||
GetEngine()->AddObject(Buffer);
|
||||
|
||||
if(direction == false)
|
||||
{
|
||||
Buffer->OTransforms->SetXY( GetX() + 16 , GetY() + 8 );
|
||||
Buffer->ORender->ReverseRender(false);
|
||||
ScriptSouffle->direction = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Buffer->OTransforms->SetXY( GetX(), GetY() + 8 );
|
||||
Buffer->ORender->ReverseRender(true);
|
||||
ScriptSouffle->direction = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(Ventre == Plein)
|
||||
{
|
||||
Object * Buffer = new Object;
|
||||
SStar * ScriptStar = new SStar;
|
||||
|
||||
ScriptStar->Interface = Interface;
|
||||
|
||||
Buffer->ORender->SetRender(RenderEtoile);
|
||||
Buffer->AffectScript(ScriptStar);
|
||||
Buffer->ORigibody = new Rigibody(Buffer);
|
||||
|
||||
GetEngine()->AddObject(Buffer);
|
||||
|
||||
if(direction == false)
|
||||
{
|
||||
Buffer->OTransforms->SetXY( GetX() + 16 , GetY() + 8 );
|
||||
Buffer->ORender->ReverseRender(false);
|
||||
ScriptStar->direction = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Buffer->OTransforms->SetXY( GetX(), GetY() + 8 );
|
||||
Buffer->ORender->ReverseRender(true);
|
||||
ScriptStar->direction = true;
|
||||
}
|
||||
}
|
||||
|
||||
Ventre = Vide;
|
||||
|
||||
SetIt(8);
|
||||
isdo = true;
|
||||
}
|
||||
//***************************//
|
||||
|
||||
if(isground == false)
|
||||
{
|
||||
if(GetObject()->ORender->GetIt() != 6 && GetObject()->ORender->GetIt() != 7)SetIt(7);
|
||||
}
|
||||
else if(isdo == false )SetIt(4);
|
||||
|
||||
GetObject()->GetRigidBody()->GetBody()->velocity.x = 0;
|
||||
GetObject()->GetRigidBody()->GetBody()->velocity.y = 0;
|
||||
}
|
||||
ishurt --;
|
||||
}
|
||||
else //Sinon le joueur peut le controller
|
||||
{
|
||||
Object * Ennemi = GetObject()->GetObjectCollisionTag("Ennemis");
|
||||
|
||||
//Test de sui on touche un ennemi
|
||||
|
||||
GetObject()->ORender->ReverseRender(direction);
|
||||
|
||||
Object * Ennemi = GetObject()->CollisionTagO("Ennemis");
|
||||
|
||||
if(Ennemi != NULL )
|
||||
if(Ennemi)
|
||||
{
|
||||
GetEngine()->DelObject(Ennemi);
|
||||
|
||||
if(isaspi == false)
|
||||
if(!isaspi)
|
||||
{
|
||||
Ventre = Vide;
|
||||
|
||||
GetEngine()->DelObject(Ennemi);
|
||||
isfull = 0;
|
||||
ishurt = 20;
|
||||
|
||||
Interface->AddScore(400);
|
||||
Interface->DelVie(1);
|
||||
|
||||
ishurt = 20;
|
||||
}
|
||||
else
|
||||
{
|
||||
Ventre = Plein;
|
||||
GetEngine()->DelObject(Ennemi);
|
||||
|
||||
isfull = 2;
|
||||
Interface->AddScore(200);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
GetObject()->ORigibody->R_body.velocity.x = -20;
|
||||
GetObject()->ORigibody->R_body.velocity.y = 10;
|
||||
ishurt --;
|
||||
}
|
||||
//Test de si kirby aspire
|
||||
|
||||
if(input_press(K_OPTN) && !isfull)isaspi = true;
|
||||
if(input_release(K_OPTN) && !isfull || isfull)isaspi = false;
|
||||
|
||||
if(isaspi)
|
||||
{
|
||||
OAspi->Enable();
|
||||
|
||||
if(direction)
|
||||
{
|
||||
OAspi->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() - 40 , GetObject()->GetTransform()->GetY());
|
||||
OAspi->GetRender()->ReverseRender(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
OAspi->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() + 16 , GetObject()->GetTransform()->GetY());
|
||||
OAspi->GetRender()->ReverseRender(false);
|
||||
}
|
||||
|
||||
GetObject()->GetRender()->SetIt(3);
|
||||
|
||||
isdo = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
OAspi->Disable();
|
||||
|
||||
if(input_trigger(K_OPTN))
|
||||
{
|
||||
GetObject()->GetRender()->SetIt(8);
|
||||
|
||||
|
||||
if( GetY() < 2)
|
||||
Object * Buffer = new Object;
|
||||
SSoufle * ScriptSouffle = new SSoufle;
|
||||
SStar * ScriptStar = new SStar;
|
||||
|
||||
switch(isfull)
|
||||
{
|
||||
case 1:
|
||||
delete ScriptStar;
|
||||
ScriptSouffle->time = 12;
|
||||
ScriptSouffle->Interface = Interface;
|
||||
Buffer->GetRender()->SetRender(RenderSouffle);
|
||||
Buffer->AffectScript(ScriptSouffle);
|
||||
|
||||
if(!direction)ScriptSouffle->direction = false;
|
||||
else ScriptSouffle->direction = true;
|
||||
break;
|
||||
case 2:
|
||||
delete ScriptSouffle;
|
||||
ScriptStar->Interface = Interface;
|
||||
Buffer->GetRender()->SetRender(RenderEtoile);
|
||||
Buffer->AffectScript(ScriptStar);
|
||||
Buffer->AddRigidBody();
|
||||
|
||||
if(!direction)ScriptStar->direction = false;
|
||||
else ScriptStar->direction = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
GetEngine()->AddObject(Buffer);
|
||||
|
||||
if(!direction)
|
||||
{
|
||||
Buffer->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() + 16 , GetObject()->GetTransform()->GetY() + 8 );
|
||||
Buffer->GetRender()->ReverseRender(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
Buffer->GetTransform()->SetXY( GetObject()->GetTransform()->GetX(), GetObject()->GetTransform()->GetY() + 8 );
|
||||
Buffer->GetRender()->ReverseRender(true);
|
||||
}
|
||||
|
||||
isfull = 0;
|
||||
isdo = true;
|
||||
}
|
||||
|
||||
//Test des directions
|
||||
|
||||
if(input_press(K_RIGHT))
|
||||
{
|
||||
GetObject()->GetRigidBody()->Move( 2 , 0 );
|
||||
direction = false;
|
||||
|
||||
if(isfull)
|
||||
{
|
||||
if(isground)GetObject()->GetRender()->SetIt(5);
|
||||
}
|
||||
else
|
||||
GetObject()->GetRender()->SetIt(1);
|
||||
|
||||
isdo = true;
|
||||
}
|
||||
else if(input_press(K_LEFT))
|
||||
{
|
||||
GetObject()->GetRigidBody()->Move( -2 , 0 );
|
||||
direction = true;
|
||||
|
||||
if(isfull)
|
||||
{
|
||||
if(isground)GetObject()->GetRender()->SetIt(5);
|
||||
}
|
||||
else
|
||||
GetObject()->GetRender()->SetIt(1);
|
||||
|
||||
isdo = true;
|
||||
}
|
||||
|
||||
//Test du saut
|
||||
|
||||
if(input_trigger(K_SHIFT) && isground)
|
||||
{
|
||||
GetObject()->GetRigidBody()->GetBody()->velocity.y = 42;
|
||||
|
||||
if(isfull)
|
||||
GetObject()->GetRender()->SetIt(6);
|
||||
else
|
||||
GetObject()->GetRender()->SetIt(2);
|
||||
|
||||
isdo = true;
|
||||
}
|
||||
|
||||
//Test de l'accroupisement
|
||||
|
||||
if(input_press(K_DOWN) && !isdo && !isfull)
|
||||
{
|
||||
GetObject()->GetRender()->SetIt(10);
|
||||
|
||||
isdo = true;
|
||||
}
|
||||
|
||||
if(isfull)
|
||||
{
|
||||
if(!isground)
|
||||
{
|
||||
if(GetObject()->GetRender()->GetIt() != 6 )GetObject()->GetRender()->SetIt(7);
|
||||
}
|
||||
else if(!isdo)GetObject()->GetRender()->SetIt(4);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!isground)GetObject()->GetRender()->SetIt(2);
|
||||
else if(!isdo)GetObject()->GetRender()->SetIt(0);
|
||||
}
|
||||
|
||||
if(input_trigger(K_UP))
|
||||
{
|
||||
|
||||
if(isfull == 1)
|
||||
{
|
||||
GetObject()->GetRigidBody()->GetBody()->velocity.y = 35;
|
||||
GetObject()->GetRender()->SetIt(7);
|
||||
}
|
||||
|
||||
if(!isfull)
|
||||
{
|
||||
isfull = 1;
|
||||
GetObject()->GetRender()->SetIt(9);
|
||||
}
|
||||
isdo = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
GetObject()->GetRender()->ReverseRender(direction);
|
||||
|
||||
if( GetObject()->GetTransform()->GetY() < 3)
|
||||
{
|
||||
Ventre = Vide;
|
||||
isfull = 0;
|
||||
Interface->DelVie(6);
|
||||
|
||||
direction = false;
|
||||
}
|
||||
|
||||
if(GetObject()->CollisionTag("Etoile"))
|
||||
{
|
||||
ML_clear_vram();
|
||||
|
||||
PrintMini(10,30,"Bravo vous venez de sauvez" , 0);
|
||||
PrintMini(40,38,"la Terre XD" , 0);
|
||||
|
||||
ML_display_vram();
|
||||
|
||||
Sleep(2500);
|
||||
|
||||
GetEngine()->StopGame();
|
||||
}
|
||||
|
||||
|
||||
GetEngine()->MiddleScreen( GetX() , (GetY() + 2));
|
||||
GetEngine()->MiddleScreen( GetObject()->GetTransform()->GetX() + 12, (GetObject()->GetTransform()->GetY() + 16));
|
||||
}
|
||||
|
||||
void Control::Initialisation(Animation E, Animation S , Object * A , Script_GUI * G)
|
||||
|
@ -313,22 +316,43 @@ void Control::Initialisation(Animation E, Animation S , Object * A , Script_GUI
|
|||
Interface = G;
|
||||
}
|
||||
|
||||
void Control::GenerateMonster()
|
||||
{
|
||||
if(abs(oldx - GetObject()->GetTransform()->GetX()) > 15 || abs(oldy - GetObject()->GetTransform()->GetY()) > 15)
|
||||
{
|
||||
|
||||
if(!rand_int(8))
|
||||
{
|
||||
Object * Buffer = new Object;
|
||||
Buffer->GetTransform()->SetXY(16,32);
|
||||
Buffer->AddRigidBody();
|
||||
Buffer->GetRender()->CopieRender(RenderEtoile);
|
||||
|
||||
Buffer->AffectTag("Ennemis");
|
||||
GetEngine()->AddObject(Buffer);
|
||||
}
|
||||
|
||||
oldx = GetObject()->GetTransform()->GetX();
|
||||
oldy = GetObject()->GetTransform()->GetY();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SAspi::Update()
|
||||
{
|
||||
Object * Buffer = NULL;
|
||||
|
||||
Buffer = GetObject()->CollisionTagO("Ennemis");
|
||||
Buffer = GetObject()->GetObjectCollisionTag("Ennemis");
|
||||
|
||||
if( Buffer != NULL)
|
||||
{
|
||||
if(GetObject()->ORender->GetReverse()== false)
|
||||
if(GetObject()->GetRender()->GetReverse()== false)
|
||||
{
|
||||
Buffer->ORigibody->Move(-2,0);
|
||||
Buffer->GetRigidBody()->Move(-2,0);
|
||||
}
|
||||
else
|
||||
{
|
||||
Buffer->ORigibody->Move(2,0);
|
||||
Buffer->GetRigidBody()->Move(2,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -337,13 +361,13 @@ void SSoufle::Update()
|
|||
{
|
||||
if(time > 0)
|
||||
{
|
||||
if(direction == true)SetXY( GetX() - 3 , GetY() );
|
||||
else SetXY( GetX() + 3 , GetY() );
|
||||
if(direction == true)GetObject()->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() - 3 , GetObject()->GetTransform()->GetY() );
|
||||
else GetObject()->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() + 3 , GetObject()->GetTransform()->GetY() );
|
||||
}
|
||||
|
||||
time--;
|
||||
|
||||
Object * Buffer = GetObject()->CollisionTagO("Ennemis");
|
||||
Object * Buffer = GetObject()->GetObjectCollisionTag("Ennemis");
|
||||
|
||||
if(Buffer != NULL)
|
||||
{
|
||||
|
@ -366,22 +390,24 @@ void SStar::Update()
|
|||
|
||||
if(direction == true)
|
||||
{
|
||||
SetXY( GetX() - 3 , GetY() );
|
||||
if(GetObject()->ORigibody->CollisionDecor(GetX() - 3 , GetY()))
|
||||
GetObject()->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() - 3 , GetObject()->GetTransform()->GetY() );
|
||||
if(GetObject()->GetRigidBody()->CollisionDecor(GetObject()->GetTransform()->GetX() - 3 , GetObject()->GetTransform()->GetY()))
|
||||
{
|
||||
GetEngine()->DelObject(GetObject());return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SetXY( GetX() + 3 , GetY() );
|
||||
if(GetObject()->ORigibody->CollisionDecor(GetX() + 3 , GetY()))
|
||||
GetObject()->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() + 3 , GetObject()->GetTransform()->GetY() );
|
||||
if(GetObject()->GetRigidBody()->CollisionDecor(GetObject()->GetTransform()->GetX() + 3 , GetObject()->GetTransform()->GetY()))
|
||||
if(GetObject()->GetRigidBody()->CollisionDecor(GetObject()->GetTransform()->GetX() + 3 , GetObject()->GetTransform()->GetY()))
|
||||
if(GetObject()->GetRigidBody()->CollisionDecor(GetObject()->GetTransform()->GetX() + 3 , GetObject()->GetTransform()->GetY()))
|
||||
{
|
||||
GetEngine()->DelObject(GetObject());return;
|
||||
}
|
||||
}
|
||||
|
||||
Object * Buffer = GetObject()->CollisionTagO("Ennemis");
|
||||
Object * Buffer = GetObject()->GetObjectCollisionTag("Ennemis");
|
||||
|
||||
if(Buffer != NULL)
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef SCRIPTCONTROL
|
||||
#define SCRIPTCONTROL
|
||||
|
||||
#include "..\C-Engine\CHeader.hpp"
|
||||
#include "..\C-Engine\CEngine.hpp"
|
||||
#include "GUI.hpp"
|
||||
|
||||
//Kirby script
|
||||
|
@ -43,16 +43,21 @@ class Control: public Script
|
|||
void Start();
|
||||
void Update();
|
||||
void Initialisation(Animation E, Animation S , Object * A , Script_GUI * G);
|
||||
void Teleport( int x , int y , int level );
|
||||
void GenerateMonster();
|
||||
|
||||
private:
|
||||
|
||||
bool isground; // Si Touche le sol True
|
||||
bool isdo; // Si réalise une action True
|
||||
bool direction; // Direction du personnage True = Gauche
|
||||
bool isaspi;
|
||||
int isfull;
|
||||
int ishurt;
|
||||
int couldown;
|
||||
Contenu Ventre;
|
||||
|
||||
bool direction; // Direction du personnage True = Gauche
|
||||
|
||||
int oldx;
|
||||
int oldy;
|
||||
|
||||
Animation RenderSouffle;
|
||||
Animation RenderEtoile;
|
||||
|
|
129
Sprite.hpp
129
Sprite.hpp
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue