小小白基础问题求解

问题来自于主页的文章《使用Quick-Cocos2d-x搭建一个横版过关游戏(一)》

http://cn.cocos2d-x.org/tutorial/show?id=1193

而具体问题则是:添加玩家角色到场景中(搜索这个关键字可以找到我说的语句具体位置)

self.player = Player.new() – display.newSprite("#player1-1-1.png")
self.player:setPosition(display.left + self.player:getContentSize().width/2, display.cy)
self:addChild(self.player)

不知道是版本差异还是其他原因,我用的是quick-coco 3.3 final
创建对象的时候我把上面的代码尝试改成
self.player = Player.new()
:pos(display.left + self.player:getContentSize().width/2,display.cy)
:addTo(self)

但总是报错中间那行代码:attempt to index field ‘player’(a nil value)

我尝试把:pos(display.cx,display.cy),程序正常运行,所以基本可以确认问题出在self.player:getContentSize().width/2 这里
所以小弟请教,如果要修改这行代码的话,应该怎么修改??

ps,我试过用print把print(title:getContentSize())打印出来,窗口显示的是table,不知道解决问题是否有帮助

self.player 还没有成功赋值

self.player = Player.new()

self.player:pos(…):addTo(self)

什么意思呀??是我这句无效?self.player = Player.new()

你写的语句 self.player = Player.new():pos(display.left + self.player:getContentSize().width/2,display.cy):addTo(self) 有错误

最根本的错误在于,当你设置self.player = 时,是第一次给它赋值,之前self.player还不存在,那么赋值语句中用了还不存在self.player了,当然就会报错了

就好比C语言中 int i = i 一样 ,创立i的同时要用未创立的它来赋值,计算机就搞不清楚去哪里找那个还不存在的i了

至于如何修改,2楼已经威武了

感谢楼上的两位,的确是这个原因,问题已经解决了,再次感谢