You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
4.3 KiB

//==================================================================================================
// ANIMATION AVEC TYPESCRIPT Jeu.ts
//==================================================================================================
// Classe J e u //---------------------------------------------------------------------------------
class Jeu extends Scene {
//----------------------------------------------------------------------------------------Attributs
/* Declarer ici les attributs de la scene. */
public joueur_ : Joueur;
public start_ : Start;
public regles_ : Regles;
public shop_ : Shop;
public objet_ : Objet;
public intervalFruit: number;
public intervalPoison: number;
public intervalPlante: number;
public intervalCollision: number;
private compteurScore : number;
private compteurMonnaie : number;
public score_ : Sprite;
public monnaie_ : Sprite;
private zoneDeJeu_ : Sprite;
//-------------------------------------------------------------------------------------Constructeur
public constructor(element : HTMLElement) {
super(element,false);
/* Ecrire ici le code qui initialise la scene. */
//Création de la zone de jeu
this.zoneDeJeu_= new Sprite (document.getElementById("jeu"));
this.zoneDeJeu_.setWidth(this.getWidth());
this.zoneDeJeu_.setHeight(this.getHeight());
//Gestion des stats
this.score_ = new Sprite (document.getElementById("score"));
this.compteurScore = 0;
this.monnaie_ = new Sprite (document.getElementById("monnaie"));
this.compteurMonnaie = 0;
}
//--------------------------------------------------------------------------------------------start
public override start() {
/* Ecrire ici le code qui demarre la scene. */
this.start_ = new Start (document.getElementById("starting"), this);
}
public partieCommencer() {
this.creerJoueur();
this.afficherRegles();
this.afficherShop();
this.creerObject();
}
public creerJoueur() {
this.joueur_ = new Joueur (document.createElement("img"),this);
this.joueur_.setImage("img/joe.png",60,80);
this.joueur_.setX(this.zoneDeJeu_.getWidth()/2 - this.joueur_.getWidth()/2);
this.joueur_.setY(this.zoneDeJeu_.getHeight()/2 - this.joueur_.getHeight()/2);
this.appendChild(this.joueur_);
this.joueur_.animer();
}
public afficherRegles() {
this.regles_ = new Regles(document.getElementById("regles"), this);
}
public afficherShop() {
this.shop_ = new Shop(document.getElementById("Shop"), this);
}
//Création des objets
public creerObject() {
this.objet_ = new Objet (document.createElement("img"),this);
this.intervalFruit = setInterval(() => {this.objet_.creerFruit();}, 3000);
this.intervalPoison = setInterval(() => {this.objet_.creerPoison();}, 3000);
this.intervalPlante = setInterval(() => {this.objet_.creerPlante();}, 3000);
this.intervalCollision = setInterval(() => {this.joueur_.collisionObjet();}, 1000 / 144);
}
public figerObjet() {
clearInterval(this.intervalFruit);
clearInterval(this.intervalPoison);
clearInterval(this.intervalPlante);
clearInterval(this.intervalCollision);
}
public augmenterScore() {
this.compteurScore += 100;
this.score_.getElement().textContent = "" + this.compteurScore;
console.log(this.compteurScore);
}
public reduireScore() {
this.compteurScore -= 200;
this.score_.getElement().textContent = "" + this.compteurScore;
console.log(this.compteurScore);
}
public augmenterMonnaie() {
this.compteurMonnaie +=25;
this.monnaie_.getElement().textContent = "" + this.compteurMonnaie;
console.log(this.compteurMonnaie);
}
//--------------------------------------------------------------------------------------------pause
public override pause() {
/* Ecrire ici le code qui met la scene en pause. */
}
//------------------------------------------------------------------------------------------unpause
public override unpause() {
/* Ecrire ici le code qui sort la scene de la pause. */
}
//--------------------------------------------------------------------------------------------clean
public override clean() {
/* Ecrire ici le code qui nettoie la scene en vue d'un redemarrage. */
}
}
// Fin //-------------------------------------------------------------------------------------------