Trampolines

pour Saul

Les objets rebondissants peuvent être l'occasion de confronter le joueur à de nouveaux challenges sollicitant sa précision et son sens du timing

Charger une image

load.js
const PNG = [ "mushroom" , "grass" , "bean" , ]

Charger un effet sonore

load.js
const MP3 = [ "boing" , "wooosh" , "off" , ]

Créer un composant

component.js
// Ajoutes ici tes propres composants
function spring( force = 1200 ) { // fait rebondir les objets qui lui tombent dessus const spring_anim_delay = 1 const spring_anim_amp = 0.3 return{ id : "spring" , require : [ "scale" ] , add(){ this.on( "collide" , (obj, col) => this.checkSpringColission(obj, col) ) }, checkSpringColission(obj, col){ if ( col.isTop() && obj.is("body")) { obj.jump(force) play("boing") this.springAnim() } }, springAnim(){ tween( spring_anim_amp, 0, spring_anim_delay, (p) => this.scale.y = 1-p , easings.easeOutBounce ) }, } }

Déclarer un symbole

level.js
const levelConf = { // paramètres du niveau tileWidth: 64, tileHeight: 64, tiles: { // listes des objet à placer dans les niveaux
"C": () => [ // champignon sprite("mushroom"), area(), anchor("bot"), body({ isStatic: true }), scale(), spring(), ],
"#": () => [ // player sprite("bean"), platformerController(), health(1), character(), area(), anchor("bot"), body(), ], "=": () => [ // bloc sprite("grass"), area(), body({ isStatic: true }), anchor("bot"), offscreen({ hide: true }), ], }, }

Placer les objets

level.js
const LEVELS = [ // liste des niveaux du jeu [ " === === === " , " " , " " , " B B " , " " , " === " , " " , " " , " # B B " , "===== B " , ], ];

Modifier la force du rebond

Le premier paramètre du composant spring permet de déterminer la puissance du rebond. Plus le nombre est élevé, plus le saut sera puissant.

spring( 1200 )