Project1

标题: 在scence中调用天气 [打印本页]

作者: 偶尔杀人越货    时间: 2008-9-8 00:43
标题: 在scence中调用天气
怎样在scence(比如scence_battle中)调用下雨之类的天气呢,在线等答案(非事件){/gg} [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 灯笼菜刀王    时间: 2008-9-8 01:01
{/hx}到这里继续捞卡~~~

全局搜索weather,然后看它属于哪部分就调用那个方法就可以了-。-,如果没意外,应该是和XP一样同属于GAME SCREEN

嘛,VX的没安装,不能给实例了{/hx}
作者: 偶尔杀人越货    时间: 2008-9-8 01:11
找到了,就是不会痛,完全不是$调用
作者: 小幽的马甲    时间: 2008-9-8 01:46
是Scene吧我说= =
作者: kissye    时间: 2008-9-8 02:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: 美兽    时间: 2008-9-8 02:47
LS正解。
作者: 偶尔杀人越货    时间: 2008-9-8 03:59
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  タイトル画面の処理を行うクラスです。
#==============================================================================

class Scene_Snow < Scene_Base
  WEATHER = 4     # 使用自定义效果(0:无,1:雨,2:暴风雨,3:雪,4:自定义)
  MAXNUMBER = 18  # 天气图片数量
  
  WEATHER_FILE = "Graphics/Pictures/Title_starlong.png"
  # 自定义图片路径,这个文件是流星雨
  
  BLEND_TYPE = 1 # 合成方式(0:普通,1:加法,2:减法)
  WEATHER_X = 5 # X方向每回合减少象素
  WEATHER_Y = 5 # Y方向每回合减少象素
  WEATHER_OPACITY = 2 #每回合减低透明度
  START_OPACITY = 200 #出现时的透明度
  RAND_X = 1200 # 随机X范围
  RAND_Y = 600 # 随机Y范围
  HEIGHT = -600 # 出现时候的屏幕Y
  WIDTH = 100 # 出现时候的屏幕X

  #--------------------------------------------------------------------------
  # ● 開始处理
  #--------------------------------------------------------------------------
  def start
    super
   
    @ox = 0
    @oy = 0
    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 = []
    for i in 1..40
      sprite = Sprite.new
      case WEATHER
      when 1
        sprite.bitmap = @rain_bitmap
      when 2
        sprite.bitmap = @storm_bitmap
      when 3
        sprite.bitmap = @snow_bitmap
      when 4
        sprite.bitmap = Bitmap.new(WEATHER_FILE)
      end
      sprite.z = 1000
      sprite.x = -1000
      sprite.y = -1000
      sprite.visible = (i <= MAXNUMBER)
      sprite.blend_type = BLEND_TYPE
      sprite.opacity = START_OPACITY
      @sprites.push(sprite)
    end
    weather_update
                  # タイトル画面の音楽を演奏
  end
  #--------------------------------------------------------------------------
  # ● トランジション実行
  #--------------------------------------------------------------------------

  #--------------------------------------------------------------------------
  # ● 開始後処理
  #--------------------------------------------------------------------------

  #--------------------------------------------------------------------------
  # ● 終了前処理
  #--------------------------------------------------------------------------

  #--------------------------------------------------------------------------
  # ● 終了処理
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_command_window
    snapshot_for_background
    @sprite.bitmap.dispose
    @sprite.dispose
    for sprite in @sprites
      sprite.dispose
    end
    @rain_bitmap.dispose
    @storm_bitmap.dispose
    @snow_bitmap.dispose
    dispose_title_graphic
  end
  
  def weather_update#111111111111111111
    return if WEATHER == 0
    for i in 1..MAXNUMBER
      sprite = @sprites
      if sprite == nil
        break
      end
      if WEATHER == 1
        sprite.x -= 2
        sprite.y += 16
        sprite.opacity -= 8
      end
      if WEATHER == 2
        sprite.x -= 8
        sprite.y += 16
        sprite.opacity -= 12
      end
      if WEATHER == 3
        sprite.x -= 2
        sprite.y += 8
        sprite.opacity -= 8
      end
      if WEATHER == 4
        sprite.x -= WEATHER_X
        sprite.y += WEATHER_Y
        sprite.opacity -= WEATHER_OPACITY
      end
      x = sprite.x - @ox
      y = sprite.y - @oy
      if sprite.opacity < 32 or x < -100 or x > 750 or y < -1000 or y > 500
        sprite.x = rand(RAND_X) + WIDTH + @ox
        sprite.y = rand(RAND_Y) + HEIGHT + @oy
        sprite.opacity = START_OPACITY
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    weather_update
  end
end


这段脚本怎么就扔不到scene里面呢?愤怒
作者: kissye    时间: 2008-9-8 04:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: 偶尔杀人越货    时间: 2008-9-8 05:04
以下引用kissye于2008-9-7 20:23:35的发言:

Scene_Snow
呃,你如何能把一个Scene扔到另一个Scene里呢......

呵呵已经出成品了,是把scence_battle和scence_snow集合起来的变态产物,效果还行,就是一显示攻击动画的时候雪花就停止移动
scence=scene 我口胡




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1