Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Packs de ressources: Ressources rétro (...) / Scripts: Moghunter retire ses plugins (...) / Interviews: Ephy / Tutos: Godot : Premier Contact -Partie (...) / Tutos: Godot : Premier Contact -Partie (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

124 connectés actuellement

11022667 visiteurs
depuis l'ouverture

644 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

RPG Fusion

Leo-Games

Level Up!

Tous nos partenaires

Devenir
partenaire



Horloge et temps réel

Un petit article qui explique comment intégrer l'horloge de Windows dans son jeu. Cela comprend la gestion des secondes, des minutes, de l'heure, du jour, du mois et de l'année et autre.

Script pour RPG Maker XP
Ecrit par TLN
Publié par TLN (lui envoyer un message privé)
Signaler un script cassé

Bonjour à vous, ami(e)s lecteurs(rices).
Bon, ceci n'est pas vraiment un script, juste un regroupement de diverses fonctions utiles à une gestions avancées du temps sous rmXP.

Script à coller juste au-dessus de "Main" dans un nouveau script (que vous nommerez par exemple "Horloge"):

Portion de code : Tout sélectionner

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
84
class Horloge
  
  def attendre(t) # t en seconde
    ti = Time.now
    loop do
      if  Time.now  >= ti + t then
        break
      end
    end
  end
  
  def année
    return Time.new.year
  end
  
  def mois_num
    return Time.new.month
  end
  
  def mois
    case Time.new.month
    when 1
      return "Janvier"
    when 2
      return "Février"
    when 3
      return "Mars"
    when 4
      return "Avril"
    when 5
      return "Mai"
    when 6
      return "Juin"
    when 7
      return "Juillet"
    when 8
      return "Août"
    when 9
      return "Septembre"
    when 10
      return "Octobre"
    when 11
      return "Novembre"
    when 12
      return "Décembre"
    end
  end
  
  def date
    return Time.new.day
  end
  
  def jour
    case Time.new.strftime("%A")
    when "Monday"
      return "Lundi"
    when "Tuesday"
      return "Mardi"
    when "Wednesday"
      return "Mercredi"
    when "Thursday"
      return "Jeudi"
    when "Friday"
      return "Vendredi"
    when "Saturday"
      return "Samedi"
    when "Sunday"
      return "Dimanche"
    end
  end
  
  def heure
    return Time.new.hour
  end
  
  def minute
    return Time.new.min
  end
  
  def seconde
    return Time.new.sec
  end
  
end



Il s'agit ici d'une horloge. Pour l'utiliser c'est très simple, ajoutez ceci juste après "begin" dans le script "Main" :

Portion de code : Tout sélectionner

1
  $time = Horloge.new



Maintenant grâce à la variable "$time", vous avez accès à plusieurs options :

- $time.attendre(t)
En entrant ceci où vous voulez, vous attendrez alors un certain temps, déterminé par "t" (remplacez "t" par un nombre) ; "t" étant en seconde.
Note : Ce bout de texte est de Fabien je crois, je l'ai intégré à ce script car il y a sa place.

- $time.année
Ce texte vous renvoie le numéro de l'année (2007 à l'heure où j'écris ^^), sous forme de nombre (donc vous pouvez faire des opérations avec, et si vous voulez l'afficher sous forme de caractère, il faudra ajouter ".to_s" à la fin de "$time.année" ; "to_s" étant une méthode qui convertie un nombre en chaîne de caractère, l'inverse est cependant impossible -ben wé!-).

- $time.mois_num
Ce texte vous renvoie le numéro du mois, 1 correspond à Janvier, 2 à Février, etc. et ce toujours sous forme de nombre et non de chaîne de caractère.

- $time.mois
Idem que précédement, à la différence que vous obtenez là directement le mois sous forme de chaîne de caractère (ainsi en ce moment vous obtiendrez "Janvier" plutôt que le nombre 1).

- $time.date
Là vous obtenez le numéro correspondant au jour actuel (ici 4 à l'heure où j'écris).

- $time.jour
Idem que précédement sauf que vous obtenez le jour de la semaine sous forme de chaîne de caractère (au lieu d'avoir "4", vous aurez "Jeudi").

- $time.heure
$time.minute
$time.seconde

Ces trois lignes vous renvoient respectivement l'heure, la minute, et la seconde actuelle. Pratique pour afficher le temps réel.

Voilà donc le fait de pouvoir utiliser l'heure réelle offre pas mal de possibilité pour peu que l'on se donne la peine de s'y pencher un peu en manipulant deux trois trucs.
Pour ma part j'ai modifié la fenêtre d'affichage du temps et voici ce que l'on peut obtenir :
(collez ce script à la place de "Window_Playtime")

Portion de code : Tout sélectionner

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
#==============================================================================
# ¦ Window_PlayTime
#------------------------------------------------------------------------------
#
#==============================================================================
 
class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  #
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 220, 128)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    refresh
  end
  #--------------------------------------------------------------------------
  #
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0, 0, 188, 32, "Temps de jeu :", 0)
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 180, 32, text, 2)
    hour = $time.heure
    min = $time.minute
    sec = $time.seconde
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.draw_text(4, 32, 180, 32, text, 2)
    day = $time.jour
    date = $time.date
    mois = $time.mois
    année = $time.année
    cx = 188 - contents.text_size(day + date.to_s + mois + année.to_s).width
    self.contents.draw_text(0, 64, 188, 32, day, 0)
    x = contents.text_size(day).width + cx/3
    self.contents.draw_text(x, 64, 188, 32, date.to_s, 0)
    x = contents.text_size(day + date.to_s).width + cx/3 + cx/3
    self.contents.draw_text(x, 64, 188, 32, mois, 0)
    x = contents.text_size(day + date.to_s + mois).width + cx
    self.contents.draw_text(x, 64, 188, 32, année.to_s, 0)
    self.contents.font.color = system_color
    self.contents.draw_text(0, 32, 188, 32, "Date :", 0)
  end
  #--------------------------------------------------------------------------
  #
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
 


Vous remarquerez que j'ai agrandi la largeur de la fenêtre, pour des raisons de place, à vous de voir ce que vous pouvez en tirer.

PS : Petit plus :
Avec la simple ligne suivante :

Portion de code : Tout sélectionner

1
text = Time.now.strftime("%x")


vous pouvez obtenir dans votre variable "text" selon ce que vous mettez entre parenthèse divers paramètres :
%a le nom abrégé de jour de la semaine en anglais(Sun, Mon...)
%A le nom du jour de la semaine en anglais (Sunday, Monday...)
%b le nom abrégé du mois en anglais (Jan, Feb...)
%B le nom du mois en anglais (January, February...)
%c représentation de la date sous la forme: jj-mm-aa
%d le jour du mois (01->31)
%H heures sous format 24h (00->23)
%I heures sous format 12h (01->12)
%j numéro du jour sur une année (001->366)
%M indicateur méridien de l'heure (00->59)
%p affichage de AM ou PM en fonction de l'heure
%S affichage des secondes (00->60)
%M affichage des minutes
%y affichage de l'année

Voilà, remplacez le "x" du code ci-dessus par une des valeurs de la citation ci-dessus pour obtenir l'information correspondante. (Source de la citation)



Aucun commentaire n'a été posté pour le moment.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts | Ressources | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers