幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1487|回复: 0

[RMXP] 如何让影子动起来?就象玩家行走图一样。8方向按行走针

[复制链接]

9

主题

26

帖子

237

积分

③业余

积分
237
发表于 2009-3-2 18:35:48 | 显示全部楼层 |阅读模式
  1. #==============================================================================
  2. # ■ Sprite_Shadow_Module
  3. #------------------------------------------------------------------------------
  4. #  影子
  5. #   By 迅雷進
  6. #==============================================================================
  7. module Sprite_Shadow_Module
  8.   #--------------------------------------------------------------------------
  9.   # ● 解放
  10.   #--------------------------------------------------------------------------
  11.   def dispose
  12.     # 当影子出现时
  13.     if @character_shadow != nil then
  14.       # 解放影子
  15.       @character_shadow.bitmap.dispose
  16.       @character_shadow.dispose
  17.     end
  18.     super
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 影子的作成
  22.   #--------------------------------------------------------------------------
  23.   def character_shadow_set
  24.     # 生成影子使用的脚本
  25.     @character_shadow = Sprite.new(self.viewport)
  26.     # 显示影子
  27.     @character_shadow.bitmap = RPG::Cache.picture("shadow")
  28.     # 影子在这里设定透明度
  29.     @character_shadow.opacity = (self.opacity / 2) - 32
  30.     # 刷新影子
  31.     update_character_shadow
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 影子的更新
  35.   #--------------------------------------------------------------------------
  36.   def update_character_shadow
  37.     # 根本影子不存在的情况
  38.     if @character_shadow == nil then
  39.       # 处理完毕
  40.       return
  41.     end
  42.     # 更新各信息
  43.     @character_shadow.x = self.x - self.ox
  44.     @character_shadow.y = self.y - (self.oy / 2.5)   # 角色和影子之间的距离
  45.     @character_shadow.visible = (self.visible and @character_name != "")
  46.     @character_shadow.opacity = (self.opacity / 2) - 32
  47.   end
  48. end
  49. #==============================================================================
  50. # ■ Game_Event
  51. #------------------------------------------------------------------------------
  52. #  处理事件的类。条件判断、事件页的切换、并行处理、执行事件功能
  53. # 在 Game_Map 类的内部使用。
  54. #==============================================================================
  55. class Game_Event < Game_Character
  56.   #--------------------------------------------------------------------------
  57.   # ● 公開定义实例变量
  58.   #--------------------------------------------------------------------------
  59.   attr_reader   :event                    # 事件
  60. end
  61. #==============================================================================
  62. # ■ Sprite_Character
  63. #------------------------------------------------------------------------------
  64. #  角色显示用脚本。监视 Game_Character 类的实例、
  65. # 自动变化脚本状态。
  66. #==============================================================================
  67. class Sprite_Character < RPG::Sprite
  68.   #--------------------------------------------------------------------------
  69.   # ● 定义实例变量
  70.   #--------------------------------------------------------------------------
  71.   include(Sprite_Shadow_Module)           # 影子的描写
  72.   #--------------------------------------------------------------------------
  73.   # ● 初始化对像
  74.   #     character : 角色 (Game_Character)
  75.   #--------------------------------------------------------------------------
  76.   alias :JinRaiXin_Character_Shadow_initialize :initialize
  77.   def initialize(viewport, character = nil)
  78.     # 实行原来的处理
  79.     JinRaiXin_Character_Shadow_initialize(viewport, character)
  80.     # 按照角色的类型作出分歧
  81.     case @character
  82.     # 角色
  83.     when Game_Player then
  84.       # 影子的作成
  85.       character_shadow_set
  86.     # 事件
  87.     when Game_Event then
  88.       # 在指定的事件的名称前面加上 影子 这两个子
  89.       if @character.event.name.include?("") == true then
  90.         # 影子的作成
  91.         character_shadow_set
  92.       end
  93.     end
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 刷新画面
  97.   #--------------------------------------------------------------------------
  98.   alias :update_JinRaiXin_Character_Shadow :update
  99.   def update
  100.     # 实行原来的处理
  101.     update_JinRaiXin_Character_Shadow
  102.     # 刷新影子
  103.     update_character_shadow
  104.   end
  105. end
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2026-6-20 05:16 , Processed in 0.011552 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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