Problème de saut en javascript

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
ludo57440
Messages : 2
Enregistré le : 29 avr. 2018, 16:41

Problème de saut en javascript

Message par ludo57440 » 29 avr. 2018, 16:43

Bonjour, j'ai un problème pour le jeu que je souhaite créer, j'ai créé un personnage que j'ai réussi à animer mais en ajoutant let bonhomme pour permettre d'intégrer les différentes fonctions dans un "objet", le personnage disparait et je ne peux pas conséquent pas faire fonctionner mon jeu.

Pouvez-vous m'aider s'il vous plait ?

Merci d'avance !

Code : Tout sélectionner

<html> 
<head> 
<meta charset= "utf=8"/> 
<title> BODYJUMPER </title> 
</head> 
<body style="margin: 0; overflow: hidden"> 



<canvas id="bonhomme"></canvas> 

<script> 

canvas = document.getElementById("bonhomme"), 
context = canvas.getContext("2d"); 


bonhomme1 = { 
jumpHeight = 100 
r = 1000, 
step = 0; 


width = window.innerWidth, 
height = window.innerHeight; 

canvas.width = width; 
canvas.height = height; 
context.imageSmoothingEnabled= false; 

position: { 
x: width/4, 
y: height-200, 

}, 

var sprites = new Image(); 
sprites.onload = animate; 
sprites.src = "spritesbj.png"; // stickman à 2 étapes : 1e sprite pied en avant (0) / 2e sprite pied en arrière (1) => effet de course 


function animate() { 
draw(); 
update(); 
requestAnimationFrame(animate); // on appelle périodiquement la fonction animate 
} 


function draw() { 
context.clearRect(0, 0, width, height); 
drawBonhomme(x, height, r, Math.floor(step)); 
} 

function drawBonhomme() { 
var s = r/3000; 
context.drawImage(sprites, 306*step, 0, 306, 578, x-120*s, y-600*s, 306*s, 578*s); // dimensions de l'images = 612 x 578 
// s est le facteur de rétrecissement 
// j'ai utilisé r car l'animation ne se lancait pas si je marquais s = 1/3 
} 

function update() { 
step += 0.09; 
if (step >= 2) { // animation à 2 étapes donc step doit être inférieur à 2 ( step = 0 -> 1e sprite / step = 1 -> 2e sprite ) 
step -= 2; // quand step = 2 on la décrémente de 2 pour recommencer l'animation 
} 
} 

jumpEventActive: false, 
jumpHeight=100; 
function jump(){ 
if (bonhomme1.position.y < bonhomme1.jumpHeight) { 
bonhomme1.position.y++; 
else 
bonhomme1.jumpEventActive = false; 
} 
} 

let jumpEvent = e => { 
if (e.keyCode == 32 && bonhomme1.position.y == 0) { // keyCode 32 is spacebar 
bonhomme1.jumpEventActive = true; 
} 
} 

if (bonhomme1.jumpEventActive) { 
bonhomme1.jump(); 
} 

// Gravity 
if (bonhomme1.position.y > 0 && bonhomme1.jumpEventActive == false) { 
bonhomme1.position.y--; 
} 
};

Répondre