IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[Image] Un sprite dans canvas avec javascript?


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 208
    Points : 109
    Points
    109
    Par défaut [Image] Un sprite dans canvas avec javascript?
    Bonjour tout le monde !

    Voila, je suis en train de m'amuser avec l'élément canvas d'HTML 5, et je cherche a afficher un sprite (petit personnage qui court, 2 positions).

    Tout fonctionne, sauf que je sens firefox "planter doucement"
    Passer d'un onglet à un autre, ou encore me balader dans les menus de Firefox devient lourd.
    J'en conclu que j'ai fait une coquille dans mon javascript (en désactivant l'effet de sprite, tout rentre dans l'ordre).

    Voila comment je procede :

    Dans ma fonction d'initialisation (lancée par le onload() de body), je charge mes images de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var ImgHero = new Image();      // variable globale
     
    function InitJS()
    {
            ImgHero.src = "Images/Gugus01_sprite.png";
    	ImgHero.onload = function()
    	{
    	};
    }
    Ensuite vient l'affichage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    this.Draw = function()
    	{
    		switch(ImgSprite)
    		{
    			case 0 :
    			{
    				Context.drawImage(Img,0,0,80,171,x,y,80,171);
    				break;
    			}
    			case 1 :
    			{
    				Context.drawImage(Img,80,0,80,171,x,y,80,171);
    				break;
    			}
    		}
     
    		this.CalcSprite();
    	}
     
    this.CalcSprite = function()
    	{
    		if(MonTimer>1)
    		{
    			if(ImgSprite == 0)
    				ImgSprite = 1;
    			else
    				ImgSprite = 0;
     
    			MonTimer = 0;
    		}
     
    		MonTimer = MonTimer + 0.25;
    	}
    Le contenu de mon Canvas est redessiné toutes les 50 millisecondes.
    A chaque actualisation de mon Canvas, j'incrémente la valeur MonTimer, qui permet de faire varier périodiquement la portion de mon image à afficher (pour avoir cet effet de bonhomme qui court).

    Ca fonctionne, mais ce n'est certainement pas très propre, et j'imagine que c'est pour ça que mon navigateur plantouille.

    Une idée pour rendre la chose moins lourde?

    Merci

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut, je n'ai pas beaucoup d'expérience dans le canvas.

    Mais ce lien devrait surement t'aider à réaliser une animation de sprite dans un canvas :

    http://www.johnegraham2.com/web-tech...nimation-demo/

    Bonne lecture ;-)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 208
    Points : 109
    Points
    109
    Par défaut
    Yop !

    Merci Blender-Viking , ça a l'air pas mal du tout, je vais m'y plonger dès que j'aurais un peu de temps

Discussions similaires

  1. Changement d'image sur un imageButton HTML avec javascript
    Par Shadam dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 08/02/2013, 17h17
  2. Image de fond dans état avec hauteur fixe section
    Par bipol51430 dans le forum IHM
    Réponses: 1
    Dernier message: 15/12/2010, 06h26
  3. [MySQL] Défilement images d'une requete php avec javascript
    Par spespam dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 18/02/2009, 19h26
  4. Chargement d'une image dans une Galerie photo avec Javascript
    Par zintelix3d dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/02/2009, 10h59
  5. [Tkinter] Insérer une image jpg sur un canvas avec PIL
    Par Kyojimbo dans le forum Tkinter
    Réponses: 2
    Dernier message: 23/02/2006, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo