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

Project1

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

影子

 关闭 [复制链接]

Lv4.逐梦者

ST戰士

梦石
11
星屑
82
在线时间
1155 小时
注册时间
2007-5-5
帖子
3489

第5届短篇游戏比赛季军

跳转到指定楼层
1
发表于 2008-7-29 03:59:06 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x

  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
复制代码

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


然后在你需要加影子功能的事件前面写上“影子”两个字,
如下图。


效果截图:
我是昵称 JIN 的迅雷進,是一位以日本特攝講解爲主的馬來西亞 YouTuber。

歡迎瀏覽我的頻道:JinRaiXin -迅雷進-
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-5-14 21:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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