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

Project1

 找回密码
 注册会员
搜索

变化窗口皮肤

查看数: 1923 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-6-17 22:12

正文摘要:

本帖最后由 黑米馒头 于 2022-6-17 22:15 编辑 self.windowskin = RPG::Cache.windowskin('皮肤窗口') 这样可以改窗口皮肤,可是战斗场景的皮肤窗口怎么换皮肤? 想把这个选人的光标箭头换了 ...

回复

guoxiaomi 发表于 2022-6-19 17:28:57
本帖最后由 guoxiaomi 于 2022-6-19 17:45 编辑
黑米馒头 发表于 2022-6-19 11:37
可能我表达不清楚。。。

问题是这样的,就是修改选择敌人时的箭头,比如,攻击的时候显示1种,法术的时 ...


试一下不要重定义 bitmap= 方法,改成定义 set_bitmap 然后调用。因为 Arrow_Enemy < Arrow_Base < Sprite 继承链的存在,Sprite 里定义的 bitmap= 方法被继承下来了,就可能导致一些问题。对于内置的可绘制类,重定义属性名称相关的方法(bitmap 和 bitmap=),以及访问或操作相关的属性(@bitmap)在 RGSS 中属于未定义行为(UB)。RGSS 的默认脚本里也没有任何这样的写法,除非你很了解 RGSS 内置类是如何实现的,否则不要尝试去操作。
  1.   #--------------------------------------------------------------------------
  2.   # ● 设置皮肤位图
  3.   #     bitmap : 新的皮肤位图
  4.   #--------------------------------------------------------------------------
  5.   def set_bitmap(bitmap)
  6.     # 用 self.bitmap 设置 bitamap,不要用 @bitmap
  7.     self.bitmap = bitmap
  8.     # 如果 bitmap 不为 nil,则刷新 src_rect
  9.     update if bitmap
  10.   end
复制代码

调用时写:
  1. @enemy_arrow.set_bitmap(RPG::Cache.windowskin('皮肤窗口'))
复制代码


另,如果想写的比较花,可以把方法名写为 windowskin=:
  1. class Arrow_Base
  2.   def windowskin=(w)
  3.     self.bitmap = w
  4.     update if w
  5.   end
  6. end
复制代码

然后你就可以写:
  1. @enemy_arrow.windowskin = RPG::Cache.windowskin('皮肤窗口')
复制代码

点评

完美解决!  发表于 2022-6-19 21:19
guoxiaomi 发表于 2022-6-19 00:44:18
本帖最后由 guoxiaomi 于 2022-6-19 00:47 编辑

都是些写法上的小问题,你具体想做什么?把你写的这个 bitmap 函数直接删了不就不报错了。你只修改了 Arrow_Actor 的位图,并且默认 Bitmap = nil,当然就不显示敌人的箭头了。

而且直接操作继承自 Sprite 的 @bitmap 对象可能会有问题,建议跟上面保持一致,使用 self.bitmap 操作
黑米馒头 发表于 2022-6-18 22:55:46
guoxiaomi 发表于 2022-6-18 01:00
实际上要修改的是 @actor_arrow 的 bitmap,参见 Arrow_Base 类的 initialize 方法。
如果想修改,还需要加 ...

变化窗口皮肤.rar (192.73 KB, 下载次数: 7)   不知道哪里错了。。反正就是跳出脚本错误~~~
guoxiaomi 发表于 2022-6-18 01:00:10
本帖最后由 guoxiaomi 于 2022-6-18 01:02 编辑

实际上要修改的是 @actor_arrow 的 bitmap,参见 Arrow_Base 类的 initialize 方法。
如果想修改,还需要加上
  1. attr_accessor :bitmap
复制代码
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-5-5 00:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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