设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1800|回复: 4
打印 上一主题 下一主题

[已经解决] 大家看看这个脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
95 小时
注册时间
2012-4-18
帖子
90
跳转到指定楼层
1
发表于 2012-6-15 16:44:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 daxuexinsheng 于 2012-6-15 16:45 编辑

大家看看这个流星天气的脚本,可以在事件脚本中用$game_screen.weather(4, 5, 10)调用,但是应该怎么停止啊?
这是用到的流星图片,稍微有点小,大家注意一下

  1. module RPG
  2. class Weather
  3. #--------------------------------------------------------------------------
  4. # ● 初始化物件
  5. #--------------------------------------------------------------------------
  6.    def initialize(viewport = nil)
  7.      # 天气类型
  8.      @type = 0
  9.      @max = 0
  10.      @ox = 0
  11.      @oy = 0
  12.      color1 = Color.new(255, 255, 255, 255)
  13.      color2 = Color.new(255, 255, 255, 128)
  14.      # 雨
  15.      @rain_bitmap = Bitmap.new(7, 30)
  16.      for i in 0..6
  17.        @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
  18.        @rain_bitmap.fill_rect(5-i, i*10, 1, 8, color2)
  19.      end
  20.      # 风
  21.      @storm_bitmap = Bitmap.new(34, 64)
  22.      for i in 0..31
  23.        @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
  24.        @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
  25.        @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
  26.      end
  27.      # 雪
  28.      @snow_bitmap = Bitmap.new(6, 6)
  29.      @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
  30.      @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
  31.      @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
  32.      @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
  33.      # 流星
  34.      @Hail_bitmap = Bitmap.new("Graphics/Pictures/star")
  35.      @sprites = []
  36.      for i in 1..40
  37.        sprite = Sprite.new(viewport)
  38.        sprite.z = 1000
  39.        sprite.visible = false
  40.        sprite.opacity = 0
  41.        @sprites.push(sprite)
  42.        # for
  43.      end
  44.      # initialize
  45.    end
  46. #--------------------------------------------------------------------------
  47. # ● 设定天气类型
  48. #--------------------------------------------------------------------------
  49.    def type=(type)
  50.      return if @type == type
  51.      @type = type
  52.      # 分歧-天气类型
  53.      case @type
  54.      # 雨
  55.      when 1
  56.        bitmap = @rain_bitmap
  57.        # 风
  58.      when 2
  59.        bitmap = @storm_bitmap
  60.        # 雪
  61.      when 3
  62.        bitmap = @snow_bitmap
  63.        # 流星
  64.      when 4
  65.        bitmap = @Hail_bitmap
  66.        # 类型在 1234 以外的场合
  67.      else
  68.        # bitmap = 空
  69.        bitmap = nil
  70.      end
  71.      for i in 1..40
  72.        sprite = @sprites[i]
  73.        # 如bitmap非空
  74.        if sprite != nil
  75.          sprite.visible = (i <= @max)
  76.          sprite.bitmap = bitmap
  77.        end
  78.      end
  79.    end
  80. #--------------------------------------------------------------------------
  81. # ● 更新画面
  82. #--------------------------------------------------------------------------
  83.    def update
  84.      # 如天气类型等于 0 则返回
  85.      return if @type == 0
  86.      for i in 1..@max
  87.        sprite = @sprites[i]
  88.        # 如sprite等于空
  89.        if sprite == nil
  90.          # 中断循环
  91.          break
  92.        end
  93.        # 如天气类型等于 1
  94.        if @type == 1
  95.          sprite.x -= 2
  96.          sprite.y += 16
  97.          sprite.opacity -= 8
  98.        end
  99.        # 如天气类型等于 2
  100.        if @type == 2
  101.          sprite.x -= 8
  102.          sprite.y += 16
  103.          sprite.opacity -= 12
  104.        end
  105.        # 如天气类型等于 3
  106.        if @type == 3
  107.          sprite.x -= 2
  108.          sprite.y += 8
  109.          sprite.opacity -= 8
  110.        end
  111.        # 如天气类型等于 4
  112.        if @type == 4
  113.          sprite.x -= 5
  114.          sprite.y += 5
  115.          sprite.opacity -= 2
  116.        end
  117.        x = sprite.x - @ox
  118.        y = sprite.y - @oy
  119.        # 如天气图片不透明度小于 64 或 x 小于 -50 或 x 大于 750 或 y 小于 -300 或 y 大于 500
  120.        if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500
  121.        case @type
  122.       when 4
  123.          # 图片不透明度x,y,不透明度调整
  124.          sprite.x = rand(1200) + 100 + @ox
  125.          sprite.y = rand(600) - 600 + @oy
  126.          sprite.opacity = 255
  127.        else
  128.         sprite.x = rand(800) - 50 + @ox
  129.          sprite.y = rand(800) - 200 + @oy
  130.          sprite.opacity = 255
  131.             end
  132.          # if
  133.        end
  134.        # for
  135.      end
  136.      #update
  137.    end
  138.    # class
  139. end
  140. #module
  141. end
复制代码

Lv1.梦旅人

梦石
0
星屑
50
在线时间
111 小时
注册时间
2012-4-21
帖子
299
2
发表于 2012-6-15 16:47:29 | 只看该作者
本帖最后由 晚安世界 于 2012-6-15 16:56 编辑

流星脚本0.0表示以前没见过....

点评

请问是什么,我马上改  发表于 2012-6-15 16:56
?  发表于 2012-6-15 16:53
你已违反版规  发表于 2012-6-15 16:49
哇哈哈哈!祝你吃面吃到鼻孔里!
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2460
在线时间
1552 小时
注册时间
2010-10-22
帖子
1040
3
发表于 2012-6-15 16:58:22 | 只看该作者
改为
  1. $game_screen.weather(0, 0, 0)
复制代码
试试吧...

点评

刚刚是事件设置的问题,现在可以了,谢谢啦  发表于 2012-6-15 17:11
流星还是不会停止  发表于 2012-6-15 17:03
【2022.06.03】原本以为已经不可能再找回来的东西重新找回来了,原本一直念念不忘的坑终于再一次拿起铲子了。一别竟近10年,你好,我的世界我的梦。
【不可阻挡】异元-地劫黎明
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
95 小时
注册时间
2012-4-18
帖子
90
4
 楼主| 发表于 2012-6-15 16:59:43 | 只看该作者
请问我违反了哪个版规,我马上改

点评

不是楼主你违反版规,是二楼之前发的水贴  发表于 2012-6-15 17:08
2楼发的是水贴。  发表于 2012-6-15 17:01
你没违反版规,是2楼违反了。  发表于 2012-6-15 17:00
回复

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
5
发表于 2012-6-15 17:04:01 | 只看该作者
只要把type变为0就行了。
$game_screen.weather(0, 5, 10)
第一个参数就是天候的类型。

点评

不会,更改类型为0之后,就是把天候的bitmap设为nil,RGSS会自动释放内存。另外,默认的脚本也是用这种方式释放的。  发表于 2012-6-15 17:17
只改type也能停止,但我觉得这改得不太彻底,可能会一直占用一部分内存,但还是谢谢你  发表于 2012-6-15 17:13
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-26 12:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表