Project1

标题: 【事件脚本扩张】图片自定义原点(可用于自定义旋转) [打印本页]

作者: 魔法☆梅莉    时间: 2017-11-9 20:55
标题: 【事件脚本扩张】图片自定义原点(可用于自定义旋转)
RUBY 代码复制
  1. #默认旋转只支持左上角和中心两种旋转模式。想要自由旋转的话很不方便呢。
  2. #本脚本的功能是可以把图片的原点放在任何位置。自由定义旋转中心。
  3. #事件中选择脚本选项:输入screen.pictures[图片编号].free_show即可,参数很多请勿漏
  4. #函数参数填写顺序:(文件名,原点类型(填写2),x坐标,y坐标,中心x坐标,中心y坐标,
  5. #x方向缩放率,y方向缩放率,不透明度(单位为100),合成方式(0为普通1为加法2为减法))
  6. #作者:梅林
  7. #可以随意使用修改不用保留作者名字。其实这个用起来不很方便,抛砖引玉。
  8.  
  9. class Game_Picture
  10.   attr_reader   :free_ox
  11.   attr_reader   :free_oy
  12.  
  13.   alias merlin20171109_init_basic init_basic
  14.   def init_basic
  15.     merlin20171109_init_basic
  16.     @free_ox = @free_oy = 0
  17.   end
  18.  
  19.   def free_show(name, origin, x, y, free_ox, free_oy, zoom_x, zoom_y, opacity, blend_type)
  20.     @name = name
  21.     @origin = origin
  22.     @x = x.to_f
  23.     @y = y.to_f
  24.     @zoom_x = zoom_x.to_f
  25.     @zoom_y = zoom_y.to_f
  26.     @opacity = opacity.to_f
  27.     @blend_type = blend_type
  28.     @free_ox = free_ox.to_f
  29.     @free_oy = free_oy.to_f
  30.     init_target
  31.     init_tone
  32.     init_rotate
  33.   end
  34.  
  35. end
  36.  
  37. class Sprite_Picture < Sprite
  38.    alias merlin20171109_update_origin update_origin
  39.    def update_origin
  40.     if @picture.origin == 0
  41.       self.ox = 0
  42.       self.oy = 0
  43.     else
  44.       if @picture.origin == 1
  45.         self.ox = bitmap.width / 2
  46.         self.oy = bitmap.height / 2
  47.       else
  48.         self.ox = @picture.free_ox
  49.         self.oy = @picture.free_oy
  50.       end
  51.     end
  52.   end
  53. end



作者: chd114    时间: 2017-11-9 22:49
类似的脚本好像@仲秋启明有写过一个(不过那个好像不能随便改原点,但是还支持水平翻转),也许那个你可以参考一下?




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