66RPG
本站首页
制作教程
文章作品
制作素材
原创游戏区
周边下载
本站论坛
 ※ 站内搜索
栏 目:
方 式:
关键词:
  
 ※ 教程分类
 RMXP 图文教学
 初级教学
 中级教学
 高级教学
 个人创意与研究
 RMXP 录像教学
 新人入门录像
 零散录像教学
 商业素材使用录像 ★
 周边教学
 美工 与 音乐
 RMXP 脚本发布
 游戏系统修改
 地图效果类
 战斗系统相关
 全新系统类
 API与高难度类
 RMVX 制作教学
 RMVX 初级教学
 RMVX 中级教程
 RMVX 高级教程
 RMVX 综合制作展
 ※ 无图目录 (按点击量横排序)


-- 66RPG全内容文字目录 --


 ※ 近期特色教学
影子 ( 66RPG, RPG MAKER XP教程 )
 本站首页→制作教程→地图效果类

影子


教程作者:迅雷進
首发网址:点此进入本教学的原始帖
适宜用户:RMXP用户
技术通用度:★★★★★
技术应用复杂度:30 (满分150分)
学习的理解难度:30 (满分150分)

 作者的话:

使用方法:
将一下这张图画放进 Picture 的文件夹去并改名为“shadow”
然后在你需要加影子功能的事件前面写上“影子”两个字

 教学正文:

#==============================================================================
# ■ 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”:


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




关键字:

发布日期:2008-8-6 20:11:18 点击量:194


 上一篇:快速存储Bitmap的Marshal
 下一篇:武器决定杀敌方式 v0.1
关于我们
支援本站
友情连接
站点目录
站内搜索



WWW.66RPG.COM,2005-2013 ^o^

备案序号:京ICP备05035415号



 
Web www.66rpg.com bbs.66rpg.com