Corbaque Chercheur
Nombre de messages : 10 Age : 33 Projet Principal : X-Shot II Surnom : Lordryk Date d'inscription : 11/03/2007
| Sujet: [Alpha] Horloge Ven 30 Mar - 10:36 | |
| Un script que j'ai commencé hier, j'ai la flemme de finir ^^ C'est un travail d'optimisation, de commentation, et d'amélioration qu'il faut, mais le systême est déjà parfaitement stable, et déjà plutot joli. Petit screen : Et le script actuel : - Code:
-
#=================================== # Horloge #--------------------------------------------------------------- # Créé par Corbaque #--------------------------------------------------------------- # Version 0.8 #=================================== reveille = [21, 44] #--------------------------------------------------------------- # Fond musicale #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # bgm("nom_sans_extension", volume*, tempo*) #--------------------------------------------------------------- def bgm(n,v=100,p=100) # Ajoute le chemin de dossier s'il n'y est pas # déjà n = "Audio/BGM/"+ n if n[/Audio/] != "Audio" # Mise en mémoire $bgm = [n,v,p] # Joue le fond musicale Audio.bgm_play(n, v, p) end #--------------------------------------------------------------- # Effets sonores #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # se("nom_sans_extension", volume*, tempo*) #--------------------------------------------------------------- def se(n,v=100,p=100) # Ajoute le chemin de dossier s'il n'y est pas # déjà n = "Audio/SE/"+ n if n[/Audio/] != "Audio" # Joue le fond musicale Audio.se_play(n, v, p) end $bgm = [nil, nil, nil] class Vecteur attr_accessor :x attr_accessor :y attr_accessor :sens attr_accessor :norme def initialize(arg, sens=1) self.x = 0 self.y = 0 self.sens = sens self.x = arg[0] self.y = arg[1] self.norme = Math.hypot(x, y) end def draw(x, y, bitmap, color=Color.new(255,255,255)) self.norme.to_i.times do |i| px = x + i * self.x / self.norme * self.sens py = y + i * self.y / self.norme * self.sens bitmap.set_pixel(px, py, color) end end end a = Vecteur.new([200, 0], 1) f = Sprite.new f.bitmap = Bitmap.new(640,480) 640.times do |x| 480.times do |y| h = Math.hypot(x-320, y-240) if h < 200 f.bitmap.set_pixel(x, y, Color.new(h, h, 200,h)) else f.bitmap.set_pixel(x, y, Color.new(h, h,h)) end end end f.bitmap.font.color = Color.new(0,0,0) 12.times do |i| x = Math.sin(i * Math::PI / 6 + Math::PI) y = Math.cos(i * Math::PI / 6 + Math::PI) f.bitmap.draw_text(305+x*180, 240+y*180-30, 30,60, (12-i).to_s, 1) 55.times do |n| f.bitmap.set_pixel(x*(200+n)+320, y*(200+n)+240, Color.new(255, 255, 255)) end end b = Sprite.new b.bitmap = Bitmap.new(640,480) b.bitmap.font.color = Color.new(0,0,0,120) aiguille = [] 3.times do |i| aiguille[i] = Sprite.new aiguille[i].bitmap = Bitmap.new(i * 50 + 100, 9) aiguille[i].bitmap.fill_rect(0, 3, i * 50 + 100, 1, Color.new(255,255,255, 155)) aiguille[i].bitmap.fill_rect(0, 5, i * 50 + 100, 1, Color.new(255,255,255, 155)) aiguille[i].bitmap.fill_rect(0, 4, i * 50 + 100, 1, Color.new(255,255,255)) aiguille[i].oy = 5 aiguille[i].x = 320 aiguille[i].y = 240 end seconde = 0 Graphics.frame_rate = 20 loop do Graphics.update mseconde = seconde seconde = Time.now.to_s[17,2].to_i minute = Time.now.to_s[14,2].to_i + seconde / 60.0 heure = Time.now.to_s[11,2].to_i + minute / 60.0 if mseconde != seconde Graphics.frame_count = 0 if seconde % 2 == 0 se("042-knock03") else se("043-knock04") end end if heure == reveille[0] and minute == reveille[1] bgm("004-Battle04") if $bgm[0] == nil else Audio.bgm_stop unless $bgm[0] == nil end b.bitmap.clear b.bitmap.font.size = 22 b.bitmap.draw_text(15,0,640,50, Time.now.to_s[11,8] + "." + (Graphics.frame_count*0.5%10).to_i.to_s) b.bitmap.draw_text(15,430,640,50, "Alarme : " + reveille[0].to_s + "h" + reveille[1].to_s) b.bitmap.draw_text(-15,430,640,50, "© rpgmxp.ch", 2) b.bitmap.draw_text(-15,0,640,50, "Horologe", 2) b.bitmap.font.size = 10 b.bitmap.draw_text(-15,20,640,50, "Script de Corbaque (Mars 2007)", 2) aiguille[2].angle = -seconde * 360 / 60.0 + 90 aiguille[1].angle = -minute * 360 / 60.0 + 90 aiguille[0].angle = -heure * 360 / 24.0 + 90 end Voili voilou | |
|