华容道05--关卡数据的显示
发布时间:2020-12-14 21:05:06 所属栏目:百科 来源:网络整理
导读:前面写了那么多,现在就是用前面信息的时候,把 Level 中的关卡显示出来。 首先,需要有一个关卡类的引用,这样才能得到我们想要的信息。 然后,需要一个 Vector 来存储 RoleSprite 。 代码: GameLayer.h private:Level * m_pLevel;//关卡数据的引用cocos2d
前面写了那么多,现在就是用前面信息的时候,把Level中的关卡显示出来。 首先,需要有一个关卡类的引用,这样才能得到我们想要的信息。 然后,需要一个Vector来存储RoleSprite。 代码: GameLayer.h private: Level * m_pLevel;//<关卡数据的引用 cocos2d::Vector<RoleSprite*> m_pRoleSpriteVec ;//<存储角色精灵
GameLayer.cpp #include "RoleSprite.h" #include "data/Role.h" #include "data/Level.h" GameLayer::GameLayer() :m_pLevel(nullptr) { m_pLevel = Level::s_levelVec.at(0) ; CC_SAFE_RETAIN(m_pLevel) ; } GameLayer::~GameLayer() { CC_SAFE_RELEASE_NULL(m_pLevel) ; } <p>bool GameLayer::init() { Size size = Director::getInstance()->getWinSize(); auto bgSprite = Sprite::create("main_bg0.png") ; bgSprite->setPosition(size.width / 2,size.height / 2) ; addChild(bgSprite);</p><p>initMap() ;</p><p>return true ; }</p>void GameLayer::initMap() { Size size = Director::getInstance()->getWinSize(); float x = 0 ; float y = 0 ; float paddingLeft = 10.0f ; float paddingBottom = 53.0f ; for (unsigned i = 0 ; i < m_pLevel->getRoleID().size() ;i++) { Role * pRole = Role::s_roleVec.at(m_pLevel->getRoleID().at(i)) ; Sprite * pp = Sprite::create(pRole->getImageName()->getCString()); int col = m_pLevel->getRolePos().at(i).x ; int row = m_pLevel->getRolePos().at(i).y ; x = paddingLeft + col * 1.0f * 75.0f ; y = paddingBottom + row * 1.0f * 75.0f ; RoleSprite * pRoleSprite = RoleSprite::create(pRole,row,col,Rect(x,y,pp->getContentSize().width,pp->getContentSize().height),this,this->getLocalZOrder()) ; m_pRoleSpriteVec.pushBack(pRoleSprite) ; } } 运行:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |