|
| Auteur | Message |
---|
Raven Administrateur
Messages postés : 1338 Date d'inscription : 20/04/2013 Jauge LPC :
| Sujet: Pluie améliorée Jeu 23 Juil 2015 - 18:29 | |
| Pluie amélioréeAuteur : Inconnu Description :- Visuel des gouttes qui tombent dans l'eau. - Reflet du paysage Utilisation :- Mettez ce script au-dessus de Main. - Ligne 9 du script, choisissez le numéro de terrain que auquel vous attribuerez la fonction. - Base de données (F9) > Gestion des chipsets > Mettre "1" (car ici c'est celui que j'ai configuré pour le jeu) sur l'eau et toutes ressources dans le même genre. - Pour le reflet du paysage il s'agit simplement du panorama paramétré. - L'image de l'eau doit s'appeler "wave". - Code:
-
#============================================================================== # ** Sprite_Rain #------------------------------------------------------------------------------ # This sprite is used to display animations at the water's surface during # raining. #============================================================================== class Sprite_Rain < Sprite TERRAIN_TAG = 1 # Choose the terrain tag # This scipt need a picture named "wave" 20x18 #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(viewport) super(viewport) self.bitmap = Bitmap.new(640,480) @waves = [] end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose if self.bitmap != nil self.bitmap.dispose end super end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super self.bitmap.clear return if $game_screen.weather_max == 0 or $game_screen.weather_type == 3 x = $game_map.display_x/128 y = $game_map.display_y/128 for i in x...x+20 for j in y...y+15 if $game_map.terrain_tag(i,j) == TERRAIN_TAG r = rand(1000) if r < $game_screen.weather_max/2 x2 = 32*i + 12 + r/5 y2 = 32*j + 12 + r/5 down = $game_map.terrain_tag(i,j+1) != TERRAIN_TAG up = $game_map.terrain_tag(i,j-1) != TERRAIN_TAG next if up and down y2 -= 16 if down y2 += 4 if up @waves.push(Wave.new(x2,y2)) end end end end for i in 0...@waves.size @waves[i].life += 1 life = @waves[i].life if life == 10 @waves[i] = nil else rect = Rect.new(@waves[i].x-$game_map.display_x/4-life/2, @waves[i].y-$game_map.display_y/4-life/2, 5+life,5+life) self.bitmap.stretch_blt(rect, RPG::Cache.picture("wave"), Rect.new(0,0,20,18),255-25*life) end end @waves.compact! end end #============================================================================== # ** Wave #============================================================================== class Wave attr_accessor :life, :x, :y #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(x,y) @life = 0 @x = x @y = y end end module RPG class Weather def initialize(viewport = nil) @type = 0 @max = 0 @ox = 0 @oy = 0 color1 = Color.new(200, 200, 255, 255) color2 = Color.new(255, 255, 255, 128) @rain_bitmap = Bitmap.new(2, @rain_bitmap.fill_rect(0, 4, 1, 4, color1) @rain_bitmap.fill_rect(1, 0, 1, 4, color1) @storm_bitmap = Bitmap.new(3, 12) @storm_bitmap.fill_rect(2, 0, 1, 4, color2) @storm_bitmap.fill_rect(1, 4, 1, 4, color1) @storm_bitmap.fill_rect(0, 8, 1, 4, color2) @snow_bitmap = Bitmap.new(4, 4) @snow_bitmap.fill_rect(0, 1, 4, 2, color2) @snow_bitmap.fill_rect(1, 0, 2, 4, color2) @snow_bitmap.fill_rect(1, 1, 2, 2, color1) @sprites = [] for i in 1..40 sprite = Sprite.new(viewport) sprite.z = 1000 sprite.visible = false sprite.opacity = 0 @sprites.push(sprite) end end def update return if @type == 0 for i in 1..@max sprite = @sprites[i] if sprite == nil break end if @type == 1 sprite.x -= 2 sprite.y += 20 sprite.opacity -= 8 end if @type == 2 sprite.x -= 5 sprite.y += 16 sprite.opacity -= 12 end if @type == 3 sprite.x -= 1 sprite.y += 6 sprite.opacity -= 3 end x = sprite.x - @ox y = sprite.y - @oy if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500 sprite.x = rand(800) - 50 + @ox sprite.y = rand(800) - 200 + @oy sprite.opacity = 255 end end end end end #============================================================================== # ** Spriteset_Map #------------------------------------------------------------------------------ # This class brings together map screen sprites, tilemaps, etc. # It's used within the Scene_Map class. #============================================================================== class Spriteset_Map #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize # Make viewports @viewport1 = Viewport.new(0, 0, 640, 480) @viewport2 = Viewport.new(0, 0, 640, 480) @viewport3 = Viewport.new(0, 0, 640, 480) @viewport2.z = 200 @viewport3.z = 5000 # Make tilemap @tilemap = Tilemap.new(@viewport1) @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name) for i in 0..6 autotile_name = $game_map.autotile_names[i] @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name) end @tilemap.map_data = $game_map.data @tilemap.priorities = $game_map.priorities # Make panorama plane @panorama = Plane.new(@viewport1) @panorama.z = -1000 # Make fog plane @fog = Plane.new(@viewport1) @fog.z = 3000 # Make rain bitmap @rain = Sprite_Rain.new(@viewport1) @rain.z = 0 # Make character sprites @character_sprites = [] for i in $game_map.events.keys.sort sprite = Sprite_Character.new(@viewport1, $game_map.events[i]) @character_sprites.push(sprite) end @character_sprites.push(Sprite_Character.new(@viewport1, $game_player)) # Make weather @weather = RPG::Weather.new(@viewport1) # Make picture sprites @picture_sprites = [] for i in 1..50 @picture_sprites.push(Sprite_Picture.new(@viewport2, $game_screen.pictures[i])) end # Make timer sprite @timer_sprite = Sprite_Timer.new # Frame update update end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose # Dispose of tilemap @tilemap.tileset.dispose for i in 0..6 @tilemap.autotiles[i].dispose end @tilemap.dispose # Dispose of panorama plane @panorama.dispose # Dispose of fog plane @fog.dispose # Dispose of rain bitmap @rain.dispose # Dispose of character sprites for sprite in @character_sprites sprite.dispose end # Dispose of weather @weather.dispose # Dispose of picture sprites for sprite in @picture_sprites sprite.dispose end # Dispose of timer sprite @timer_sprite.dispose # Dispose of viewports @viewport1.dispose @viewport2.dispose @viewport3.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # If panorama is different from current one if @panorama_name != $game_map.panorama_name or @panorama_hue != $game_map.panorama_hue @panorama_name = $game_map.panorama_name @panorama_hue = $game_map.panorama_hue if @panorama.bitmap != nil @panorama.bitmap.dispose @panorama.bitmap = nil end if @panorama_name != "" @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue) end Graphics.frame_reset end # If fog is different than current fog if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue @fog_name = $game_map.fog_name @fog_hue = $game_map.fog_hue if @fog.bitmap != nil @fog.bitmap.dispose @fog.bitmap = nil end if @fog_name != "" @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue) end Graphics.frame_reset end # Update rain @rain.update # Update tilemap @tilemap.ox = $game_map.display_x / 4 @tilemap.oy = $game_map.display_y / 4 @tilemap.update # Update panorama plane @panorama.ox = $game_map.display_x / 8 @panorama.oy = $game_map.display_y / 8 # Update fog plane @fog.zoom_x = $game_map.fog_zoom / 100.0 @fog.zoom_y = $game_map.fog_zoom / 100.0 @fog.opacity = $game_map.fog_opacity @fog.blend_type = $game_map.fog_blend_type @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy @fog.tone = $game_map.fog_tone # Update character sprites for sprite in @character_sprites sprite.update end # Update weather graphic @weather.type = $game_screen.weather_type @weather.max = $game_screen.weather_max @weather.ox = $game_map.display_x / 4 @weather.oy = $game_map.display_y / 4 @weather.update # Update picture sprites for sprite in @picture_sprites sprite.update end # Update timer sprite @timer_sprite.update # Set screen color tone and shake position @viewport1.tone = $game_screen.tone @viewport1.ox = $game_screen.shake # Set screen flash color @viewport3.color = $game_screen.flash_color # Update viewports @viewport1.update @viewport3.update end end Ressource : O la voit pas sur le blanc du forum mais elle est juste en dessous hein x) - Citation :
Dernière édition par Raven le Jeu 23 Juil 2015 - 21:08, édité 2 fois |
| | | Atwars Modérateur en chef
Messages postés : 1569 Date d'inscription : 11/04/2012 Jauge LPC :
| Sujet: Re: Pluie améliorée Jeu 23 Juil 2015 - 18:36 | |
| Merci du partage, des points pour toi C'est largement faisable en event également |
| | | Delta Membre V.I.P.
Messages postés : 3126 Date d'inscription : 18/10/2011 Jauge LPC :
| Sujet: Re: Pluie améliorée Jeu 23 Juil 2015 - 19:24 | |
| Sympa mais peut on virer l'effet panorama même s'il y a un panorama sur la map ? |
| | | Raven Administrateur
Messages postés : 1338 Date d'inscription : 20/04/2013 Jauge LPC :
| Sujet: Re: Pluie améliorée Jeu 23 Juil 2015 - 19:57 | |
| J'pense que via le script ouais. J'suis pas expert mais à mon avis ça se situe dans les lignes 293 à 303. |
| | | Zexion Administrateur
Messages postés : 6228 Date d'inscription : 04/01/2012 Jauge LPC :
| Sujet: Re: Pluie améliorée Jeu 23 Juil 2015 - 20:21 | |
| J'imagine qu'il faut donner un nom spécifique à la ressource non ? Je l'ai aussi mise en citation pour qu'elle soit plus visible. Merci du partage. |
| | | Raven Administrateur
Messages postés : 1338 Date d'inscription : 20/04/2013 Jauge LPC :
| Sujet: Re: Pluie améliorée Jeu 23 Juil 2015 - 20:47 | |
| Ouais, faut l'appeler "wave.png". T'as raison de demander. J'vais rajouter ça dans l'utilisation. |
| | | Siegfried Mage (niveau 2)
Messages postés : 286 Date d'inscription : 31/07/2011 Jauge LPC :
| Sujet: Re: Pluie améliorée Jeu 23 Juil 2015 - 20:58 | |
| J'ai utilisé un truc similaire pour ma couche de reflets. Les gouttes apparaissent sur le panorama, qui se trouve sous les tiles. En gros, partout où la map a un "trou" (pas de tile), les gouttes tombent. |
| | | Myko Paysan (niveau 1)
Messages postés : 3 Date d'inscription : 24/07/2015 Jauge LPC :
| Sujet: Re: Pluie améliorée Ven 24 Juil 2015 - 2:07 | |
| Hello ! Bon voilà, je passais par là (au passage superbe forum ), et j'ai vu ce script, qui m'intéresse beaucoup, seulement, je me pose quelques questions... Tout d'abord comment lancer ce script ? Il est dit dans le script que cela se lance lorsqu'il pleut, seulement est-ce avec ce script là, ou avec n'importe quel script ? Ou bien alors tout simplement avec les effets de météo de base de RMXP ? Et aussi, lorsque je lance mon projet ça me dit qu'il y a une erreur ligne 102 :/ Et comme je suis un peu...Nul en script, ben voilà quoi :ahde: |
| | | Raven Administrateur
Messages postés : 1338 Date d'inscription : 20/04/2013 Jauge LPC :
| Sujet: Re: Pluie améliorée Ven 24 Juil 2015 - 2:16 | |
| Siegried > Désolé pour la question con, mais ton tile vide a t-il un numéro de terrain ?
Myko> Ça fonctionne avec l'effet météo de base de RMXP, j'ai pas testé avec des script type pluie améliorée, faudrait voir.
Pour le bug, je sais pas, enfin moi ça m'le fait pas. Faudrait voir avec un d'nos pros des codes pour ça. °°' Ca semble venir de la gestion de couleur de l'image après... |
| | | Zexion Administrateur
Messages postés : 6228 Date d'inscription : 04/01/2012 Jauge LPC :
| Sujet: Re: Pluie améliorée Ven 24 Juil 2015 - 2:39 | |
| - Raven a écrit:
- Siegried > Désolé pour la question con, mais ton tile vide a t-il un numéro de terrain ?
Nan mais je ne crois pas qu'il aie un problème. Il décrit juste sa façon se faire sur son projet à mon avis. x) |
| | | Raven Administrateur
Messages postés : 1338 Date d'inscription : 20/04/2013 Jauge LPC :
| Sujet: Re: Pluie améliorée Ven 24 Juil 2015 - 3:39 | |
| Putain j'suis grave à l'Ouest aujourd'hui. |
| | | Myko Paysan (niveau 1)
Messages postés : 3 Date d'inscription : 24/07/2015 Jauge LPC :
| Sujet: Re: Pluie améliorée Ven 24 Juil 2015 - 4:02 | |
| Bon bon bon, j'ai réussi à le faire marcher c:
Seul problème maintenant, c'est que une fois la pluie activée, mon jeu lag à mort :c Y'a pas un moyen de remédier à ça ? :/ |
| | | Siegfried Mage (niveau 2)
Messages postés : 286 Date d'inscription : 31/07/2011 Jauge LPC :
| Sujet: Re: Pluie améliorée Ven 24 Juil 2015 - 8:37 | |
| Rah bon sang, tout un super post qui vient de s'effacer parce que j'ai cliqué sur un lien...
Bref, je disais qu'en réexaminant le script, j'ai un peu raconté des bêtises... Petite leçon sur la façon dont les maps sont affichées sous RPG Maker XP : La map est un gros ensemble de sprites (Spriteset_Map) répartis sur trois couches, ou viewports. -Le viewport 1 contient, dans cet ordre, de bas en haut : panorama, tiles + characters, brouillard. -Le viewport 2 contient les pictures, les images affichées par événement. -Le viewport 3 sert à flasher l'écran.
Je pensais que le codeur avait inséré les gouttes entre le panorama et les tiles, mais il l'a fait entre les tiles et le brouillard, ce qui semble bien plus logique. La question est : a-t-il prévu ce qui se passe si un personnage marche sur l'eau, par exemple ? Les gouttes s'affichent-elles sur lui ou sous lui (c'est plus compliqué à cause des priorités de superposition, puisque chaque "ligne" de map est à hauteur différente) ?
Myko : la deuxième chose qu'il faut savoir avec ce script, c'est que le codeur a prévu des systèmes pour limiter le lag, parce que c'est potentiellement lourd comme affichage. Si j'ai bien compris, chaque goutte est un sprite à afficher et à mettre à jour. Edit : En fait, il a fait un très gros sprite 640x480 qui affiche les gouttes, d'où peut-être le lag... Le codeur a prévu d'utiliser le type de terrain et il n'affiche tout ceci que dans la zone visible à l'écran (20x15 carreaux). La météo elle aussi peut faire lagger, les créateurs du logiciel ont limité le nombre de gouttes/flocons visibles à l'écran pour cette raison (on peut les augmenter ce maximum avec les ordinateurs modernes, c'est bien plus joli). Tout ça pour dire que ça peut lagger, et qu'il faut peut-être vérifier combien de charas tu as sur ta map, etc...
Edit : et aussi si tu utilises des scripts qui affichent des trucs sur ta map (fenêtre, autres scripts de météo, etc...). |
| | | Valefor Ancien staffeux
Messages postés : 1945 Date d'inscription : 02/04/2012 Jauge LPC :
| Sujet: Re: Pluie améliorée Ven 24 Juil 2015 - 11:05 | |
| Syntax error ligne 102 pour moi... |
| | | Siegfried Mage (niveau 2)
Messages postés : 286 Date d'inscription : 31/07/2011 Jauge LPC :
| Sujet: Re: Pluie améliorée Ven 24 Juil 2015 - 11:19 | |
| Le bug vient de cette ligne (100 ou 101) : - Code:
-
@rain_bitmap = Bitmap.new(2, Remplace par : - Code:
-
@rain_bitmap = Bitmap.new(2, 8 ) J'ai mis 8 parce qu'il me semble que ça ne dépasse pas, mais il faudrait vérifier le script original, je ne sais pas pourquoi c'est tronqué. De plus, il a remplacé les sprites de gouttes par quelque chose de plus petit (et de plus réaliste), donc je ne peux pas vérifier avec les scripts de base.Edit : C'est bien 8 qu'il faut mettre (vire l'espace après le 8 si tu veux...), le forum considère "8 )" comme un smiley et le supprime... :/Sinon, je viens de recréer ce script dans mon projet, mais à ma manière, pour les gouttes sur l'eau. Vraiment rigolo. |
| | | Myko Paysan (niveau 1)
Messages postés : 3 Date d'inscription : 24/07/2015 Jauge LPC :
| Sujet: Re: Pluie améliorée Ven 24 Juil 2015 - 13:26 | |
| C'est vrai que j'ai pas mal d'events inutiles, je vais modifier tout ça et on verra bien Comment ça "à ta manière" ? p: |
| | | Siegfried Mage (niveau 2)
Messages postés : 286 Date d'inscription : 31/07/2011 Jauge LPC :
| Sujet: Re: Pluie améliorée Ven 24 Juil 2015 - 14:31 | |
| Juste utilisé la méthode que je décrivais plus tôt, c'est spécifique à mon projet. Moins confortable à utiliser que le script ici, je pense. |
| | | Valefor Ancien staffeux
Messages postés : 1945 Date d'inscription : 02/04/2012 Jauge LPC :
| Sujet: Re: Pluie améliorée Sam 25 Juil 2015 - 1:54 | |
| Edit, maintenant ça marche, enfin j'utilise également le script de météo amélioré (avec chute de feuille, grêle etc) et la pluie générée parce script est bien prise en compte, par contre dés que l'on fait échap ça beugue -message "Script Weather (météo améliorée) line 73:NoMethodError occured. undefined 'dispose' for nil:NilClass le script en question, au cas ou. - Spoiler:
- Code:
-
#=========================== # ccoa's weather script # with ideas by ScriptKitty and Mr.DJ #=========================== # Weather Types: # 1 - rain # 2 - storm # 3 - snow # 4 - hail # 5 - rain with thunder and lightning # 6 - falling leaves (autumn) # 7 - blowing leaves (autumn) # 8 - swirling leaves (autumn) # 9 - falling leaves (green) # 10 - cherry blossom (sakura) petals # 11 - rose petals # 12 - feathers # 13 - blood rain # 14 - sparkles # 15 - user defined # # Weather Power: # An integer from 0-40. 0 = no weather, 40 = 400 sprites # # Usage: # Create a call script with the following: # $game_screen.weather(type, power, hue) # # Usage of user-defined weather: # Look at the following globals:
$WEATHER_UPDATE = false # the $WEATHER_IMAGES array has changed, please update $WEATHER_IMAGES = [] # the array of picture names to use $WEATHER_X = 0 # the number of pixels the image should move horizontally (positive = right, negative = left) $WEATHER_Y = 0 # the number of pizels the image should move vertically (positive = down, negative = up) $WEATHER_FADE = 0 # how much the image should fade each update (0 = no fade, 255 = fade instantly) $WEATHER_ANIMATED = false # whether or not the image should cycle through all the images
module RPG class Weather def initialize(viewport = nil) @type = 0 @max = 0 @ox = 0 @oy = 0 @count = 0 @current_pose = [] @info = [] @countarray = []
make_bitmaps
# **** ccoa **** for i in 1..500 sprite = Sprite.new(viewport) sprite.z = 1000 sprite.visible = false sprite.opacity = 0 @sprites.push(sprite) @current_pose.push(0) @info.push(rand(50)) @countarray.push(rand(15)) end end
def dispose for sprite in @sprites sprite.dispose end @rain_bitmap.dispose @storm_bitmap.dispose @snow_bitmap.dispose @hail_bitmap.dispose @petal_bitmap.dispose @blood_rain_bitmap.dispose for image in @autumn_leaf_bitmaps image.dispose end for image in @green_leaf_bitmaps image.dispose end for image in @rose_bitmaps image.dispose end for image in @feather_bitmaps image.dispose end for image in @sparkle_bitmaps image.dispose end for image in @user_bitmaps image.dispose end $WEATHER_UPDATE = true end
def type=(type) return if @type == type @type = type case @type when 1 # rain bitmap = @rain_bitmap when 2 # storm bitmap = @storm_bitmap when 3 # snow bitmap = @snow_bitmap when 4 # hail bitmap = @hail_bitmap when 5 # rain w/ thunder and lightning bitmap = @rain_bitmap @thunder = true when 6 # falling autumn leaves bitmap = @autumn_leaf_bitmaps[0] when 7 # blowing autumn leaves bitmap = @autumn_leaf_bitmaps[0] when 8 # swirling autumn leaves bitmap = @autumn_leaf_bitmaps[0] when 9 # falling green leaves bitmap = @green_leaf_bitmaps[0] when 10 # sakura petals bitmap = @petal_bitmap when 11 # rose petals bitmap = @rose_bitmaps[0] when 12 # feathers bitmap = @feather_bitmaps[0] when 13 # blood rain bitmap = @blood_rain_bitmap when 14 # sparkles bitmap = @sparkle_bitmaps[0] when 15 # user-defined bitmap = @user_bitmaps[rand(@user_bitmaps.size)] else bitmap = nil end if @type != 5 @thunder = false end # **** ccoa **** for i in 1..500 sprite = @sprites[i] if sprite != nil sprite.visible = (i <= @max) sprite.bitmap = bitmap end end end
def ox=(ox) return if @ox == ox; @ox = ox for sprite in @sprites sprite.ox = @ox end end
def oy=(oy) return if @oy == oy; @oy = oy for sprite in @sprites sprite.oy = @oy end end
def max=(max) return if @max == max; # **** ccoa **** @max = [[max, 0].max, 500].min for i in 1..500 sprite = @sprites[i] if sprite != nil sprite.visible = (i <= @max) end end end
def update return if @type == 0 for i in 1..@max sprite = @sprites[i] if sprite == nil break end if @type == 1 or @type == 5 or @type == 13 # rain sprite.x -= 2 sprite.y += 16 sprite.opacity -= 8 if @thunder and (rand(8000 - @max) == 0) $game_screen.start_flash(Color.new(255, 255, 255, 255), 5) Audio.se_play("Audio/SE/061-Thunderclap01") end end if @type == 2 # storm sprite.x -= 8 sprite.y += 16 sprite.opacity -= 12 end if @type == 3 # snow sprite.x -= 2 sprite.y += 8 sprite.opacity -= 8 end if @type == 4 # hail sprite.x -= 1 sprite.y += 18 sprite.opacity -= 15 end if @type == 6 # falling autumn leaves @count = rand(20) if @count == 0 sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]] @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size end sprite.x -= 1 sprite.y += 1 end if @type == 7 # blowing autumn leaves @count = rand(20) if @count == 0 sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]] @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size end sprite.x -= 10 sprite.y += (rand(4) - 2) end if @type == 8 # swirling autumn leaves @count = rand(20) if @count == 0 sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]] @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size end if @info[i] != 0 if @info[i] >= 1 and @info[i] <= 10 sprite.x -= 3 sprite.y -= 1 elsif @info[i] >= 11 and @info[i] <= 16 sprite.x -= 1 sprite.y -= 2 elsif @info[i] >= 17 and @info[i] <= 20 sprite.y -= 3 elsif @info[i] >= 21 and @info[i] <= 30 sprite.y -= 2 sprite.x += 1 elsif @info[i] >= 31 and @info[i] <= 36 sprite.y -= 1 sprite.x += 3 elsif @info[i] >= 37 and @info[i] <= 40 sprite.x += 5 elsif @info[i] >= 41 and @info[i] <= 46 sprite.y += 1 sprite.x += 3 elsif @info[i] >= 47 and @info[i] <= 58 sprite.y += 2 sprite.x += 1 elsif @info[i] >= 59 and @info[i] <= 64 sprite.y += 3 elsif @info[i] >= 65 and @info[i] <= 70 sprite.x -= 1 sprite.y += 2 elsif @info[i] >= 71 and @info[i] <= 81 sprite.x -= 3 sprite.y += 1 elsif @info[i] >= 82 and @info[i] <= 87 sprite.x -= 5 end @info[i] = (@info[i] + 1) % 88 else if rand(200) == 0 @info[i] = 1 end sprite.x -= 5 sprite.y += 1 end end if @type == 9 # falling green leaves if @countarray[i] == 0 @current_pose[i] = (@current_pose[i] + 1) % @green_leaf_bitmaps.size sprite.bitmap = @green_leaf_bitmaps[@current_pose[i]] @countarray[i] = rand(15) end @countarray[i] = (@countarray[i] + 1) % 15 sprite.y += 1 end if @type == 10 # sakura petals if @info[i] < 25 sprite.x -= 1 else sprite.x += 1 end @info[i] = (@info[i] + 1) % 50 sprite.y += 1 end if @type == 11 # rose petals @count = rand(20) if @count == 0 sprite.bitmap = @rose_bitmaps[@current_pose[i]] @current_pose[i] = (@current_pose[i] + 1) % @rose_bitmaps.size end if @info[i] % 2 == 0 if @info[i] < 10 sprite.x -= 1 else sprite.x += 1 end end sprite.y += 1 end if @type == 12 # feathers if @countarray[i] == 0 @current_pose[i] = (@current_pose[i] + 1) % @feather_bitmaps.size sprite.bitmap = @feather_bitmaps[@current_pose[i]] end @countarray[i] = (@countarray[i] + 1) % 15 if rand(100) == 0 sprite.x -= 1 end if rand(100) == 0 sprite.y -= 1 end if @info[i] < 50 if rand(2) == 0 sprite.x -= 1 else sprite.y -= 1 end else if rand(2) == 0 sprite.x += 1 else sprite.y += 1 end end @info[i] = (@info[i] + 1) % 100 end if @type == 14 # sparkles if @countarray[i] == 0 @current_pose[i] = (@current_pose[i] + 1) % @sparkle_bitmaps.size sprite.bitmap = @sparkle_bitmaps[@current_pose[i]] end @countarray[i] = (@countarray[i] + 1) % 15 sprite.y += 1 sprite.opacity -= 1 end if @type == 15 # user-defined if $WEATHER_UPDATE update_user_defined $WEATHER_UPDATE = false end if $WEATHER_ANIMATED and @countarray[i] == 0 @current_pose[i] = (@current_pose[i] + 1) % @user_bitmaps.size sprite.bitmap = @user_bitmaps[@current_pose[i]] end @countarray[i] = (@countarray[i] + 1) % 15 sprite.x += $WEATHER_X sprite.y += $WEATHER_Y sprite.opacity -= $WEATHER_FADE end
x = sprite.x - @ox y = sprite.y - @oy if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500 sprite.x = rand(800) - 50 + @ox sprite.y = rand(800) - 200 + @oy sprite.opacity = 255 end end end
def make_bitmaps color1 = Color.new(255, 255, 255, 255) color2 = Color.new(255, 255, 255, 128) @rain_bitmap = Bitmap.new(7, 56) for i in 0..6 @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1) end @storm_bitmap = Bitmap.new(34, 64) for i in 0..31 @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2) @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1) @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2) end @snow_bitmap = Bitmap.new(6, 6) @snow_bitmap.fill_rect(0, 1, 6, 4, color2) @snow_bitmap.fill_rect(1, 0, 4, 6, color2) @snow_bitmap.fill_rect(1, 2, 4, 2, color1) @snow_bitmap.fill_rect(2, 1, 2, 4, color1) @sprites = []
blueGrey = Color.new(215, 227, 227, 150) grey = Color.new(214, 217, 217, 150) lightGrey = Color.new(233, 233, 233, 250) lightBlue = Color.new(222, 239, 243, 250) @hail_bitmap = Bitmap.new(4, 4) @hail_bitmap.fill_rect(1, 0, 2, 1, blueGrey) @hail_bitmap.fill_rect(0, 1, 1, 2, blueGrey) @hail_bitmap.fill_rect(3, 1, 1, 2, grey) @hail_bitmap.fill_rect(1, 3, 2, 1, grey) @hail_bitmap.fill_rect(1, 1, 2, 2, lightGrey) @hail_bitmap.set_pixel(1, 1, lightBlue)
color3 = Color.new(255, 167, 192, 255) # light pink color4 = Color.new(213, 106, 136, 255) # dark pink @petal_bitmap = Bitmap.new(4, 4) #This creates a new bitmap that is 4 x 4 pixels @petal_bitmap.fill_rect(0, 3, 1, 1, color3) # this makes a 1x1 pixel "rectangle" at the 0, 3 pixel of the image (upper left corner is 0, 0) @petal_bitmap.fill_rect(1, 2, 1, 1, color3) @petal_bitmap.fill_rect(2, 1, 1, 1, color3) @petal_bitmap.fill_rect(3, 0, 1, 1, color3) @petal_bitmap.fill_rect(1, 3, 1, 1, color4) @petal_bitmap.fill_rect(2, 2, 1, 1, color4) @petal_bitmap.fill_rect(3, 1, 1, 1, color4)
brightOrange = Color.new(248, 88, 0, 255) orangeBrown = Color.new(144, 80, 56, 255) burntRed = Color.new(152, 0, 0, 255) paleOrange = Color.new(232, 160, 128, 255) darkBrown = Color.new(72, 40, 0, 255) @autumn_leaf_bitmaps = [] @autumn_leaf_bitmaps.push(Bitmap.new(8, 8)) # draw the first of the leaf1 bitmaps @autumn_leaf_bitmaps[0].set_pixel(5, 1, orangeBrown) @autumn_leaf_bitmaps[0].set_pixel(6, 1, brightOrange) @autumn_leaf_bitmaps[0].set_pixel(7, 1, paleOrange) @autumn_leaf_bitmaps[0].set_pixel(3, 2, orangeBrown) @autumn_leaf_bitmaps[0].fill_rect(4, 2, 2, 1, brightOrange) @autumn_leaf_bitmaps[0].set_pixel(6, 2, paleOrange) @autumn_leaf_bitmaps[0].set_pixel(2, 3, orangeBrown) @autumn_leaf_bitmaps[0].set_pixel(3, 3, brightOrange) @autumn_leaf_bitmaps[0].fill_rect(4, 3, 2, 1, paleOrange) @autumn_leaf_bitmaps[0].set_pixel(1, 4, orangeBrown) @autumn_leaf_bitmaps[0].set_pixel(2, 4, brightOrange) @autumn_leaf_bitmaps[0].set_pixel(3, 4, paleOrange) @autumn_leaf_bitmaps[0].set_pixel(1, 5, brightOrange) @autumn_leaf_bitmaps[0].set_pixel(2, 5, paleOrange) @autumn_leaf_bitmaps[0].set_pixel(0, 6, orangeBrown) @autumn_leaf_bitmaps[0].set_pixel(1, 6, paleOrange) @autumn_leaf_bitmaps[0].set_pixel(0, 7, paleOrange)
# draw the 2nd of the leaf1 bitmaps @autumn_leaf_bitmaps.push(Bitmap.new(8, 8)) @autumn_leaf_bitmaps[1].set_pixel(3, 0, brightOrange) @autumn_leaf_bitmaps[1].set_pixel(7, 0, brightOrange) @autumn_leaf_bitmaps[1].set_pixel(3, 1, orangeBrown) @autumn_leaf_bitmaps[1].set_pixel(4, 1, burntRed) @autumn_leaf_bitmaps[1].set_pixel(6, 1, brightOrange) @autumn_leaf_bitmaps[1].set_pixel(0, 2, paleOrange) @autumn_leaf_bitmaps[1].set_pixel(1, 2, brightOrange) @autumn_leaf_bitmaps[1].set_pixel(2, 2, orangeBrown) @autumn_leaf_bitmaps[1].set_pixel(3, 2, burntRed) @autumn_leaf_bitmaps[1].set_pixel(4, 2, orangeBrown) @autumn_leaf_bitmaps[1].set_pixel(5, 2, brightOrange) @autumn_leaf_bitmaps[1].fill_rect(1, 3, 3, 1, orangeBrown) @autumn_leaf_bitmaps[1].fill_rect(4, 3, 2, 1, brightOrange) @autumn_leaf_bitmaps[1].set_pixel(6, 3, orangeBrown) @autumn_leaf_bitmaps[1].set_pixel(2, 4, burntRed) @autumn_leaf_bitmaps[1].fill_rect(3, 4, 3, 1, brightOrange) @autumn_leaf_bitmaps[1].set_pixel(6, 4, burntRed) @autumn_leaf_bitmaps[1].set_pixel(7, 4, darkBrown) @autumn_leaf_bitmaps[1].set_pixel(1, 5, orangeBrown) @autumn_leaf_bitmaps[1].fill_rect(2, 5, 2, 1, brightOrange) @autumn_leaf_bitmaps[1].set_pixel(4, 5, orangeBrown) @autumn_leaf_bitmaps[1].set_pixel(5, 5, burntRed) @autumn_leaf_bitmaps[1].fill_rect(1, 6, 2, 1, brightOrange) @autumn_leaf_bitmaps[1].fill_rect(4, 6, 2, 1, burntRed) @autumn_leaf_bitmaps[1].set_pixel(0, 7, brightOrange) @autumn_leaf_bitmaps[1].set_pixel(5, 7, darkBrown)
# draw the 3rd of the leaf1 bitmaps @autumn_leaf_bitmaps.push(Bitmap.new(8, 8)) @autumn_leaf_bitmaps[2].set_pixel(7, 1, paleOrange) @autumn_leaf_bitmaps[2].set_pixel(6, 2, paleOrange) @autumn_leaf_bitmaps[2].set_pixel(7, 2, orangeBrown) @autumn_leaf_bitmaps[2].set_pixel(5, 3, paleOrange) @autumn_leaf_bitmaps[2].set_pixel(6, 3, brightOrange) @autumn_leaf_bitmaps[2].set_pixel(4, 4, paleOrange) @autumn_leaf_bitmaps[2].set_pixel(5, 4, brightOrange) @autumn_leaf_bitmaps[2].set_pixel(6, 4, orangeBrown) @autumn_leaf_bitmaps[2].fill_rect(2, 5, 2, 1, paleOrange) @autumn_leaf_bitmaps[2].set_pixel(4, 5, brightOrange) @autumn_leaf_bitmaps[2].set_pixel(5, 5, orangeBrown) @autumn_leaf_bitmaps[2].set_pixel(1, 6, paleOrange) @autumn_leaf_bitmaps[2].fill_rect(2, 6, 2, 1, brightOrange) @autumn_leaf_bitmaps[2].set_pixel(4, 6, orangeBrown) @autumn_leaf_bitmaps[2].set_pixel(0, 7, paleOrange) @autumn_leaf_bitmaps[2].set_pixel(1, 7, brightOrange) @autumn_leaf_bitmaps[2].set_pixel(2, 7, orangeBrown)
# draw the 4th of the leaf1 bitmaps @autumn_leaf_bitmaps.push(Bitmap.new(8, 8)) @autumn_leaf_bitmaps[3].set_pixel(3, 0, brightOrange) @autumn_leaf_bitmaps[3].set_pixel(7, 0, brightOrange) @autumn_leaf_bitmaps[3].set_pixel(3, 1, orangeBrown) @autumn_leaf_bitmaps[3].set_pixel(4, 1, burntRed) @autumn_leaf_bitmaps[3].set_pixel(6, 1, brightOrange) @autumn_leaf_bitmaps[3].set_pixel(0, 2, paleOrange) @autumn_leaf_bitmaps[3].set_pixel(1, 2, brightOrange) @autumn_leaf_bitmaps[3].set_pixel(2, 2, orangeBrown) @autumn_leaf_bitmaps[3].set_pixel(3, 2, burntRed) @autumn_leaf_bitmaps[3].set_pixel(4, 2, orangeBrown) @autumn_leaf_bitmaps[3].set_pixel(5, 2, brightOrange) @autumn_leaf_bitmaps[3].fill_rect(1, 3, 3, 1, orangeBrown) @autumn_leaf_bitmaps[3].fill_rect(4, 3, 2, 1, brightOrange) @autumn_leaf_bitmaps[3].set_pixel(6, 3, orangeBrown) @autumn_leaf_bitmaps[3].set_pixel(2, 4, burntRed) @autumn_leaf_bitmaps[3].fill_rect(3, 4, 3, 1, brightOrange) @autumn_leaf_bitmaps[3].set_pixel(6, 4, burntRed) @autumn_leaf_bitmaps[3].set_pixel(7, 4, darkBrown) @autumn_leaf_bitmaps[3].set_pixel(1, 5, orangeBrown) @autumn_leaf_bitmaps[3].fill_rect(2, 5, 2, 1, brightOrange) @autumn_leaf_bitmaps[3].set_pixel(4, 5, orangeBrown) @autumn_leaf_bitmaps[3].set_pixel(5, 5, burntRed) @autumn_leaf_bitmaps[3].fill_rect(1, 6, 2, 1, brightOrange) @autumn_leaf_bitmaps[3].fill_rect(4, 6, 2, 1, burntRed) @autumn_leaf_bitmaps[3].set_pixel(0, 7, brightOrange) @autumn_leaf_bitmaps[3].set_pixel(5, 7, darkBrown)
@green_leaf_bitmaps = [] darkGreen = Color.new(62, 76, 31, 255) midGreen = Color.new(76, 91, 43, 255) khaki = Color.new(105, 114, 66, 255) lightGreen = Color.new(128, 136, 88, 255) mint = Color.new(146, 154, 106, 255)
# 1st leaf bitmap @green_leaf_bitmaps[0] = Bitmap.new(8, @green_leaf_bitmaps[0].set_pixel(1, 0, darkGreen) @green_leaf_bitmaps[0].set_pixel(1, 1, midGreen) @green_leaf_bitmaps[0].set_pixel(2, 1, darkGreen) @green_leaf_bitmaps[0].set_pixel(2, 2, khaki) @green_leaf_bitmaps[0].set_pixel(3, 2, darkGreen) @green_leaf_bitmaps[0].set_pixel(4, 2, khaki) @green_leaf_bitmaps[0].fill_rect(2, 3, 3, 1, midGreen) @green_leaf_bitmaps[0].set_pixel(5, 3, khaki) @green_leaf_bitmaps[0].fill_rect(2, 4, 2, 1, midGreen) @green_leaf_bitmaps[0].set_pixel(4, 4, darkGreen) @green_leaf_bitmaps[0].set_pixel(5, 4, lightGreen) @green_leaf_bitmaps[0].set_pixel(6, 4, khaki) @green_leaf_bitmaps[0].set_pixel(3, 5, midGreen) @green_leaf_bitmaps[0].set_pixel(4, 5, darkGreen) @green_leaf_bitmaps[0].set_pixel(5, 5, khaki) @green_leaf_bitmaps[0].set_pixel(6, 5, lightGreen) @green_leaf_bitmaps[0].set_pixel(4, 6, midGreen) @green_leaf_bitmaps[0].set_pixel(5, 6, darkGreen) @green_leaf_bitmaps[0].set_pixel(6, 6, lightGreen) @green_leaf_bitmaps[0].set_pixel(6, 7, khaki)
# 2nd leaf bitmap @green_leaf_bitmaps[1] = Bitmap.new(8, @green_leaf_bitmaps[1].fill_rect(1, 1, 1, 2, midGreen) @green_leaf_bitmaps[1].fill_rect(2, 2, 2, 1, khaki) @green_leaf_bitmaps[1].set_pixel(4, 2, lightGreen) @green_leaf_bitmaps[1].fill_rect(2, 3, 2, 1, darkGreen) @green_leaf_bitmaps[1].fill_rect(4, 3, 2, 1, lightGreen) @green_leaf_bitmaps[1].set_pixel(2, 4, midGreen) @green_leaf_bitmaps[1].set_pixel(3, 4, darkGreen) @green_leaf_bitmaps[1].set_pixel(4, 4, khaki) @green_leaf_bitmaps[1].fill_rect(5, 4, 2, 1, lightGreen) @green_leaf_bitmaps[1].set_pixel(3, 5, midGreen) @green_leaf_bitmaps[1].set_pixel(4, 5, darkGreen) @green_leaf_bitmaps[1].set_pixel(5, 5, khaki) @green_leaf_bitmaps[1].set_pixel(6, 5, lightGreen) @green_leaf_bitmaps[1].set_pixel(5, 6, darkGreen) @green_leaf_bitmaps[1].fill_rect(6, 6, 2, 1, khaki)
# 3rd leaf bitmap @green_leaf_bitmaps[2] = Bitmap.new(8, @green_leaf_bitmaps[2].set_pixel(1, 1, darkGreen) @green_leaf_bitmaps[2].fill_rect(1, 2, 2, 1, midGreen) @green_leaf_bitmaps[2].set_pixel(2, 3, midGreen) @green_leaf_bitmaps[2].set_pixel(3, 3, darkGreen) @green_leaf_bitmaps[2].set_pixel(4, 3, midGreen) @green_leaf_bitmaps[2].fill_rect(2, 4, 2, 1, midGreen) @green_leaf_bitmaps[2].set_pixel(4, 4, darkGreen) @green_leaf_bitmaps[2].set_pixel(5, 4, lightGreen) @green_leaf_bitmaps[2].set_pixel(3, 5, midGreen) @green_leaf_bitmaps[2].set_pixel(4, 5, darkGreen) @green_leaf_bitmaps[2].fill_rect(5, 5, 2, 1, khaki) @green_leaf_bitmaps[2].fill_rect(4, 6, 2, 1, midGreen) @green_leaf_bitmaps[2].set_pixel(6, 6, lightGreen) @green_leaf_bitmaps[2].set_pixel(6, 7, khaki)
# 4th leaf bitmap @green_leaf_bitmaps[3] = Bitmap.new(8, @green_leaf_bitmaps[3].fill_rect(0, 3, 1, 2, darkGreen) @green_leaf_bitmaps[3].set_pixel(1, 4, midGreen) @green_leaf_bitmaps[3].set_pixel(2, 4, khaki) @green_leaf_bitmaps[3].set_pixel(3, 4, lightGreen) @green_leaf_bitmaps[3].set_pixel(4, 4, darkGreen) @green_leaf_bitmaps[3].set_pixel(7, 4, midGreen) @green_leaf_bitmaps[3].set_pixel(1, 5, darkGreen) @green_leaf_bitmaps[3].set_pixel(2, 5, midGreen) @green_leaf_bitmaps[3].set_pixel(3, 5, lightGreen) @green_leaf_bitmaps[3].set_pixel(4, 5, mint) @green_leaf_bitmaps[3].set_pixel(5, 5, lightGreen) @green_leaf_bitmaps[3].set_pixel(6, 5, khaki) @green_leaf_bitmaps[3].set_pixel(7, 5, midGreen) @green_leaf_bitmaps[3].fill_rect(2, 6, 2, 1, midGreen) @green_leaf_bitmaps[3].set_pixel(4, 6, lightGreen) @green_leaf_bitmaps[3].set_pixel(5, 6, khaki) @green_leaf_bitmaps[3].set_pixel(6, 6, midGreen)
# 5th leaf bitmap @green_leaf_bitmaps[4] = Bitmap.new(8, @green_leaf_bitmaps[4].set_pixel(6, 2, midGreen) @green_leaf_bitmaps[4].set_pixel(7, 2, darkGreen) @green_leaf_bitmaps[4].fill_rect(4, 3, 2, 1, midGreen) @green_leaf_bitmaps[4].set_pixel(6, 3, khaki) @green_leaf_bitmaps[4].set_pixel(2, 4, darkGreen) @green_leaf_bitmaps[4].fill_rect(3, 4, 2, 1, khaki) @green_leaf_bitmaps[4].set_pixel(5, 4, lightGreen) @green_leaf_bitmaps[4].set_pixel(6, 4, khaki) @green_leaf_bitmaps[4].set_pixel(1, 5, midGreen) @green_leaf_bitmaps[4].set_pixel(2, 5, khaki) @green_leaf_bitmaps[4].set_pixel(3, 5, lightGreen) @green_leaf_bitmaps[4].set_pixel(4, 5, mint) @green_leaf_bitmaps[4].set_pixel(5, 5, midGreen) @green_leaf_bitmaps[4].set_pixel(2, 6, darkGreen) @green_leaf_bitmaps[4].fill_rect(3, 6, 2, 1, midGreen)
# 6th leaf bitmap @green_leaf_bitmaps[5] = Bitmap.new(8, @green_leaf_bitmaps[5].fill_rect(6, 2, 2, 1, midGreen) @green_leaf_bitmaps[5].fill_rect(4, 3, 2, 1, midGreen) @green_leaf_bitmaps[5].set_pixel(6, 3, khaki) @green_leaf_bitmaps[5].set_pixel(3, 4, midGreen) @green_leaf_bitmaps[5].set_pixel(4, 4, khaki) @green_leaf_bitmaps[5].set_pixel(5, 4, lightGreen) @green_leaf_bitmaps[5].set_pixel(6, 4, mint) @green_leaf_bitmaps[5].set_pixel(1, 5, midGreen) @green_leaf_bitmaps[5].set_pixel(2, 5, khaki) @green_leaf_bitmaps[5].fill_rect(3, 5, 2, 1, mint) @green_leaf_bitmaps[5].set_pixel(5, 5, lightGreen) @green_leaf_bitmaps[5].set_pixel(2, 6, midGreen) @green_leaf_bitmaps[5].set_pixel(3, 6, khaki) @green_leaf_bitmaps[5].set_pixel(4, 6, lightGreen)
# 7th leaf bitmap @green_leaf_bitmaps[6] = Bitmap.new(8, @green_leaf_bitmaps[6].fill_rect(6, 1, 1, 2, midGreen) @green_leaf_bitmaps[6].fill_rect(4, 2, 2, 1, midGreen) @green_leaf_bitmaps[6].fill_rect(6, 2, 1, 2, darkGreen) @green_leaf_bitmaps[6].fill_rect(3, 3, 2, 1, midGreen) @green_leaf_bitmaps[6].set_pixel(5, 3, khaki) @green_leaf_bitmaps[6].set_pixel(2, 4, midGreen) @green_leaf_bitmaps[6].set_pixel(3, 4, khaki) @green_leaf_bitmaps[6].set_pixel(4, 4, lightGreen) @green_leaf_bitmaps[6].set_pixel(5, 4, midGreen) @green_leaf_bitmaps[6].set_pixel(1, 5, midGreen) @green_leaf_bitmaps[6].set_pixel(2, 5, khaki) @green_leaf_bitmaps[6].fill_rect(3, 5, 2, 1, midGreen) @green_leaf_bitmaps[6].set_pixel(1, 6, darkGreen) @green_leaf_bitmaps[6].set_pixel(2, 6, midGreen)
# 8th leaf bitmap @green_leaf_bitmaps[7] = Bitmap.new(8, @green_leaf_bitmaps[7].set_pixel(6, 1, midGreen) @green_leaf_bitmaps[7].fill_rect(4, 2, 3, 2, midGreen) @green_leaf_bitmaps[7].set_pixel(3, 3, darkGreen) @green_leaf_bitmaps[7].set_pixel(2, 4, darkGreen) @green_leaf_bitmaps[7].set_pixel(3, 4, midGreen) @green_leaf_bitmaps[7].fill_rect(4, 4, 2, 1, khaki) @green_leaf_bitmaps[7].set_pixel(1, 5, darkGreen) @green_leaf_bitmaps[7].set_pixel(2, 5, midGreen) @green_leaf_bitmaps[7].fill_rect(3, 5, 2, 1, lightGreen) @green_leaf_bitmaps[7].set_pixel(2, 6, midGreen) @green_leaf_bitmaps[7].set_pixel(3, 6, lightGreen)
# 9th leaf bitmap @green_leaf_bitmaps[8] = Bitmap.new(8, @green_leaf_bitmaps[8].fill_rect(6, 1, 1, 2, midGreen) @green_leaf_bitmaps[8].fill_rect(4, 2, 2, 1, midGreen) @green_leaf_bitmaps[8].fill_rect(6, 2, 1, 2, darkGreen) @green_leaf_bitmaps[8].fill_rect(3, 3, 2, 1, midGreen) @green_leaf_bitmaps[8].set_pixel(5, 3, khaki) @green_leaf_bitmaps[8].set_pixel(2, 4, midGreen) @green_leaf_bitmaps[8].set_pixel(3, 4, khaki) @green_leaf_bitmaps[8].set_pixel(4, 4, lightGreen) @green_leaf_bitmaps[8].set_pixel(5, 4, midGreen) @green_leaf_bitmaps[8].set_pixel(1, 5, midGreen) @green_leaf_bitmaps[8].set_pixel(2, 5, khaki) @green_leaf_bitmaps[8].fill_rect(3, 5, 2, 1, midGreen) @green_leaf_bitmaps[8].set_pixel(1, 6, darkGreen) @green_leaf_bitmaps[8].set_pixel(2, 6, midGreen)
# 10th leaf bitmap @green_leaf_bitmaps[9] = Bitmap.new(8, @green_leaf_bitmaps[9].fill_rect(6, 2, 2, 1, midGreen) @green_leaf_bitmaps[9].fill_rect(4, 3, 2, 1, midGreen) @green_leaf_bitmaps[9].set_pixel(6, 3, khaki) @green_leaf_bitmaps[9].set_pixel(3, 4, midGreen) @green_leaf_bitmaps[9].set_pixel(4, 4, khaki) @green_leaf_bitmaps[9].set_pixel(5, 4, lightGreen) @green_leaf_bitmaps[9].set_pixel(6, 4, mint) @green_leaf_bitmaps[9].set_pixel(1, 5, midGreen) @green_leaf_bitmaps[9].set_pixel(2, 5, khaki) @green_leaf_bitmaps[9].fill_rect(3, 5, 2, 1, mint) @green_leaf_bitmaps[9].set_pixel(5, 5, lightGreen) @green_leaf_bitmaps[9].set_pixel(2, 6, midGreen) @green_leaf_bitmaps[9].set_pixel(3, 6, khaki) @green_leaf_bitmaps[9].set_pixel(4, 6, lightGreen)
# 11th leaf bitmap @green_leaf_bitmaps[10] = Bitmap.new(8, @green_leaf_bitmaps[10].set_pixel(6, 2, midGreen) @green_leaf_bitmaps[10].set_pixel(7, 2, darkGreen) @green_leaf_bitmaps[10].fill_rect(4, 3, 2, 1, midGreen) @green_leaf_bitmaps[10].set_pixel(6, 3, khaki) @green_leaf_bitmaps[10].set_pixel(2, 4, darkGreen) @green_leaf_bitmaps[10].fill_rect(3, 4, 2, 1, khaki) @green_leaf_bitmaps[10].set_pixel(5, 4, lightGreen) @green_leaf_bitmaps[10].set_pixel(6, 4, khaki) @green_leaf_bitmaps[10].set_pixel(1, 5, midGreen) @green_leaf_bitmaps[10].set_pixel(2, 5, khaki) @green_leaf_bitmaps[10].set_pixel(3, 5, lightGreen) @green_leaf_bitmaps[10].set_pixel(4, 5, mint) @green_leaf_bitmaps[10].set_pixel(5, 5, midGreen) @green_leaf_bitmaps[10].set_pixel(2, 6, darkGreen) @green_leaf_bitmaps[10].fill_rect(3, 6, 2, 1, midGreen)
# 12th leaf bitmap @green_leaf_bitmaps[11] = Bitmap.new(8, @green_leaf_bitmaps[11].fill_rect(0, 3, 1, 2, darkGreen) @green_leaf_bitmaps[11].set_pixel(1, 4, midGreen) @green_leaf_bitmaps[11].set_pixel(2, 4, khaki) @green_leaf_bitmaps[11].set_pixel(3, 4, lightGreen) @green_leaf_bitmaps[11].set_pixel(4, 4, darkGreen) @green_leaf_bitmaps[11].set_pixel(7, 4, midGreen) @green_leaf_bitmaps[11].set_pixel(1, 5, darkGreen) @green_leaf_bitmaps[11].set_pixel(2, 5, midGreen) @green_leaf_bitmaps[11].set_pixel(3, 5, lightGreen) @green_leaf_bitmaps[11].set_pixel(4, 5, mint) @green_leaf_bitmaps[11].set_pixel(5, 5, lightGreen) @green_leaf_bitmaps[11].set_pixel(6, 5, khaki) @green_leaf_bitmaps[11].set_pixel(7, 5, midGreen) @green_leaf_bitmaps[11].fill_rect(2, 6, 2, 1, midGreen) @green_leaf_bitmaps[11].set_pixel(4, 6, lightGreen) @green_leaf_bitmaps[11].set_pixel(5, 6, khaki) @green_leaf_bitmaps[11].set_pixel(6, 6, midGreen)
# 13th leaf bitmap @green_leaf_bitmaps[12] = Bitmap.new(8, @green_leaf_bitmaps[12].set_pixel(1, 1, darkGreen) @green_leaf_bitmaps[12].fill_rect(1, 2, 2, 1, midGreen) @green_leaf_bitmaps[12].set_pixel(2, 3, midGreen) @green_leaf_bitmaps[12].set_pixel(3, 3, darkGreen) @green_leaf_bitmaps[12].set_pixel(4, 3, midGreen) @green_leaf_bitmaps[12].fill_rect(2, 4, 2, 1, midGreen) @green_leaf_bitmaps[12].set_pixel(4, 4, darkGreen) @green_leaf_bitmaps[12].set_pixel(5, 4, lightGreen) @green_leaf_bitmaps[12].set_pixel(3, 5, midGreen) @green_leaf_bitmaps[12].set_pixel(4, 5, darkGreen) @green_leaf_bitmaps[12].fill_rect(5, 5, 2, 1, khaki) @green_leaf_bitmaps[12].fill_rect(4, 6, 2, 1, midGreen) @green_leaf_bitmaps[12].set_pixel(6, 6, lightGreen) @green_leaf_bitmaps[12].set_pixel(6, 7, khaki)
@rose_bitmaps = [] brightRed = Color.new(255, 0, 0, 255) midRed = Color.new(179, 17, 17, 255) darkRed = Color.new(141, 9, 9, 255)
# 1st rose petal bitmap @rose_bitmaps[0] = Bitmap.new(3, 3) @rose_bitmaps[0].fill_rect(1, 0, 2, 1, brightRed) @rose_bitmaps[0].fill_rect(0, 1, 1, 2, brightRed) @rose_bitmaps[0].fill_rect(1, 1, 2, 2, midRed) @rose_bitmaps[0].set_pixel(2, 2, darkRed)
# 2nd rose petal bitmap @rose_bitmaps[1] = Bitmap.new(3, 3) @rose_bitmaps[1].set_pixel(0, 1, midRed) @rose_bitmaps[1].set_pixel(1, 1, brightRed) @rose_bitmaps[1].fill_rect(1, 2, 1, 2, midRed)
@feather_bitmaps = [] white = Color.new(255, 255, 255, 255)
# 1st feather bitmap @feather_bitmaps[0] = Bitmap.new(3, 3) @feather_bitmaps[0].set_pixel(0, 2, white) @feather_bitmaps[0].set_pixel(1, 2, grey) @feather_bitmaps[0].set_pixel(2, 1, grey)
# 2nd feather bitmap @feather_bitmaps[0] = Bitmap.new(3, 3) @feather_bitmaps[0].set_pixel(0, 0, white) @feather_bitmaps[0].set_pixel(0, 1, grey) @feather_bitmaps[0].set_pixel(1, 2, grey)
# 3rd feather bitmap @feather_bitmaps[0] = Bitmap.new(3, 3) @feather_bitmaps[0].set_pixel(2, 0, white) @feather_bitmaps[0].set_pixel(1, 0, grey) @feather_bitmaps[0].set_pixel(0, 1, grey)
# 4th feather bitmap @feather_bitmaps[0] = Bitmap.new(3, 3) @feather_bitmaps[0].set_pixel(2, 2, white) @feather_bitmaps[0].set_pixel(2, 1, grey) @feather_bitmaps[0].set_pixel(1, 0, grey)
@blood_rain_bitmap = Bitmap.new(7, 56) for i in 0..6 @blood_rain_bitmap.fill_rect(6-i, i*8, 1, 8, darkRed) end
@sparkle_bitmaps = []
lightBlue = Color.new(181, 244, 255, 255) midBlue = Color.new(126, 197, 235, 255) darkBlue = Color.new(77, 136, 225, 255)
# 1st sparkle bitmap @sparkle_bitmaps[0] = Bitmap.new(7, 7) @sparkle_bitmaps[0].set_pixel(3, 3, darkBlue)
# 2nd sparkle bitmap @sparkle_bitmaps[1] = Bitmap.new(7, 7) @sparkle_bitmaps[1].fill_rect(3, 2, 1, 3, darkBlue) @sparkle_bitmaps[1].fill_rect(2, 3, 3, 1, darkBlue) @sparkle_bitmaps[1].set_pixel(3, 3, midBlue)
# 3rd sparkle bitmap @sparkle_bitmaps[2] = Bitmap.new(7, 7) @sparkle_bitmaps[2].set_pixel(1, 1, darkBlue) @sparkle_bitmaps[2].set_pixel(5, 1, darkBlue) @sparkle_bitmaps[2].set_pixel(2, 2, midBlue) @sparkle_bitmaps[2].set_pixel(4, 2, midBlue) @sparkle_bitmaps[2].set_pixel(3, 3, lightBlue) @sparkle_bitmaps[2].set_pixel(2, 4, midBlue) @sparkle_bitmaps[2].set_pixel(4, 4, midBlue) @sparkle_bitmaps[2].set_pixel(1, 5, darkBlue) @sparkle_bitmaps[2].set_pixel(5, 5, darkBlue)
# 4th sparkle bitmap @sparkle_bitmaps[3] = Bitmap.new(7, 7) @sparkle_bitmaps[3].fill_rect(3, 1, 1, 5, darkBlue) @sparkle_bitmaps[3].fill_rect(1, 3, 5, 1, darkBlue) @sparkle_bitmaps[3].fill_rect(3, 2, 1, 3, midBlue) @sparkle_bitmaps[3].fill_rect(2, 3, 3, 1, midBlue) @sparkle_bitmaps[3].set_pixel(3, 3, lightBlue)
# 5th sparkle bitmap @sparkle_bitmaps[4] = Bitmap.new(7, 7) @sparkle_bitmaps[4].fill_rect(2, 2, 3, 3, midBlue) @sparkle_bitmaps[4].fill_rect(3, 2, 1, 3, darkBlue) @sparkle_bitmaps[4].fill_rect(2, 3, 3, 1, darkBlue) @sparkle_bitmaps[4].set_pixel(3, 3, lightBlue) @sparkle_bitmaps[4].set_pixel(1, 1, darkBlue) @sparkle_bitmaps[4].set_pixel(5, 1, darkBlue) @sparkle_bitmaps[4].set_pixel(1, 5, darkBlue) @sparkle_bitmaps[4].set_pixel(5, 1, darkBlue)
# 6th sparkle bitmap @sparkle_bitmaps[5] = Bitmap.new(7, 7) @sparkle_bitmaps[5].fill_rect(2, 1, 3, 5, darkBlue) @sparkle_bitmaps[5].fill_rect(1, 2, 5, 3, darkBlue) @sparkle_bitmaps[5].fill_rect(2, 2, 3, 3, midBlue) @sparkle_bitmaps[5].fill_rect(3, 1, 1, 5, midBlue) @sparkle_bitmaps[5].fill_rect(1, 3, 5, 1, midBlue) @sparkle_bitmaps[5].fill_rect(3, 2, 1, 3, lightBlue) @sparkle_bitmaps[5].fill_rect(2, 3, 3, 1, lightBlue) @sparkle_bitmaps[5].set_pixel(3, 3, white)
# 7th sparkle bitmap @sparkle_bitmaps[6] = Bitmap.new(7, 7) @sparkle_bitmaps[6].fill_rect(2, 1, 3, 5, midBlue) @sparkle_bitmaps[6].fill_rect(1, 2, 5, 3, midBlue) @sparkle_bitmaps[6].fill_rect(3, 0, 1, 7, darkBlue) @sparkle_bitmaps[6].fill_rect(0, 3, 7, 1, darkBlue) @sparkle_bitmaps[6].fill_rect(2, 2, 3, 3, lightBlue) @sparkle_bitmaps[6].fill_rect(3, 2, 1, 3, midBlue) @sparkle_bitmaps[6].fill_rect(2, 3, 3, 1, midBlue) @sparkle_bitmaps[6].set_pixel(3, 3, white)
@user_bitmaps = [] update_user_defined end
def update_user_defined for image in @user_bitmaps image.dispose end
#user-defined bitmaps for name in $WEATHER_IMAGES @user_bitmaps.push(RPG::Cache.picture(name)) end for sprite in @sprites sprite.bitmap = @user_bitmaps[rand(@user_bitmaps.size)] end end
attr_reader :type attr_reader :max attr_reader :ox attr_reader :oy end end
étant donné que la ligne 73 est "@hail_bitmap.dispose" Voilà, conflit infortuné sans doutes très simple à résoudre. Dommage car la pluie de ce script même sans les gouttes est plus jolie que celle de base. |
| | | Siegfried Mage (niveau 2)
Messages postés : 286 Date d'inscription : 31/07/2011 Jauge LPC :
| Sujet: Re: Pluie améliorée Sam 25 Juil 2015 - 11:50 | |
| Mets celui de ccoa en-dessous. Sinon, il faudra travailler à fusionner les deux scripts (tu copies tout ce qui a un rapport avec @hail dans l'autre script aux emplacements prévus, ou aliaser l'un des scripts... |
| | | Contenu sponsorisé
| Sujet: Re: Pluie améliorée | |
| |
| | | |
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |