DB-AL Problème Compteur de jour,

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
fufu7334
Messages : 5
Inscription : 17 Jan 2014 15:49

DB-AL Problème Compteur de jour,

Message par fufu7334 » 10 Juin 2016 20:49

bonjour,


voici mon problème j'ai crée un script en (java) pour compter mes jours le script fonctionne nikel , le problème et que arriver à 0 : 0 il me rajoute plusieurs jours , voici mon script

Code : Tout sélectionner

import UnityEngine.UI;
import UnityEngine;
import System.Collections;

var daytimer = 1;
var dayText:Text;
var timeText:Text;
var texttest:Text;

function Start () {
}

function Update () {
    if (timeText.text == "Time : 0 : 0 AM")
    {
        dayText.text = "0";
    } 
    if (dayText.text == "0")
    { 
        daytimer++;
        dayText.text = daytimer.ToString();
    }
}
il me rajoute plusieurs jour car dans mon script je lui dit que a 0 : 0 il doit rajouter +1 a la valeur daytimer mais le problème et que le temp reste genre 1 seconde sur 0 : 0 donc me rajoute plusieurs jour, :rougefaché:
je n'arrive pas a mètre une pause ou lui dire de rajouter que 1 a la valeur daytimer, c'est un peut confus j’espère que je me suis bien expliquer :gene3: , j'ai vraiment besoin d'aide sur ce coup car je ne voit pas comment je peut faire ,

 ! Message de : Max
Les balises code SVP ! Merci de lire la Netiquette.

Moi 1971
Messages : 727
Inscription : 29 Sep 2015 13:38

Re: DB-AL Problème Compteur de jour,

Message par Moi 1971 » 10 Juin 2016 21:21

Bonjour,
Ce n'est pas du Java mais du Javascript.
Essaies ça :

Code : Tout sélectionner

function Update () {
    if (timeText.text == "Time : 0 : 0 AM")
    {
       Debug.Log("daytimer = "+daytimer);
       daytimer++;
       Debug.Log("daytimer = "+daytimer);
       Debug.Log("dayText.text= "+dayText.text);
       dayText.text = daytimer.ToString();
       Debug.Log("dayText.text= "+dayText.text);
    }
}
Regarde et dis nous ce qui s'écrit dans la console.

fufu7334
Messages : 5
Inscription : 17 Jan 2014 15:49

Re: DB-AL Problème Compteur de jour,

Message par fufu7334 » 10 Juin 2016 21:32

salut,

j'ai fait ce que tu ma dis et dans la console s'affiche ceci,
http://prntscr.com/betusm

ect.. , jusqu'à 10

merci de ta réponse rapide en tous cas ^^

Moi 1971
Messages : 727
Inscription : 29 Sep 2015 13:38

Re: DB-AL Problème Compteur de jour,

Message par Moi 1971 » 11 Juin 2016 10:50

Ok,
Donc il faut que tu crée un booléen qui va indiqué si "timeText" à été modifié. Et puis il faut conditionné l'incrémentation de "daytimer" et de "dayText" par ce booléen comme ceci :

Code : Tout sélectionner

function Update () {
    if ( (timeText.text == "Time : 0 : 0 AM") && HeureAChange)
    {
       HeureAChange = false;
       daytimer++;
       dayText.text = daytimer.ToString();
     }
}
Dans le start() il faut initialiser le booléen : "HeureAChange = false;"
Et à l'endroit dans ton code où tu changes "timeText.text" tu mets le booléen "HeureAChange" à "true"

fufu7334
Messages : 5
Inscription : 17 Jan 2014 15:49

Re: DB-AL Problème Compteur de jour,

Message par fufu7334 » 11 Juin 2016 16:41

Salut j'ai fait comme tu me l'avait dit mais le problème et que sa bloquer sur 1 je ne c'est pas pourquoi, j'ai du inverser le true avec le false,
j'ai trouver une méthode un peut chaotique mais qui fonctionne parfaitement je t'envoi le script,

Code : Tout sélectionner

import UnityEngine.UI;
import UnityEngine;
import System.Collections;
var daytimer = 1;
var dayText:Text;
var timeText:Text;
var texttest:Text;
var HeureAChange : System.Boolean;

function Start () 
{
    HeureAChange = true;
}

function Update () {
    if ((timeText.text == "Time : 0 : 0 AM") && HeureAChange)
    {
        HeureAChange = false;
        daytimer++;
        dayText.text = daytimer.ToString();
    }
    if (timeText.text == "Time : 1 : 1 AM")
    {
        HeureAChange = true;
    }
}
bon par contre c'est un peu rudimentaire et pas très propre mais elle fonctionne ^^!
je te remercie de m'avoir aidée en tous cas ,
et si jamais ta la solution au problème de pourquoi il ce bloquer sur 1 avec tes instruction, je prend =)

Moi 1971
Messages : 727
Inscription : 29 Sep 2015 13:38

Re: DB-AL Problème Compteur de jour,

Message par Moi 1971 » 11 Juin 2016 18:22

La solution je l'ai écrit
Et à l'endroit dans ton code où tu changes "timeText.text" tu mets le booléen "HeureAChange" à "true"
C'est ce que tu as presque fait avec :

Code : Tout sélectionner

 if (timeText.text == "Time : 1 : 1 AM")
    {
        HeureAChange = true;
    }
Il faut que tu trouves à quel endroit dans ton code timeText.text change. S'il n'y a pas de code parce que c'est du code système. Alors il faut lancer une Coroutine qui vas lancer un compteur qui va durer plus de 60 secondes = 1 minute et qui après passe "HeureAChange = true;".
Parce que si tu as "Time : 1 : 2 AM" puis "Time : 1 : 3 AM", puis "Time : 1 : 4 AM" etc... tu ne pourras pas faire des if à la suite pour tous les cas.

Verrouillé

Revenir vers « (Js) Javascript »