Project1

标题: 事件行走图属性调整(相对x,y像素位置、合成方法、不透明度) [打印本页]

作者: tz5514    时间: 2014-2-21 09:58
标题: 事件行走图属性调整(相对x,y像素位置、合成方法、不透明度)
本帖最后由 tz5514 于 2014-2-24 10:19 编辑

这个脚本是自己正在开发的游戏中因为需要写的一个小小功能
可以让事件方便的设定其行走图一些不能在事件编辑器里直接设定的属性资讯
其中包含了行走图位置(画面上的相对x,y像素)、合成方法、不透明度

设置范例图:


实际效果范例图:可以见到虽然在地图编辑器中格子根本没对准在火炬炉正中央,但透过脚本功能设定能够修正到很精准的显示位置


调用详细请见脚本开头的注释

RUBY 代码复制
  1. #==============================================================================
  2. # ■ 事件行走图调整 by tz5514
  3. #------------------------------------------------------------------------------
  4. #  此脚本能够自由的调整事件的行走图位置(画面上的相对x,y像素)、合成方法、不透明度
  5. #     各项功能可以个别独立使用
  6. #
  7. #     使用方法:
  8. #     在需要调整之事件分页的最开头包含注释
  9. #
  10. #     @bitmap_move[x,y]
  11. #     其中x和y的范围是-999~999,必须为整数
  12. #
  13. #     @bitmap_blend[方式]
  14. #     其中方式可填 "+"(代表加法) 或 "-"(代表减法) 或 "="(代表普通)
  15. #
  16. #     @bitmap_opacity[o]
  17. #     其中o的范围是0~255,必须为整数
  18. #
  19. #==============================================================================
  20.  
  21. class Game_CharacterBase
  22.   attr_accessor   :opacity                  # 不透明度
  23.   attr_accessor   :blend_type               # 合成方式
  24. end
  25.  
  26. class Sprite_Character < Sprite_Base
  27.   alias tz5514_event_bitmap_move_set_character_bitmap set_character_bitmap
  28.   def set_character_bitmap
  29.     tz5514_event_bitmap_move_set_character_bitmap
  30.  
  31.     if @character!=nil && @character.class.to_s=="Game_Event" && @character.list.kind_of?(Array)
  32.       for element in @character.list do
  33.         if element.code==108 or element.code==408
  34.           if /@bitmap_move\[(\W?)(\d{1,3})\,(\W?)(\d{1,3})\]/ =~ element.parameters[0]
  35.             self.ox+= ($1=="-")? $2.to_i : $2.to_i * -1
  36.             self.oy+= ($3=="-")? $4.to_i : $4.to_i * -1
  37.           end
  38.           if /@bitmap_blend\[(\W)\]/ =~ element.parameters[0]
  39.             @character.blend_type = 0 if $1=="="
  40.             @character.blend_type = 1 if $1=="+"
  41.             @character.blend_type = 2 if $1=="-"
  42.           end
  43.           if /@bitmap_opacity\[(\d{1,3})\]/ =~ element.parameters[0]
  44.             @character.opacity = $1.to_i
  45.           end
  46.         else
  47.           break
  48.         end
  49.       end
  50.     end
  51.   end
  52. end

作者: Im剑侠客    时间: 2014-2-21 11:23
很有用,人物的行走图会表现得更好。
作者: 天使喝可乐    时间: 2014-2-21 12:14
看见RO就点进来了
作者: 越前リョーマ    时间: 2014-6-26 15:43
非常实用的功能,这样子做某些效果的时候不需要去调整行走图了




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