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

Project1

 找回密码
 注册会员
搜索
Project1 查看内容

影子

2008-8-6 20:11| 发布者: 秀秀| 查看: 2535| 评论: 0|原作者: 迅雷進|来自: 点此进入发布帖

摘要: #==============================================================================# ■ Sprite_Shadow_Module#------------------------------------------------------------------------------#  影子#   By 迅雷進#=================================
#==============================================================================
# ■ Sprite_Shadow_Module
#------------------------------------------------------------------------------
#  影子
#   By 迅雷進
#==============================================================================

module Sprite_Shadow_Module
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  def dispose
    # 当影子出现时
    if @character_shadow != nil then
      # 解放影子
      @character_shadow.bitmap.dispose
      @character_shadow.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # ● 影子的作成
  #--------------------------------------------------------------------------
  def character_shadow_set
    # 生成影子使用的脚本
    @character_shadow = Sprite.new(self.viewport)
    # 显示影子
    @character_shadow.bitmap = RPG::Cache.picture("shadow")
    # 影子在这里设定透明度
    @character_shadow.opacity = (self.opacity / 2) - 32
    # 刷新影子
    update_character_shadow
  end
  #--------------------------------------------------------------------------
  # ● 影子的更新
  #--------------------------------------------------------------------------
  def update_character_shadow
    # 根本影子不存在的情况
    if @character_shadow == nil then
      # 处理完毕
      return
    end
    # 更新各信息
    @character_shadow.x = self.x - self.ox
    @character_shadow.y = self.y - (self.oy / 2.5)   # 角色和影子之间的距离
    @character_shadow.visible = (self.visible and @character_name != "")
    @character_shadow.opacity = (self.opacity / 2) - 32
  end
end
#==============================================================================
# ■ Game_Event
#------------------------------------------------------------------------------
#  处理事件的类。条件判断、事件页的切换、并行处理、执行事件功能
# 在 Game_Map 类的内部使用。
#==============================================================================

class Game_Event < Game_Character
  #--------------------------------------------------------------------------
  # ● 公開定义实例变量
  #--------------------------------------------------------------------------
  attr_reader   :event                    # 事件
end
#==============================================================================
# ■ Sprite_Character
#------------------------------------------------------------------------------
#  角色显示用脚本。监视 Game_Character 类的实例、
# 自动变化脚本状态。
#==============================================================================

class Sprite_Character < RPG::Sprite
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  include(Sprite_Shadow_Module)           # 影子的描写
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     character : 角色 (Game_Character)
  #--------------------------------------------------------------------------
  alias :JinRaiXin_Character_Shadow_initialize :initialize
  def initialize(viewport, character = nil)
    # 实行原来的处理
    JinRaiXin_Character_Shadow_initialize(viewport, character)
    # 按照角色的类型作出分歧
    case @character
    # 角色
    when Game_Player then
      # 影子的作成
      character_shadow_set
    # 事件
    when Game_Event then
      # 在指定的事件的名称前面加上 影子 这两个子
      if @character.event.name.include?("影子") == true then
        # 影子的作成
        character_shadow_set
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  alias :update_JinRaiXin_Character_Shadow :update
  def update
    # 实行原来的处理
    update_JinRaiXin_Character_Shadow
    # 刷新影子
    update_character_shadow
  end
end

使用方法:
将一下这张图画放进 Picture 的文件夹去并改名为“shadow”:


然后在你需要加影子功能的事件前面写上“影子”两个字,
事件设置点击看这里
效果截图:


5

鲜花

刚表态过的朋友 (5 人)

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

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

GMT+8, 2024-4-28 06:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部