Forum Solarus-Games francophone

Jeux amateurs => Aide & support => Discussion démarrée par: C2dric le 18 Janvier 2010 à 21:08

Titre: [Résolu] - [C++]Changer le fond, en fonction de l'heure
Posté par: C2dric le 18 Janvier 2010 à 21:08
En jouant à la démo de Solarus, je me suis posé une question.

Comment faire pour changer un environnement en fonction de l'heure où celui-ci est utilisé??

Vus que vous le faîte dans Solarus, je pense que vous pourrez me répondre.

1) Vous interroger le système pour connaître l'heure?
2) Je sais que certain paramètre sont automatiquement implémenté lors d'une exécution, es-ce cela?
3) Vous interroger une horloge situé quelque part??

Lourde interrogation que voilà ^_^
Titre: Re : [C++]Changer le fond, en fonction de l'heure
Posté par: HCkev le 19 Janvier 2010 à 03:49
Utiliser l'heure du système me semble l'option la plus probable ^_^ Mais bon, je ne suis pas Christopho, alors... :mrgreen:
Titre: Re : [C++]Changer le fond, en fonction de l'heure
Posté par: C2dric le 19 Janvier 2010 à 19:11
Moi aussi, je cherche en se moment la fonction.  :o
J'ai trouvé quelque chose, ma faut passer par la console window, donc se n'est pas portable sous Mac et Linus. <_<
Titre: Re : [C++]Changer le fond, en fonction de l'heure
Posté par: yoshi04 le 19 Janvier 2010 à 19:13
Peut être en passant par le troisième argument de la fonction main et en récupérant la variable d'environnement (http://fr.wikipedia.org/wiki/Variable_d%27environnement) correspondant à l'heure du système ?

J'ai trouvé ça aussi avec une bête recherche google : Lien (http://www.cppfrance.com/codes/COMMENT-RECUPERER-HEURE-SYSTEME-DEV-CPLUSPLUS_9582.aspx)

Tercio, vous pouvez éplucher le code de ZSDX sinon  :D
Titre: Re : [C++]Changer le fond, en fonction de l'heure
Posté par: Noxneo le 19 Janvier 2010 à 19:35
Voici ce qu'il y'a dans le code ZSDX:

TimeOfDay get_time_of_day(void) {

  time_t timestamp = time(NULL);
  struct tm *local_time = localtime(&timestamp);
  int hour = local_time->tm_hour;

  TimeOfDay result;
  if (hour >= 8 && hour <= 18) {
    result = DAYLIGHT;
  }
  else if (hour > 18 && hour <= 20) {
    result = SUNSET;
  }
  else {
    result = NIGHT;
  }
  return result;
}


ne pas oublier d'inclure time.h (ou ctime en C++)
Titre: Re : [C++]Changer le fond, en fonction de l'heure
Posté par: C2dric le 24 Janvier 2010 à 15:37
Que d'honneur, vous me dévoilez un morceau de mervielleux code qui compose Solarus ^_^

Merci de votre soutient, la classe que je chercher est ctime  (time ->  temps............temps -> time     hum, je comprend)
Je programme en C++, autant utiliser des objets et avoir un maximun de possibilité. :linkbravo:

Encore merci, je partait sur l'étude des arguments, mais ce n'est pas portable car les arguments dépendes de l'os. :mokona:
Titre: Re : Re : [C++]Changer le fond, en fonction de l'heure
Posté par: yoshi04 le 24 Janvier 2010 à 15:39
Citation de: C2dric le 24 Janvier 2010 à 15:37
Que d'honneur, vous me dévoilez un morceau de mervielleux code qui compose Solarus ^_^

Et si tu descends tout en bas de la page, tu verras que le jeu est open source et que tu peux donc t'amuser à les télécharger  :ninja:
http://www.zelda-solarus.com/jeu-zsdx-demo

Voilà sujet résolu ;)
Titre: Re : [Résolu] - [C++]Changer le fond, en fonction de l'heure
Posté par: M2K le 24 Janvier 2010 à 16:24
Dans zs, y a pas d'aube??
Titre: Re : [Résolu] - [C++]Changer le fond, en fonction de l'heure
Posté par: C2dric le 25 Janvier 2010 à 22:28
Effectivement, mais c'est drôlement bien planqué, même avec tes indications j'ai eu du mal à trouver  :linkXD:

Personnellement j'airai préférée les sources de l'éditeur, vu que j'attaque le miens cet semaine.

Et je le fais aussi en Java :linkbravo:

Enfin, je ne vais pas me plaindre, la partie concernant lua peut être très instructive ;)