我有一個SpritePlayer
類,它包含我的精靈。將精靈添加到節點
SpritePlayer.h:
class SpritePlayer : public cocos2d::Node
{
public:
SpritePlayer();
CREATE_FUNC(SpritePlayer);
void InitSpritePlayer(std::string pathToSptire);
cocos2d::Sprite *GetSprite();
(...)
private:
cocos2d::Sprite *_sprite;
}
SpritePlayer.cpp:
void SpritePlayer::InitSpritePlayer(std::string pathToSprite)
{
_sprite = cocos2d::Sprite::create(pathToSprite);
}
cocos2d::Sprite *SpritePlayer::GetSprite()
{
return _sprite;
}
(...)
在MainScene.cpp
我有:
for (int i = 0; i < 4; i++)
{
playerSpritesList[i] = &SpritePlayer();
playerSpritesList[i]->InitSpritePlayer("ch2.png");
this->addChild(playerSpritesList[i]->GetSprite(), 0);
//SpritePlayersNode->addChild(playerSpritesList[i]->GetSprite())
}
現在的問題 - 我怎麼會這樣精靈添加到一個節點?
這兩條底線都會導致錯誤,因爲我必須將Node
傳遞給addChild()
函數。
在我發佈答案之前我想問你爲什麼不直接從sprite繼承?這將允許您使用已經構建到sprite中的繼承的初始化功能。您似乎正在添加一個抽象層,目前對我而言,這看起來沒有任何用處。你對這個東西有什麼打算? –
我正在看另一個課程,我已經寫了這個。你在暗示,SpritePlayer類應該從sprite繼承嗎? 無論如何,我仍然需要以某種方式將Sprite轉換爲Node,以將其添加到場景中。 – Sagittario
Sprite是一個節點,你不需要轉換任何東西。我會在下面發佈你的問題的答案。 –