Défilement d'une image de la gauche vers la droite et inversement auto
Résolu/Fermé
BabaProg
Messages postés
71
Date d'inscription
jeudi 25 octobre 2018
Statut
Membre
Dernière intervention
2 avril 2022
-
Modifié le 1 mai 2020 à 00:12
jordane45 Messages postés 38380 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 janvier 2025 - 1 mai 2020 à 18:01
jordane45 Messages postés 38380 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 janvier 2025 - 1 mai 2020 à 18:01
A voir également:
- Défilement d'une image de la gauche vers la droite et inversement auto
- Image libre de droit gratuite google - Guide
- Windows 11 barre des taches a gauche - Guide
- Le fichier à télécharger est la nouvelle note de service de votre entreprise. importez ce fichier dans le bon dossier sur l'espace pix cloud. donnez à ce fichier les mêmes droits d'accès que les autres notes de service. ✓ - Forum Windows
- Barre droite clavier ✓ - Forum Autres distributions Linux
- Combien y a-t-il de bateaux dans la zone de 565 pixels de large et 1400 pixels de haut à partir du coin supérieur gauche de cette image ? - Forum PS4
4 réponses
jordane45
Messages postés
38380
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 janvier 2025
4 727
1 mai 2020 à 00:22
1 mai 2020 à 00:22
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); }
BabaProg
Messages postés
71
Date d'inscription
jeudi 25 octobre 2018
Statut
Membre
Dernière intervention
2 avril 2022
6
1 mai 2020 à 11:49
1 mai 2020 à 11:49
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);
}
})
jordane45
Messages postés
38380
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 janvier 2025
4 727
1 mai 2020 à 13:04
1 mai 2020 à 13:04
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.
BabaProg
Messages postés
71
Date d'inscription
jeudi 25 octobre 2018
Statut
Membre
Dernière intervention
2 avril 2022
6
1 mai 2020 à 14:04
1 mai 2020 à 14:04
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) }
jordane45
Messages postés
38380
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 janvier 2025
4 727
1 mai 2020 à 14:45
1 mai 2020 à 14:45
Faudrait peut-être virer
Que j'avais placé là dans mon exemple n'ayant pas ton objet lors de mes tests....
alien = { posX: 400 }
Que j'avais placé là dans mon exemple n'ayant pas ton objet lors de mes tests....
BabaProg
Messages postés
71
Date d'inscription
jeudi 25 octobre 2018
Statut
Membre
Dernière intervention
2 avril 2022
6
>
jordane45
Messages postés
38380
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 janvier 2025
1 mai 2020 à 16:50
1 mai 2020 à 16:50
jordane45
Messages postés
38380
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 janvier 2025
4 727
>
BabaProg
Messages postés
71
Date d'inscription
jeudi 25 octobre 2018
Statut
Membre
Dernière intervention
2 avril 2022
1 mai 2020 à 17:58
1 mai 2020 à 17:58
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); } });
BabaProg
Messages postés
71
Date d'inscription
jeudi 25 octobre 2018
Statut
Membre
Dernière intervention
2 avril 2022
6
1 mai 2020 à 17:59
1 mai 2020 à 17:59
wow merci beaucoup c'est exactement ce que je voulais !!!
jordane45
Messages postés
38380
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 janvier 2025
4 727
1 mai 2020 à 18:00
1 mai 2020 à 18:00
pense à mettre le sujet en résolu.
Bonne journée.
Bonne journée.
jordane45
Messages postés
38380
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 janvier 2025
4 727
>
jordane45
Messages postés
38380
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 janvier 2025
1 mai 2020 à 18:01
1 mai 2020 à 18:01
Ps : tu peux retirer les console.log .. c'était pour débuguer.