Posted on ven. 06 avril 2018

Shin Sekai

Je vais faire un tuto sur les mécaniques sur mon jeu Shin Sekai

Pour mon obstacle ou on est obliger d'utiliser le rouler boulet pour pouvoire passer

game

J'ai d'abord crée sur mon tile map mon obstacle, une partie sur un layer et l'autre partie sur un autre qui permet de voir le joueur passer devant une partie de l'obstacle et derrière l'autre et j'ai rajouter un arcadeBody pour faire une hit box sur l'obstacle et après tous ce joue dans le scripte

Sup.ArcadePhysics2D.collides(this.actor.arcadeBody2D, [Sup.getActor("Maps").arcadeBody2D, Sup.getActor("obstacle").arcadeBody2D])

let roule = false;
let position = this.actor.getLocalPosition();

    if (Sup.Input.isKeyDown("S")){
     roule = true;
     position = this.actor.getLocalPosition();
     this.actor.spriteRenderer.setAnimation("glisse");
     //on change la hit box quand le personnage roule
     this.actor.arcadeBody2D.setSize(0.6, 0.42);
     this.actor.arcadeBody2D.setOffset({ x: 0, y: -0.13 });
     this.actor.arcadeBody2D.warpPosition(position);

     }
         else{
            //on remet la hit box si le personnage ne roule pas
            this.actor.arcadeBody2D.setSize(0.6, 0.6);
            this.actor.arcadeBody2D.setOffset({ x: 0, y: -0.01 });
            this.actor.arcadeBody2D.warpPosition(position);

Donc sur la première ligne on détecte les collisions, j'ai appeler les acteurs "Maps" et "obstacle", le premier acteur permet de détecter la collision avec la Maps et le deuxième détecte la collision avec l'obstacle puis j'ai initialiser sur une touche qui permettra de faire le rouler bouler en mettant une animation que j'ai appeler glisse et j'ai changer la hit box pour qu'elle s'adapte a la forme de l'animation puis dans le else je remet la hit box a l'origine après que la personne n'appuye plus sur la touche

Sur la ligne 27 je redimentionne la longueur et la largeur de la hit box et sur la ligne du dessous c'est l'emplacement de la hit box

Très important quand vous mettez la hit box sur l'obstacle bien décocher la case move sur l'acteur obstacle dans l'arcade body

game

Et mettre le scripte dans l'acteur player

Sylvain FOULON

Commentaires


Links