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 :

Animation avec javascript


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 79
    Points : 45
    Points
    45
    Par défaut Animation avec javascript
    J'ai un exercice à faire en html5, je dois faire déplacer un ovni dans un fond d'écran aléatoirement. Mon problème est quand je fais ma boucle qui va faire déplacer mon ovni, il n'y a plus rien qui s'affiche dans ma page web.

    voici mon code, peut-être que c'est la boucle infinie qui fait tout plenter ?

    voici le code qui doit faire déplacer l'ovni :
    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
    while(true)
    		{
     
    			var dt = new Date();
    			dt.setTime(dt.getTime() + 500);
    			while (new Date().getTime() < dt.getTime());
     
    			if(Math.floor((Math.random()* 1))) > 0)
    			{
    				if(xx + 5 < MAXLARGEUR)
    					xx = xx + 5;
    			}
    			else
    			{
    				if(xx - 5 > 0)
    					xx = xx - 5;
    			}
     
    			if(Math.floor((Math.random()* 1))) > 0)
    			{
    				if(yy + 5 < MAXHAUTEUR)
    					yy = yy + 5;
    			}
    			else
    			{
    				if(yy - 5 > 0)
    					yy = yy - 5;
    			}
     
    			ctx.drawImage(img,xx,yy);
    		}
    voici tout le code

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <!DOCTYPE html>
    <html>
    	<head>
    		<title>Exercice Html5 et css3</title>
    	</head>
    <body>
    	<canvas id="MonCanVas" width="250" height="350"></canvas>
    	<script>
     
    		var xx = 30;
    		var yy = 30;
    		var MAXLARGEUR = 250;
    		var MAXHAUTEUR = 350;
    		var i = 0;
    		var j = 0;
    		var h = 115;
    		var l = 250;
    		var y = 0;
    		var x = 0;
    		var img = new Image();
    		img.src = "images/ovni.png";
     
    		var c = document.getElementById("MonCanVas");
    		var ctx = c.getContext("2d");
    		var grd = ctx.createLinearGradient(0,0,0,350);
     
    		grd.addColorStop(0,"black");
    		grd.addColorStop(1,"royalblue");
     
    		ctx.fillStyle=grd;
    		ctx.fillRect(0,0,250,350);
    		ctx.fillStyle="#FFFFFF";
     
    		while(i < 3)
    		{
    			while(j < 2)
    			{
    				y = Math.floor((Math.random()* (h - ( h - 114) + 1)) + (h - 114));
    				x = Math.floor((Math.random()* (250 - 1 + 1))+1);
    				ctx.beginPath();
    				ctx.arc(x,y,Math.floor((Math.random()* (3 - 1 + 1))+1),0,2*Math.PI);
    				ctx.fill();
    				j = j + 1;
    			}
    			j = 0;
    			h = h + 115;
    			i = i + 1;
    		}
     
    		while(true)
    		{
     
    			var dt = new Date();
    			dt.setTime(dt.getTime() + 500);
    			while (new Date().getTime() < dt.getTime());
     
    			if(Math.floor((Math.random()* 1))) > 0)
    			{
    				if(xx + 5 < MAXLARGEUR)
    					xx = xx + 5;
    			}
    			else
    			{
    				if(xx - 5 > 0)
    					xx = xx - 5;
    			}
     
    			if(Math.floor((Math.random()* 1))) > 0)
    			{
    				if(yy + 5 < MAXHAUTEUR)
    					yy = yy + 5;
    			}
    			else
    			{
    				if(yy - 5 > 0)
    					yy = yy - 5;
    			}
     
    			ctx.drawImage(img,xx,yy);
    		}
    	</script>
    </body>
    </html>

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 983
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 983
    Points : 44 166
    Points
    44 166
    Par défaut
    Bonjour,
    il te faut utiliser la méthode setTimeout ou setInterval pour permettre le redraw de ton canvas.

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Points : 274
    Points
    274
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Bonjour,
    il te faut utiliser la méthode setTimeout ou setInterval pour permettre le redraw de ton canvas.
    non requestAnimationFrame

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 983
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 983
    Points : 44 166
    Points
    44 166
    Par défaut
    Citation Envoyé par arnogues Voir le message
    non requestAnimationFrame
    tout à fait autant prendre de bonnes habitudes tout de suite même si setTimeout est encore plus universel, mais nul doute que window.requestAnimationFrame ne tardera pas à le devenir.

Discussions similaires

  1. Animation avec Javascript
    Par L'aigle de Carthage dans le forum jQuery
    Réponses: 7
    Dernier message: 04/07/2014, 15h11
  2. Animation avec JavaScript
    Par webamon dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/03/2013, 22h33
  3. Animations avec différents objet
    Par Mathieu.J dans le forum OpenGL
    Réponses: 6
    Dernier message: 09/06/2004, 14h18
  4. Réponses: 4
    Dernier message: 27/04/2004, 14h45
  5. Réponses: 2
    Dernier message: 14/01/2004, 16h21

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