赞 | 0 |
VIP | 20 |
好人卡 | 7 |
积分 | 1 |
经验 | 20823 |
最后登录 | 2019-7-12 |
在线时间 | 211 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 79
- 在线时间
- 211 小时
- 注册时间
- 2010-8-21
- 帖子
- 442
|
虽然我没玩过LZ提到的游戏,但我的回答应该有些帮助
如果说要改标题选项的话,可以采用图片标题,这个搜一下就有了
也可以采用事件标题,这个处理的效果更佳,这个范例和一个小小的教程
然后是叶子的问题,那个应该是类似流星雨的标题,如果是图片标题整合的流星雨的话那个容易搜,只要把那个流星雨图片改成叶子即可
事件标题的流星雨我刚好有脚本,将叶子图片命名为star,在事件标题那里调用脚本$game_screen.weather(4, 5, 10)
$game_screen.weather(0, 0, 0)则是无效果,这个可以拿来取消那个流星雨效果- module RPG
- class Weather
- #--------------------------------------------------------------------------
- # ● 初始化物件
- #--------------------------------------------------------------------------
- def initialize(viewport = nil)
- # 天气类型
- @type = 0
- @max = 0
- @ox = 0
- @oy = 0
- color1 = Color.new(255, 255, 255, 255)
- color2 = Color.new(255, 255, 255, 128)
- # 雨
- @rain_bitmap = Bitmap.new(7, 30)
- for i in 0..6
- @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
- @rain_bitmap.fill_rect(5-i, i*10, 1, 8, color2)
- 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)
- # 流星
- @Hail_bitmap = Bitmap.new("Graphics/Pictures/star")
- @sprites = []
- for i in 1..40
- sprite = Sprite.new(viewport)
- sprite.z = 1000
- sprite.visible = false
- sprite.opacity = 0
- @sprites.push(sprite)
- # for
- end
- # initialize
- end
- #--------------------------------------------------------------------------
- # ● 设定天气类型
- #--------------------------------------------------------------------------
- def type=(type)
- return if @type == type
- @type = type
- # 分歧-天气类型
- case @type
- # 雨
- when 1
- bitmap = @rain_bitmap
- # 风
- when 2
- bitmap = @storm_bitmap
- # 雪
- when 3
- bitmap = @snow_bitmap
- # 流星
- when 4
- bitmap = @Hail_bitmap
- # 类型在 1234 以外的场合
- else
- # bitmap = 空
- bitmap = nil
- end
- for i in 1..40
- sprite = @sprites[i]
- # 如bitmap非空
- if sprite != nil
- sprite.visible = (i <= @max)
- sprite.bitmap = bitmap
- end
- end
- end
- #--------------------------------------------------------------------------
- # ● 更新画面
- #--------------------------------------------------------------------------
- def update
- # 如天气类型等于 0 则返回
- return if @type == 0
- for i in 1..@max
- sprite = @sprites[i]
- # 如sprite等于空
- if sprite == nil
- # 中断循环
- break
- end
- # 如天气类型等于 1
- if @type == 1
- sprite.x -= 2
- sprite.y += 16
- sprite.opacity -= 8
- end
- # 如天气类型等于 2
- if @type == 2
- sprite.x -= 8
- sprite.y += 16
- sprite.opacity -= 12
- end
- # 如天气类型等于 3
- if @type == 3
- sprite.x -= 2
- sprite.y += 8
- sprite.opacity -= 8
- end
- # 如天气类型等于 4
- if @type == 4
- sprite.x -= 5
- sprite.y += 5
- sprite.opacity -= 2
- end
- x = sprite.x - @ox
- y = sprite.y - @oy
- # 如天气图片不透明度小于 64 或 x 小于 -50 或 x 大于 750 或 y 小于 -300 或 y 大于 500
- if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500
- case @type
- when 4
- # 图片不透明度x,y,不透明度调整
- sprite.x = rand(1200) + 100 + @ox
- sprite.y = rand(600) - 600 + @oy
- sprite.opacity = 255
- else
- sprite.x = rand(800) - 50 + @ox
- sprite.y = rand(800) - 200 + @oy
- sprite.opacity = 255
- end
- # if
- end
- # for
- end
- #update
- end
- # class
- end
- #module
- end
复制代码 |
评分
-
查看全部评分
|