rpgmakerxp.frbb.net

Un forum basé sur le rpg making via rmxp
 
AccueilPortailFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 horloge et temps réel

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Invité
Invité



MessageSujet: horloge et temps réel   Ven 5 Oct - 22:11

Bonjour à vous, ami(e)s lecteurs(rices).
Auteur inconnu
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"):

Code:
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" :
$time = Horloge.new
Maintenant grâce à la variable "$time", vous avez accès à plusieur 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")
Code:
#==============================================================================
# ¦ 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 :
text = Time.now.strftime("%x")
vous pouvez obtenir dans votre variable "text" selon ce que vous mettez entre parenthèse divers paramètres :
Citation:
%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.
Options possibles:
Vous pouvez rajouter ou remplacer les options affichées par d'autres. Pour cela il faut les ajouter dans la ligne suivante entre les guillements:
text = @time_string.strftime("%c %H:%M")
%y affichage de l'année
Revenir en haut Aller en bas
berka
Admin
Admin
avatar

Masculin
Nombre de messages : 842
Age : 27
Localisation : Devant mon ordi!
Projet en cours: : Secret ^^
Date d'inscription : 16/03/2007

niveau du maker
mapping:
0/100  (0/100)
events:
50/100  (50/100)
scriptage:
100/100  (100/100)

MessageSujet: Re: horloge et temps réel   Dim 7 Oct - 19:59

Merci pour le partage !
Ce script sera surement utile dans de nombreux projets !
Connais tu l'auteur ?

_________________

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakerxp.frbb.net
Invité
Invité



MessageSujet: Re: horloge et temps réel   Dim 7 Oct - 20:35

Hélas non!
dois-je rajouter "script anonyme"?
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: horloge et temps réel   

Revenir en haut Aller en bas
 
horloge et temps réel
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Horloge ! Dieu sinistre, effrayant, impassible [...] ? Amy (L) & Lilieth
» Un Temps pour chaque chose:Le Choix Judicieux
» "Ô temps ! suspends ton vol, et vous, heures propices ! ..."{Frédérick & Milena}
» Prix du petrole a travers le temps
» Arrêter le temps...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
rpgmakerxp.frbb.net :: Une question, un bug ? :: Au sujet des scripts-
Sauter vers: