mirror of
https://github.com/wu736139669/OzgGameRPG.git
synced 2026-08-05 06:24:38 +00:00
92 lines
3.3 KiB
C++
92 lines
3.3 KiB
C++
//
|
|
// RPGMapChoicePlayerMenuLayer.cpp
|
|
// OzgGameRPG
|
|
//
|
|
// Created by ozg on 14-4-10.
|
|
//
|
|
//
|
|
|
|
#include "RPGMapChoicePlayerMenuLayer.h"
|
|
|
|
RPGMapChoicePlayerMenuLayer::RPGMapChoicePlayerMenuLayer()
|
|
{
|
|
|
|
}
|
|
|
|
RPGMapChoicePlayerMenuLayer::~RPGMapChoicePlayerMenuLayer()
|
|
{
|
|
CCNotificationCenter::sharedNotificationCenter()->removeObserver(this->m_target, "onChoicePlayer");
|
|
this->m_target->release();
|
|
|
|
CCLog("RPGMapChoicePlayerMenuLayer 释放");
|
|
}
|
|
|
|
bool RPGMapChoicePlayerMenuLayer::init(CppSQLite3DB *db, CCObject* target, SEL_CallFuncO selector, float width, float height)
|
|
{
|
|
if(CCLayerColor::initWithColor(ccc4(0, 0, 0, 200), width, height))
|
|
{
|
|
this->m_target = target;
|
|
this->m_target->retain();
|
|
|
|
this->m_db = db;
|
|
|
|
CCTMXTiledMap *mainBg = CCTMXTiledMap::create("select_player_style1.tmx");
|
|
mainBg->setPosition(ccp(270, 280));
|
|
mainBg->setTag(kRPGMapChoicePlayerMenuLayerTagBg);
|
|
this->addChild(mainBg);
|
|
|
|
CCMenu *mainMenu = CCMenu::create();
|
|
mainMenu->setTag(kRPGMapChoicePlayerMenuLayerTagMainMenu);
|
|
mainMenu->setAnchorPoint(CCPointZero);
|
|
mainMenu->setPosition(CCPointZero);
|
|
this->addChild(mainMenu);
|
|
|
|
this->setPosition(ccp((CCDirector::sharedDirector()->getWinSize().width - width) / 2, (CCDirector::sharedDirector()->getWinSize().height - height) / 2));
|
|
|
|
//显示4个角色
|
|
float playerX = 315;
|
|
CppSQLite3Query query = this->m_db->execQuery(PLAYER_QUERY);
|
|
while(!query.eof())
|
|
{
|
|
CCArray *frames = OzgCCUtility::createSpriteFrames(CCString::createWithFormat("%s_0.png", query.getStringField("tex_prefix"))->getCString(), 3, 4);
|
|
|
|
CCSprite *playerSprite = CCSprite::createWithSpriteFrame((CCSpriteFrame*)frames->objectAtIndex(1));
|
|
CCMenuItemSprite *player = (CCMenuItemSprite*)mainMenu->getChildByTag(kRPGMapChoicePlayerMenuLayerTagMainMenuPlayer + query.getIntField("id"));
|
|
if(!player)
|
|
{
|
|
player = CCMenuItemSprite::create(playerSprite, playerSprite, this, menu_selector(RPGMapChoicePlayerMenuLayer::onMenu));
|
|
player->cocos2d::CCNode::setPosition(ccp(playerX, 330));
|
|
player->setScale(1.5);
|
|
player->setTag(kRPGMapChoicePlayerMenuLayerTagMainMenuPlayer + query.getIntField("id"));
|
|
mainMenu->addChild(player);
|
|
}
|
|
|
|
playerX += 120;
|
|
query.nextRow();
|
|
}
|
|
query.finalize();
|
|
|
|
CCNotificationCenter::sharedNotificationCenter()->addObserver(this->m_target, selector, "onChoicePlayer", NULL);
|
|
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
RPGMapChoicePlayerMenuLayer* RPGMapChoicePlayerMenuLayer::create(CppSQLite3DB *db, CCObject* target, SEL_CallFuncO selector, float width, float height)
|
|
{
|
|
RPGMapChoicePlayerMenuLayer *obj = new RPGMapChoicePlayerMenuLayer();
|
|
if(obj && obj->init(db, target, selector, width, height))
|
|
{
|
|
obj->autorelease();
|
|
return obj;
|
|
}
|
|
CC_SAFE_DELETE(obj);
|
|
return NULL;
|
|
}
|
|
|
|
void RPGMapChoicePlayerMenuLayer::onMenu(cocos2d::CCObject *pObject)
|
|
{
|
|
CCNotificationCenter::sharedNotificationCenter()->postNotification("onChoicePlayer", pObject);
|
|
}
|