loulouch
Membre
Messages : 16
Inscription : Aug 2008
Réputation : 0
|
[Résolu] Problème javascript
Bonjour a tous.
Etant plutot nul coté javascript, je sollicite votre aide.
J'ai codé cette fonction en partant du PHP, donc je sais qu'il est pas superbe ( déja les incrementation=incrementation + 1; c'est pas bien ).
les variables au début sont générées automatiquement par php.
ressources => ressources actuelles du joueur
Problème actuel : les ressources ne repartent pas des ressources actuelles.
Je m'explique : cette fonction calcule le nombre de ressources en moins et les soustrait aux ressources actuelles, or elle le fait aux ressources précédemment calculées.
Je sais que c'est tout bete, mais les déclarations de variable je n'ai jamais fait en javascript, donc merci de votre indulgence et votre futur aide[/code]
Code PHP :
<script type="text/javascript">
var ressources = new Array('1467895.74991','92139.6137965','29.41250078','16199.412501'); var liste_unites = new Array('101','102','110'); var couts_unites = new Array(new Array('100','130','55','30'),new Array('140','150','185','60'),new Array('5500','7000','5300','4900'));
function rafraichir(new_ressources){
var contenu=''; var compte= (1 - 1); var new_ressources=ressources; for each(var id_unite in liste_unites){ // Pour chaque unite dans la liste
// Nombre ecrit dans la case var nombre = document.getElementById('unite_'+id_unite).value;
var incrementation=0; for each( var quantite_ressource in new_ressources){ // Pour chaque ressource new_ressources[incrementation] = new_ressources[incrementation] - ( nombre * couts_unites[compte][incrementation]); incrementation=incrementation + 1;
} compte = (1 - 1); for each( var quantite_ressource in new_ressources){ document.getElementById('new_'+compte).innerHTML = new_ressources[compte]; compte=compte + 1; } }
}
</script>
(Ce message a été modifié le : 08-23-2008 12:43 PM par Sephi-Chan.)
|
|
| 08-19-2008 01:00 AM |
|
Sephi-Chan
Administrateur
      
Messages : 4,492
Inscription : Aug 2006
|
RE: Problème javascript
loulouch a écrit :cette fonction calcule le nombre de ressources en moins et les soustrait aux ressources actuelles, or elle le fait aux ressources précédemment calculées.
Je sais que c'est tout bete, mais les déclarations de variable je n'ai jamais fait en javascript, donc merci de votre indulgence et votre futur aide
Je ne comprends pas le problème. Essayes de t'expliquer clairement en gardant à l'esprit qu'on ne sait pas à quoi ressemble ton jeu.
Sephi-Cahn
www.sephi-chan.fr
(Ce message a été modifié le : 08-19-2008 01:40 AM par Sephi-Chan.)
|
|
| 08-19-2008 01:06 AM |
|
loulouch
Membre
Messages : 16
Inscription : Aug 2008
Réputation : 0
|
RE: Problème javascript
Merci de ta réponse rapide
Je reviens avec un petit screen
Cette page ou est le script serait l'équivalent de celle ou on construit les flottes dans ogame ( je le prends comme exemple parce que beaucoup de monde connais).
Je voudrais que a chaque fois qu'on tape quelquechose, ca calcule les ressources qui resteront. Je l'ai fait mais reste un problème -> les ressources sont soustraites à chaque fois à la valeur qui vient d'etre calculée juste avant aux dernier appel de la fonction, alors qu'il faudrait que on recalcule a partir des ressources initiales( ressources) a chaque fois.
J'ai un peu de mal à m'expliquer ...
|
|
| 08-19-2008 01:17 AM |
|
Satevis
Membre
Messages : 49
Inscription : Aug 2008
Réputation : 0
|
RE: Problème javascript
Ta ligne Code PHP :
var new_ressources=ressources;
met là en dehors de ta fonction de cette manière tu ne vas pas réaffecter à chaque appel de la fonction new_ressources avec les valeurs initiales des ressources du joueur.
|
|
| 08-19-2008 01:45 PM |
|
Ter Rowan
Membre
Messages : 302
Inscription : Jul 2008
Réputation : 4
|
RE: Problème javascript
même chose que Satevis, le problème viens de là
maintenant d'un point de vue logique, je trouverais plus sympa que tu fasses :
au lieu de mettre
Code PHP :
function rafraichir(new_ressources){
var contenu=''; var compte= (1 - 1); var new_ressources=ressources
;
tu mettes :
Code PHP :
function rafraichir(new_ressources){
var contenu=''; var compte= (1 - 1); var new_ressources= new Array();
en effet, même si ça corrige, new_ressource n'a rien à faire en global, c'est juste une variable de calcul qu'on doit oublier de suite apres
et pour ta formule de calcul :
Code PHP :
for each( var quantite_ressource in ressources){ // Pour chaque ressource new_ressources[incrementation] = ressources[incrementation] - ( nombre * couts_unites[compte][incrementation]);
ainsi on voit directement dans ton code que tu te bases toujours sur les ressources de départ
PS ce n'est que mon point de vue
(Ce message a été modifié le : 08-19-2008 05:56 PM par Ter Rowan.)
|
|
| 08-19-2008 05:55 PM |
|
loulouch
Membre
Messages : 16
Inscription : Aug 2008
Réputation : 0
|
RE: Problème javascript
Mon problème reste en fait que je dois repartir a partir des ressources initiales a chaque appel de la fonction.
C'est pour ça que j'ai fait var new_ressources=ressources; a chaque appel de la fonction.
Je ne peux pas le faire sur les ressources globales car, cette opération peut-être faite plusieurs fois ( pour chaque liste_unites en fait)
|
|
| 08-19-2008 06:26 PM |
|
j-12
Membre
Messages : 150
Inscription : Sep 2006
Réputation : 1
|
RE: Problème javascript
p'tit erreur de Ter Rowan
en fessant :
Code PHP :
function rafraichir(new_ressources){
var contenu=''; var compte= (1 - 1); var new_ressources= new Array();
il faut faire
Code PHP :
for each( var quantite_ressource in ressources){ // Pour chaque ressource new_ressources[incrementation] = quantite_ressource - ( nombre * couts_unites[compte][incrementation]);
(Ce message a été modifié le : 08-19-2008 07:04 PM par j-12.)
|
|
| 08-19-2008 07:04 PM |
|
Anthor
Membre
Messages : 521
Inscription : Dec 2007
Réputation : 15
|
RE: Problème javascript
J'ai l'impression qu'il manque des bouts de codes non ?
pourrais tu donner le code complet.
De plus pourquoi (1-1) et pas zéro ? Et tu n'incrémente pas le premier qui reste toujours à 0.
Anthor |
|
|
| 08-19-2008 07:31 PM |
|
loulouch
Membre
Messages : 16
Inscription : Aug 2008
Réputation : 0
|
RE: Problème javascript
Merci a tous, j'ai grâce a votre aide pu améliorer mon script.
Pour la faire marcher, j'ai en fait appellé la variable en même temps que la fonction (le php coté serveur devient compliqué), au lieu de l'appeller au début, ce que je pense être possible, mais je n'ai pas réussi.
Je peux maintenant passer a la suite, calcule du nombre max d'unités constructibles
|
|
| 08-19-2008 07:33 PM |
|
Satevis
Membre
Messages : 49
Inscription : Aug 2008
Réputation : 0
|
RE: Problème javascript
Remplace
Code PHP :
var new_ressources=ressources;
par
Code PHP :
var new_ressources=ressources.slice(0);
en la laissant dans la fonction.
Tes ressources était à chaque fois les anciennes valeurs car Javascript utilise les références pour les objets, et les Array sont considérer comme des objets particuliers.
|
|
| 08-19-2008 07:35 PM |
|