我打算扩展CCSprite
课程,以创建Block
课程,这是我游戏的基本构建模块。可能有许多“拱形块” - 各个块基于的原型。特别是,我想创建一个调色板,用户可以从中选择要放置在游戏板上的构建块。一旦放置在棋盘上,积木就会拥有自己的身份。如何复制扩展CCSprite的实例?
这是我到目前为止有:
class Block : public CCSprite {
private:
int _id = 0;
int _type = 0;
public:
Block* CopyBlock();
}
一旦用户选择了Block
并且将其在游戏板上,CopyBlock
将被调用和原型安全地回到了调色板,离开新铸造Block
在游戏板上过着自己的生活。
我注意到CCObject
“实行”一Copy
方法,但据我可以告诉这只是指为CCObject
一个CopyWithZone(0)
了未实现。然而,Copy
方法并不是虚拟的,所以我有点不确定是否可以覆盖它。 (我不是在C超强++,但我有OOP上把握好,所以我弥补了细节,如果有人愿意分享。)
问:
1)这是否化妆设计感?我是否应该重写Copy
和/或CopyWithZone
而不是?
2)我如何能实现CopyBlock
(或Copy
和/或CopyWithZone
),这样既CCSprite
东西,成员一样_type
被复制到新Block
?
谢谢!
非常感谢你!这正是我需要的! :) – conciliator