Défilement d'une image de la gauche vers la droite et inversement auto
Résolu
BabaProg
Messages postés
71
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour j'ai une image sur mon site et je voudrais la faire se déplacer de la gauche(elle s'arrête à une coordonnée par exemple posX = 900) puis elle repart vers la droite(elle s'arrête à une coordonnée par exemple posX = 400) et je voudrais que cela ce fasse automatiquement
Je vous présente mon code en espèrent que vous pourrez m'aider :
le alien.posX c'est la position sur l'axe X de mon image
Je vous présente mon code en espèrent que vous pourrez m'aider :
/*alien viens de ma classe Alien si vous voulez le code entier dites le moi*/ alien.posX = 400 let min = alien.posX, max = 900 //true = vers la droite //false = vers la gauche let bool = Boolean(true) let i = 1 while (i <= 4) { if (bool == true) { //bool = true if (alien.posX >= max) { console.log(bool) alien.posX += 5 bool == false i++ } else { alien.posX -= 5 if (alien.posX <= min) { bool == true i++ } } } }
le alien.posX c'est la position sur l'axe X de mon image
A voir également:
- Défilement d'une image de la gauche vers la droite et inversement auto
- Les textes ne doivent pas être en retrait à droite et à gauche - Guide
- Windows 11 barre des taches a gauche - Guide
- Barre de défilement - Guide
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : chaque paragraphe doit être espacé de 0,42 cm ou 12 pt du paragraphe qui suit les textes ne doivent pas être en retrait à droite et à gauche après ces modifications, sur quelle page se trouve le titre « la cheminée » dans le chapitre « informations diverses » ? ✓ - Forum Word
- Arrêt défilement excel ✓ - Forum Excel
4 réponses
Bonjour
var alien = { posX:400}; var max = 600; var min = 400; var nb = 4; // nombre d'aller-retours droite(alien); function droite(obj){ console.log("DROITE",nb); nb--; if(nb == 0 ){ return false; } while (obj.posX <=max){ obj.posX +=5; console.log(obj.posX); } gauche(obj); } function gauche(obj){ console.log("GAUCHE",nb); nb--; if(nb == 0 ){ return false; } while (obj.posX >=min){ obj.posX -=5; console.log(obj.posX); } droite(obj); }
Bonjour il y a un petit problème mon image ne bouge pas (il n'y a pas d'erreur dans la console)
la console :
Voici le code complet :
la console :
DROITE 4
script.js:111 405
script.js:111 410
script.js:111 415
script.js:111 420
script.js:111 425
script.js:111 430
script.js:111 435
script.js:111 440
script.js:111 445
script.js:111 450
script.js:111 455
script.js:111 460
script.js:111 465
script.js:111 470
script.js:111 475
script.js:111 480
script.js:111 485
script.js:111 490
script.js:111 495
script.js:111 500
script.js:111 505
script.js:111 510
script.js:111 515
script.js:111 520
script.js:111 525
script.js:111 530
script.js:111 535
script.js:111 540
script.js:111 545
script.js:111 550
script.js:111 555
script.js:111 560
script.js:111 565
script.js:111 570
script.js:111 575
script.js:111 580
script.js:111 585
script.js:111 590
script.js:111 595
script.js:111 600
script.js:111 605
script.js:117 GAUCHE 3
script.js:124 600
script.js:124 595
script.js:124 590
script.js:124 585
script.js:124 580
script.js:124 575
script.js:124 570
script.js:124 565
script.js:124 560
script.js:124 555
script.js:124 550
script.js:124 545
script.js:124 540
script.js:124 535
script.js:124 530
script.js:124 525
script.js:124 520
script.js:124 515
script.js:124 510
script.js:124 505
script.js:124 500
script.js:124 495
script.js:124 490
script.js:124 485
script.js:124 480
script.js:124 475
script.js:124 470
script.js:124 465
script.js:124 460
script.js:124 455
script.js:124 450
script.js:124 445
script.js:124 440
script.js:124 435
script.js:124 430
script.js:124 425
script.js:124 420
script.js:124 415
script.js:124 410
script.js:124 405
script.js:124 400
script.js:124 395
script.js:104 DROITE 2
script.js:111 400
script.js:111 405
script.js:111 410
script.js:111 415
script.js:111 420
script.js:111 425
script.js:111 430
script.js:111 435
script.js:111 440
script.js:111 445
script.js:111 450
script.js:111 455
script.js:111 460
script.js:111 465
script.js:111 470
script.js:111 475
script.js:111 480
script.js:111 485
script.js:111 490
script.js:111 495
script.js:111 500
script.js:111 505
script.js:111 510
script.js:111 515
script.js:111 520
script.js:111 525
script.js:111 530
script.js:111 535
script.js:111 540
script.js:111 545
script.js:111 550
script.js:111 555
script.js:111 560
script.js:111 565
script.js:111 570
script.js:111 575
script.js:111 580
script.js:111 585
script.js:111 590
script.js:111 595
script.js:111 600
script.js:111 605
script.js:117 GAUCHE 1
Voici le code complet :
let canvas = document.getElementById('canvas')
let scene = canvas.getContext('2d')
let planche = new Image()
planche.src = 'alien.png'
let backgroundImage = new Image()
backgroundImage.src = 'background.jpg'
function dessinerPalteforme(x, y, dx, dy) {
scene.beginPath()
//scene.drawImage(img,x,y)
scene.fillRect(x, y, dx, dy)
scene.closePath()
}
//dessinerPalteforme(100, 200, 90, 30)
//dessinerPalteforme(350, 300, 90, 30)
//dessinerPalteforme(650, 200, 90, 30)
//dessinerPalteforme(850, 100, 90, 30)
//dessinerPalteforme(950, 350, 90, 30)
class Alien {
constructor(scene, backgroundImage, planche, nbLignePlanche, nbColPlanche, qui) {
this.scene = scene
this.nbLignePlanche = nbLignePlanche
this.nbColPlanche = nbColPlanche
this.height = planche.height / nbLignePlanche
this.width = planche.width / nbColPlanche
this.posX = null
this.posY = null
this.coef = 1.2
this.qui = qui
this.vitesse = 5
this.frame = []
this.scene.canvas.setAttribute('background-position-x', '0px')
this.widthScene = backgroundImage.width
}
dessiner() {
scene.clearRect(0, 0, scene.canvas.width, scene.canvas.height)
scene.drawImage(planche, this.width * this.frame[0], this.height * this.frame[1], this.width, this.height, this.posX, this.posY, this.width * this.coef, this.height * this.coef)
}
}
planche.addEventListener('load', function () {
let alien = new Alien(scene, backgroundImage, planche, 1, 1, [[0, 0], 35, 22])
alien.posX = 400
alien.posY = 382
alien.frame = [0, 0]
alien.dessiner()
alien = {
posX: 400
};
var max = 600;
var min = 400;
var nb = 4; // nombre d'aller-retours
droite(alien);
function droite(obj) {
console.log("DROITE", nb);
nb--;
if (nb == 0) {
return false;
}
while (obj.posX <= max) {
obj.posX += 5;
console.log(obj.posX);
}
gauche(obj);
}
function gauche(obj) {
console.log("GAUCHE", nb);
nb--;
if (nb == 0) {
return false;
}
while (obj.posX >= min) {
obj.posX -= 5;
console.log(obj.posX);
}
droite(obj);
}
})
Pour commencer, merci d'utiliser correctement les balises de code.
Il faut y indiquer le LANGAGE afin d'avoir la coloration syntaxique et l'indentation
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite... le code que je t'ai donné est un exemple.... qu'il te faut adapter à tes besoins.
Typiquement.. on ne savait pas, jusqu'à maintenant, que ton "alien" était dans un canvas....
Il faut donc, à chaque modification de ton posX le redessiner....
Je te laisse essayer et revenir vers nous avec ton code modifié si tu rencontres encode des soucis.
Il faut y indiquer le LANGAGE afin d'avoir la coloration syntaxique et l'indentation
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite... le code que je t'ai donné est un exemple.... qu'il te faut adapter à tes besoins.
Typiquement.. on ne savait pas, jusqu'à maintenant, que ton "alien" était dans un canvas....
Il faut donc, à chaque modification de ton posX le redessiner....
Je te laisse essayer et revenir vers nous avec ton code modifié si tu rencontres encode des soucis.
J'ai appellé ma fonction qui permet de dessiner mon "alien" à chaque fois que je modifie ça position en X mais dans la console il y une erreur comme quoi obj.dessiner() n'est pas une fonction.
alien = { posX: 400 } let max = 600 let min = 400 let nb = 4 // nombre d'aller-retours droite(alien) function droite(obj) { console.log("DROITE", nb) nb-- if (nb == 0) { return false } while (obj.posX <= max) { obj.dessiner() obj.posX += 5 console.log(obj.posX) } gauche(obj) } function gauche(obj) { console.log("GAUCHE", nb) nb-- if (nb == 0) { return false } while (obj.posX >= min) { obj.dessiner() obj.posX -= 5 console.log(obj.posX) } droite(obj) }
let canvas = document.getElementById('canvas') let scene = canvas.getContext('2d'); let planche = new Image() planche.src = 'alien.png' let backgroundImage = new Image() backgroundImage.src = 'background.jpg' function dessinerPalteforme(x, y, dx, dy) { scene.beginPath(); //scene.drawImage(img,x,y) scene.fillRect(x, y, dx, dy); scene.closePath(); } //dessinerPalteforme(100, 200, 90, 30) //dessinerPalteforme(350, 300, 90, 30) //dessinerPalteforme(650, 200, 90, 30) //dessinerPalteforme(850, 100, 90, 30) //dessinerPalteforme(950, 350, 90, 30) class Alien { constructor(scene, backgroundImage, planche, nbLignePlanche, nbColPlanche, qui) { this.scene = scene; this.nbLignePlanche = nbLignePlanche; this.nbColPlanche = nbColPlanche; this.height = planche.height / nbLignePlanche; this.width = planche.width / nbColPlanche; this.posX = null; this.posY = null; this.coef = 1.2; this.qui = qui; this.vitesse = 5; this.frame = []; this.scene.canvas.setAttribute('background-position-x', '0px'); this.widthScene = backgroundImage.width; } dessiner() { scene.clearRect(0, 0, scene.canvas.width, scene.canvas.height); scene.drawImage(planche, this.width * this.frame[0], this.height * this.frame[1], this.width, this.height, this.posX, this.posY, this.width * this.coef, this.height * this.coef); } } planche.addEventListener('load', function () { let alien = new Alien(scene, backgroundImage, planche, 1, 1, [[0, 0], 35, 22]); alien.posX = 400; alien.posY = 382; alien.frame = [0, 0]; alien.dessiner(); var timer = 100; var max = 500; var min = 400; var nb = 4; // nombre d'aller-retours droite(); function droite() { console.log("DROITE", nb); nb--; if (nb == 0) { return false; } mooveD(); } function gauche() { console.log("GAUCHE", nb); nb--; if (nb == 0) { return false; } mooveG(); } function mooveG(){ alien.posX -= 5; console.log('mooveG',alien.posX); alien.dessiner(); setTimeout(function(){ if(alien.posX >= min){ mooveG(); }else{ droite(); } },timer); } function mooveD(){ alien.posX += 5; console.log('mooveD',alien.posX); alien.dessiner(); setTimeout(function(){ if(alien.posX <= max){ mooveD(); }else{ gauche(); } },timer); } });