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

Project1

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

[已经解决] Sprite_Battler的改写问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
82
在线时间
124 小时
注册时间
2011-10-6
帖子
26
跳转到指定楼层
1
发表于 2021-3-31 08:52:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
Sprite_Battler#update中
RUBY 代码复制
  1. if @battler.battler_name != @battler_name or#####1
  2.    @battler.battler_hue != @battler_hue
  3.     # 获取、设置位图
  4.     @battler_name = @battler.battler_name
  5.     @battler_hue = @battler.battler_hue
  6.     self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  7.     @width = bitmap.width
  8.     @height = bitmap.height
  9.     self.ox = @width / 2
  10.     self.oy = @height
  11.     # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
  12.     if @battler.dead? or @battler.hidden
  13.       self.opacity = 0
  14.     end
  15. end
  16. if @battler.hp != @battler_hp#####2
  17.    @battler_hp = @battler.hp
  18.    p 1
  19. end
  20. if @battler.states != @battler_states#####3
  21.    @battler_states = @battler.states
  22.    p 2
  23. end
  24. if Input.trigger?(Input::A)
  25.   @battler.states.push(3)#####4
  26.   p @battler_states#=>[3],'p 2'没有弹窗
  27. end

我仿照#####1处结构写了#####2和#####3,#####2处每次@battler.hp更改都可以正常调用'p 1',#####3处@battler.states更改只有第一次能调用'p 2',即@battler_states==nil和@battler.states==[]的时候,第一次调用后,@battler_states==[]和@battler.states==[]。此后再次更改@battler.states,比如#####4处,@battler.states.push(3),无法调用'p 2',但是'p @battler_states'结果是[3],像是执行了'@battler_states = @battler.states'。想不明白,也不知道搜什么,此问,谢谢

Lv5.捕梦者

梦石
0
星屑
37804
在线时间
5406 小时
注册时间
2006-11-10
帖子
6546
2
发表于 2021-3-31 10:13:39 | 只看该作者
因为, @battler.states是"对象"而不是"返回值"

if @battler.states != @battler_states#####3
   @battler_states = @battler.states
   p 2
end

你这句就是把 @battler_states "绑定" @battler.states 这个对象, 那自然, 除了第一次 @battler_states是nil,因此 != @battler.states 判定有效外, 其他时候, ==都是成立的, 因为就是"同一个人"嘛

举个栗子, 今天改名叫张三,明天改名叫李四, 你不一样还是你,  而你今天带个帽子,明天披个披风, 那对 你 == 你 这个判定有影响么?

那怎么才能让判定生效?

if @battler.states != @battler_states#####3
   @battler_states = @battler.states.dup
   p 2
end

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-4-29 00:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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