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

Project1

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

[已经解决] self.变量的self的意思

[复制链接]

Lv2.观梦者

梦石
0
星屑
430
在线时间
34 小时
注册时间
2018-4-9
帖子
17
跳转到指定楼层
1
发表于 2018-9-23 11:35:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
按照文档改写计时器时遇到了这个问题。

class Sprite_Timer
  alias jingmo_create_bitmap create_bitmap
  alias jingmo_update_position update_position
  def create_bitmap
    jingmo_create_bitmap
    self.bitmap = Bitmap.new(200,50)
    self.bitmap.font.size=20
    self.bitmap.font.color.set(50,62,78)
  end
  def update_position
    x=0
  end
end
不加self.的话那bitmap就还是未改写之前的bitmap。
而update_position中x虽然没有加self.却没问题。
下面是原来的方法。

def create_bitmap
    self.bitmap = Bitmap.new(96, 48)
    self.bitmap.font.size = 32
    self.bitmap.font.color.set(255, 255, 255)
  end


def update_position
    self.x = Graphics.width - self.bitmap.width
    self.y = 0
    self.z = 200
  end

Lv4.逐梦者

梦石
8
星屑
4801
在线时间
1567 小时
注册时间
2014-1-9
帖子
402

开拓者

2
发表于 2018-9-23 19:01:38 | 只看该作者
self是当前对象的意思,也就是存储Sprite_Timer这个类的实例变量
回复 支持 1 反对 0

使用道具 举报

Lv2.观梦者

梦石
0
星屑
430
在线时间
34 小时
注册时间
2018-4-9
帖子
17
3
 楼主| 发表于 2018-9-24 14:57:09 | 只看该作者
啊,确定了这个的话重新分析一遍我好像知道了。
给create_bitmap命别名后我在新的方法引用了一遍原来的方法,而原来的方法一开始已经有了self.bitmap变量,所以我在新的方法中其实是给self.bitmap重新赋值了,不加self.实际上是定义了另一个bitmap,所以没用。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 04:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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