begin process at 2012 05 29 06:45:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Function & Méthodes

 > 

Fonction de "vie" pour rpg en javascript


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction de "vie" pour rpg en javascript

mercredi 22 décembre 2010 à 19:56:48 | Fonction de "vie" pour rpg en javascript

loicseg

Bonjour à tous,
voilà j'ai créé un code de "vie" qui réduit la vie lors d'un combat dans un mini rpg que je programme en javascript/html... sauf que le code est assez long et j'aimerais trouver un moyen de le raccourcir, je pense qu'il y a un moyen mais je ne me rappelle plus de la structure :

voici mes fonctions javascript :
Code Javascript :
if (document.getElementById)
   {
   if(navigator.appName.substring(0,3) == "Net")
      document.captureEvents(Event.MOUSEMOVE);
  window.onload = viepleine;
   }

function viepleine(){
   if (document.getElementById)
      {
         document.vie.src='img/100.bmp';
      }    
      tempo = setTimeout("viepleine()", 1000);    
   }

function vie100(){
   if (document.getElementById)
      {
         document.vie.src='img/100.bmp';
      }    
      tempo = setTimeout("vie98()", 1000);      
   }

function vie98(){
   if (document.getElementById)
      {
         document.vie.src='img/98.bmp';
      }
      window.clearTimeout(tempo);
      tempo = setTimeout("vie96()", 1000);
   }

function vie96(){
   if (document.getElementById)
      {
         document.vie.src='img/96.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie94()", 1000);
   }

function vie94(){
   if (document.getElementById)
      {
         document.vie.src='img/94.bmp';
      }   
      window.clearTimeout(tempo); 
      tempo = setTimeout("vie92()", 1000);
   }

function vie92(){
   if (document.getElementById)
      {
         document.vie.src='img/92.bmp';
      }  
      window.clearTimeout(tempo);
      tempo = setTimeout("vie90()", 1000);
   }

function vie90(){
   if (document.getElementById)
      {
         document.vie.src='img/90.bmp';
      }   
      window.clearTimeout(tempo); 
      tempo = setTimeout("vie88()", 1000);
   }

function vie88(){
   if (document.getElementById)
      {
         document.vie.src='img/88.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie86()", 1000);
   }

function vie86(){
   if (document.getElementById)
      {
         document.vie.src='img/86.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie84()", 1000);
   }

function vie84(){
   if (document.getElementById)
      {
         document.vie.src='img/84.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie82()", 1000);
   }

function vie82(){
   if (document.getElementById)
      {
         document.vie.src='img/82.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie80()", 1000);
   }

function vie80(){
   if (document.getElementById)
      {
         document.vie.src='img/80.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie78()", 1000);
   }

function vie78(){
   if (document.getElementById)
      {
         document.vie.src='img/78.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie76()", 1000);
   }

function vie76(){
   if (document.getElementById)
      {
         document.vie.src='img/76.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie74()", 1000);
   }

function vie74(){
   if (document.getElementById)
      {
         document.vie.src='img/74.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie72()", 1000);
   }

function vie72(){
   if (document.getElementById)
      {
         document.vie.src='img/72.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie70()", 1000);
   }

function vie70(){
   if (document.getElementById)
      {
         document.vie.src='img/70.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie68()", 1000);
   }

function vie68(){
   if (document.getElementById)
      {
         document.vie.src='img/68.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie66()", 1000);
   }

function vie66(){
   if (document.getElementById)
      {
         document.vie.src='img/66.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie64()", 1000);
   }

function vie64(){
   if (document.getElementById)
      {
         document.vie.src='img/64.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie62()", 1000);
   }

function vie62(){
   if (document.getElementById)
      {
         document.vie.src='img/62.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie60()", 1000);
   }

function vie60(){
   if (document.getElementById)
      {
         document.vie.src='img/60.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie58()", 1000);
   }

function vie58(){
   if (document.getElementById)
      {
         document.vie.src='img/58.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie56()", 1000);
   }

function vie56(){
   if (document.getElementById)
      {
         document.vie.src='img/56.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie54()", 1000);
   }

function vie54(){
   if (document.getElementById)
      {
         document.vie.src='img/54.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie52()", 1000);
   }

function vie52(){
   if (document.getElementById)
      {
         document.vie.src='img/52.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie50()", 1000);
   }

function vie50(){
   if (document.getElementById)
      {
         document.vie.src='img/50.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie48()", 1000);
   }

function vie48(){
   if (document.getElementById)
      {
         document.vie.src='img/48.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie46()", 1000);
   }

function vie46(){
   if (document.getElementById)
      {
         document.vie.src='img/46.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie44()", 1000);
   }

function vie44(){
   if (document.getElementById)
      {
         document.vie.src='img/44.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie42()", 1000);
   }

function vie42(){
   if (document.getElementById)
      {
         document.vie.src='img/42.bmp';
      }   
      window.clearTimeout(tempo); 
      tempo = setTimeout("vie40()", 1000);
   }

function vie40(){
   if (document.getElementById)
      {
         document.vie.src='img/40.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie38()", 1000);
   }

function vie38(){
   if (document.getElementById)
      {
         document.vie.src='img/38.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie36()", 1000);
   }

function vie36(){
   if (document.getElementById)
      {
         document.vie.src='img/36.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie34()", 1000);
   }

function vie34(){
   if (document.getElementById)
      {
         document.vie.src='img/34.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie32()", 1000);
   }

function vie32(){
   if (document.getElementById)
      {
         document.vie.src='img/32.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie30()", 1000);
   }

function vie30(){
   if (document.getElementById)
      {
         document.vie.src='img/30.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie28()", 1000);
   }

function vie28(){
   if (document.getElementById)
      {
         document.vie.src='img/28.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie26()", 1000);
   }

function vie26(){
   if (document.getElementById)
      {
         document.vie.src='img/26.bmp';
      }
      window.clearTimeout(tempo);    
      tempo = setTimeout("vie24()", 1000);
   }

function vie24(){
   if (document.getElementById)
      {
         document.vie.src='img/24.bmp';
      }   
      window.clearTimeout(tempo);
      tempo = setTimeout("vie22()", 1000);
   }

function vie22(){
   if (document.getElementById)
      {
         document.vie.src='img/22.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie20()", 1000);
   }

function vie20(){
   if (document.getElementById)
      {
         document.vie.src='img/20.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie18()", 1000);
   }

function vie18(){
   if (document.getElementById)
      {
         document.vie.src='img/18.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie16()", 1000);
   }

function vie16(){
   if (document.getElementById)
      {
         document.vie.src='img/16.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie14()", 1000);
   }

function vie14(){
   if (document.getElementById)
      {
         document.vie.src='img/14.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie12()", 1000);
   }

function vie12(){
   if (document.getElementById)
      {
         document.vie.src='img/12.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie10()", 1000);
   }

function vie10(){
   if (document.getElementById)
      {
         document.vie.src='img/10.bmp';
      }   
      window.clearTimeout(tempo); 
      tempo = setTimeout("vie8()", 1000);
   }

function vie8(){
   if (document.getElementById)
      {
         document.vie.src='img/8.bmp';
      }   
      window.clearTimeout(tempo); 
      tempo = setTimeout("vie6()", 1000);
   }

function vie6(){
   if (document.getElementById)
      {
         document.vie.src='img/6.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie4()", 1000);
   }

function vie4(){
   if (document.getElementById)
      {
         document.vie.src='img/4.bmp';
      }    
      window.clearTimeout(tempo);
      tempo = setTimeout("vie2()", 1000);
   }

function vie2(){
   if (document.getElementById)
      {
         document.vie.src='img/2.bmp';
      }  
      window.clearTimeout(tempo);
      tempo = setTimeout("vie0()", 1000);
   }

function vie0(){
   if (document.getElementById)
      {
         window.clearTimeout(tempo);
         document.vie.src='img/0.bmp';
         parent.document.getElementById('mort').style.visibility='visible';          
         parent.map.imgpersomort();
      }    
   }

function blessure(){
tempo = setTimeout("vie100()", 1000);
}

function stop(){
window.clearTimeout(tempo);
}

if(document.getElementById)
   {
   document.write('<img src="img/100.bmp" style="border:0px" name="vie" id="vie" alt="" height="100%" width="100%" />');
}


d'après mes souvenirs la structure de la fonction est un truc du genre :

function mafonction()
0<n<100
fichier=img(n).bmp
new src=img(n)-2k
document.img.src='img(n)'

je ne me rappelle pas mais je pense que ce "code" est compréhensible pour ce que je veux faire

merci d'avance pour votre aide.

mercredi 22 décembre 2010 à 20:00:19 | Re : Fonction de "vie" pour rpg en javascript

loicseg

edit :
function mafonction()
0<n<100 ;
fichier=img(n).bmp ;
new src=img(n)-2k ;
document.img.src='img(n)';
temp = setInterval("mafonction()",300);

PS : si des personnes souhaitent se joindre au projet par plaisir elles sont les bienvenues (attention pas de rémunération : jeu libre et gratuit opensource)


mercredi 22 décembre 2010 à 22:36:35 | Re : Fonction de "vie" pour rpg en javascript

PetoleTeam

Membre Club
Bonjour,
Quel courage et quelle abnégation, heureusement que tu n'as pas 3022 vies!

pour commencer
Code Javascript :
if(navigator.appName.substring(0,3) == "Net")
      document.captureEvents(Event.MOUSEMOVE);
oublies cela c'est complètement dépassé

pour continuer,
mais je ne me rappelle plus de la structure
il ne s'agit pas de structure mais de bon sens sur ce coup.
Quand on écrit plusieurs fois la même fonction ou presque on garde la partie commune et on passe ce qui change en paramètre.

Un petit exemple de compression
Code Javascript :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>[PetoleTeam]Compression de fonction</title>
</head>
<body>
<div id="D_ECRIRE"></div>
</body>
<script type="text/javascript">
//----------------------
function Incremente( param_){
  document.getElementById('D_ECRIRE').innerHTML += param_ +' - ';
  tempo = setTimeout( function(){ Incremente( param_ +1);}, 1000);
}
//-- lance la fonction
Incremente( 1);
</script>
</html>

enfin le clearTimeout n'est pas nécessaire dans la fonction.


;O)
mercredi 22 décembre 2010 à 23:15:43 | Re : Fonction de "vie" pour rpg en javascript

loicseg

merci beaucoup je vais essayer avec cette méthode je vous informerais du résultat
mercredi 22 décembre 2010 à 23:56:58 | Re : Fonction de "vie" pour rpg en javascript

loicseg

function combat( vie_){
if (document.getElementById)
{
document.vie.innerHTML += vie_ +' - ';
tempo = setTimeout( function(){combat( vie_ -2);}, 1000);
}
}

ça ne vas pas bien sur mais je ne sais pas comment faire...
jeudi 23 décembre 2010 à 00:23:01 | Re : Fonction de "vie" pour rpg en javascript

loicseg

<html>
<img src="img/100.bmp" style="border:0px" name="vie" id="vie" alt="" height="100%" width="100%">
<script type="text/javascript">
//----------------------
function Incremente( param_){
document.getElementById('vie').src='img/'+= param_ +'.bmp';
tempo = setTimeout( function(){ Incremente( param_ -2);}, 1000);
}
}
//-- lance la fonction
Incremente(100);
</script>
</html>
jeudi 23 décembre 2010 à 00:49:14 | Re : Fonction de "vie" pour rpg en javascript

loicseg

<div id="life"></div>

<script type="text/javascript">
//----------------------
function combat( vie_){
document.getElementById('life').innerHTML = '<img src="img/'+= vie_+'.bmp">';
tempo = setTimeout( function(){ combat( vie_ -2);}, 1000);
}
//-- lance la fonction
combat( 100);
</script>

comprend pas pourquoi ça ne fonctionne pas là
certainement ici que ça coince :
document.getElementById('life').innerHTML = '<img src="img/'+=vie_+'.bmp">';
mais je ne connais pas de solution
jeudi 23 décembre 2010 à 00:54:34 | Re : Fonction de "vie" pour rpg en javascript

loicseg

Youpi !
<div id="life"></div>
<script type="text/javascript">
//----------------------
function combat( vie_){
document.getElementById('life').innerHTML = '<img src="img/'+ vie_ +'.bmp">';
tempo = setTimeout( function(){ combat( vie_ -2);}, 1000);
}
//-- lance la fonction
combat( 100);
</script>
jeudi 23 décembre 2010 à 11:36:37 | Re : Fonction de "vie" pour rpg en javascript

loicseg

<body style="margin: 0">
<img id="vie" src="img/100.bmp" style="position:absolute;top:0px;left:0px" width="100%" height="100%">

<script type="text/javascript">
function combat( vie_){
document.getElementById("vie").src = 'img/'+ vie_ +'.bmp';
tempo = setTimeout( function(){ combat( vie_ -2);}, 1000);
}
//-- lance la fonction
function cmbt(){
combat( 100);
}

function stop(){
window.clearTimeout(tempo);
}

</script>

maintenant je bloque sur comment relancer le setTimeout mais sans perdre la valeur car voici ce qui se passe en gros :
un clic sur un monstre depuis une frame lance la fonction cmbt() qui lance elle-même la fonction combat. A la fin du "combat" le monstre (image) a disparu et le Timeout s'arrête grâce à la fonction stop()

ondblclick="parent.vie.stop()"

mais voilà lorsque je veux faire un second combat la vie remonte à 100 et ne reprend pas à la valeur atteinte à la fin du combat précédent.
J'espère avoir été assez clair dans l'explication de mon problème et merci encore d'avance pour votre aide.

(par conséquent le même problème se passe avec la jauge d'expérience :

<body style="margin: 0">
<img id="xp" src="img/0.bmp" style="position:absolute;top:0px;left:0px" width="100%" height="100%" onclick="gainxp()">

<script type="text/javascript">
function xp( xp_){
document.getElementById("xp").src = 'img/'+ xp_ +'.bmp';
tempo = setTimeout( function(){ xp( xp_ +10);}, 1000);

}
//-- lance la fonction
function gainxp(){
xp( 0);
}

</script>

une fois lancé je ne peux plus l'arrêter et je ne veux pas que l'expérience monte d'un coup comme ça, de plus comment fixer une limite maximum à 100 pour le paramètre xp_ ?
jeudi 23 décembre 2010 à 11:50:48 | Re : Fonction de "vie" pour rpg en javascript

loicseg

Avant j'avais ça :

function vie0(){
if (document.getElementById)
{
window.clearTimeout(tempo);
document.vie.src='img/0.bmp';
parent.document.getElementById('mort').style.visibility='visible';
parent.map.imgpersomort();
}
}

mais maintenant comment faire pour afficher l'image "personnage mort" lorsque le paramètre vie_ atteint la valeur 0 :

function mort(){
if (vie_ =0){
parent.document.getElementById('mort').style.visibility='visible'; parent.map.imgpersomort();
}
}

ne fonctionne pas :s

en gros comment déclencher une fonction lorsque le paramètre atteint une certaine valeur


1 2 3

Cette discussion est classée dans : tempo, document, img, vie, if


Répondre à ce message

Sujets en rapport avec ce message

Marche pas sous IE [ par taxidogkiller ] Bonjour, j'ai télécharger un script de galerie d'image et en voulant le bidouiller je suis tomber sur des fonction javascript qui ne marche que sous m besoin d'aide sur un script de selection d'image [ par gohu06 ] Bonjour J'ai réalisé un script pour que lorsque le visiteur séléctionne un nom dans un des 3 menus déroulants, un photo s'affiche dans un emplacement animation images transparentes [ par lucdcs ] bonjour à tousje suis novice mais je me soigne toutefois il me reste un petit problème dans mon code.avec l'aide des internautes la gestion de la tran script de visinneur d'image [ par k4mik4zi ] Voila j'ai trouvé un script que j'ai un peu bidouillé pour avoir un visionneur d image mais le probleme c'est que l'image affiché par default c'est au pb effet de style [ par gabs77 ] slt,g  un script permettant de mettre en diapo toutes images d'un repertoire avec intervalle de tempsseul hic! je cherche a mettre different effet com diaporama automatique PHP/JS [ par gabs77 ] slt,g tenter de faire du diaporama automatique avec effet a partir du contenu d un dossier nommé uploads!!Voici mon script:imgPath = n Player multi format sécuriter java & php [ par c2bomb ] bonjour a tous,je cherche a afficher mon player,dans une fenetre style popup,mais hélas je suis vraiment nulle en javascript...si quelq'un peut m'aide 2 menuS deroulants java dans une page [ par DEVLYNE ] Bonjour!Sachez que je suis uns très grande débutante mais j'ai un petit souci.J'utilise un logiciel gratuit: Coffee Cup DHTML menu pour faire mes menu Placement d'une div sur un textbox [ par ludovicanceaux ] Salut à tous, J'ai un problême de compatibilité entre firefox et internet explorer en fait ma fonction doit faire apparaitre une div avec une sorte d Control de dimension d'une image [ par jnbrunet ] Salut,Pour un de mes sites, je dois contrôler les dimensions de mes images. Je ne veux pas utiliser les paramêtre de dimension d'une image(ex : )J'ai


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,187 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales