mirror of
https://github.com/wu736139669/SmallGame_Cocos2dx.git
synced 2026-08-05 06:23:09 +00:00
308 lines
11 KiB
C++
308 lines
11 KiB
C++
//
|
|
// Scene_GameList.cpp
|
|
// OnceAgain
|
|
//
|
|
// Created by xiaohai on 14-2-21.
|
|
//
|
|
//
|
|
|
|
#include "Scene_GameList.h"
|
|
#include "DialogManager.h"
|
|
#include "TimeUtil.h"
|
|
#include "PlayerInfoManager.h"
|
|
#include "Scene_Reward.h"
|
|
#include "GameLayerSysInfo.h"
|
|
#include "GameLayerFriendTaskList.h"
|
|
#include "GameLayerFriendList.h"
|
|
#include "GameLayerChallenge.h"
|
|
#include "FriendManager.h"
|
|
#include "GameShare_Msg.h"
|
|
#include "GameLayerChallenge.h"
|
|
#include "InfoSysManager.h"
|
|
#include "TaskManager.h"
|
|
#include "GameLayerInvite.h"
|
|
#include "GameWeekRewardLayer.h"
|
|
#include "PlayerInfoAndFightLayer.h"
|
|
#include "GameItemManager.h"
|
|
#include "NetHttpClient.h"
|
|
|
|
#if CC_TARGET_PLATFORM == CC_PLATFORM_IOS
|
|
|
|
#include "QQInterface.h"
|
|
#include "SinaInterface.h"
|
|
#include "GameItemManager.h"
|
|
|
|
#elif CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
|
|
|
|
#endif
|
|
|
|
enum GameList_Tag{
|
|
GameLayer_Tag = 100
|
|
};
|
|
|
|
Scene_GameList::Scene_GameList()
|
|
{
|
|
gameLayer = NULL;
|
|
dayLoginLayer = NULL;
|
|
// isGetFriendList = false;
|
|
}
|
|
Scene_GameList::~Scene_GameList()
|
|
{
|
|
// CC_SAFE_RELEASE(gameLayer);
|
|
// CC_SAFE_RELEASE(gameResource);
|
|
GUIReader::shareReader()->purgeGUIReader();
|
|
DictionaryHelper::shareHelper()->purgeDictionaryHelper();
|
|
ActionManager::shareManager()->purgeActionManager();
|
|
|
|
CCNotificationCenter::sharedNotificationCenter()->removeAllObservers(this);
|
|
}
|
|
CCScene* Scene_GameList::scene()
|
|
{
|
|
CCScene *scene = CCScene::create();
|
|
Scene_GameList *layer = Scene_GameList::create();
|
|
scene->addChild(layer);
|
|
return scene;
|
|
}
|
|
|
|
bool Scene_GameList::init()
|
|
{
|
|
//////////////////////////////
|
|
// 1. super init first
|
|
if ( !CCLayer::init() )
|
|
{
|
|
return false;
|
|
}
|
|
CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
|
|
|
|
//初始化游戏数据.
|
|
|
|
//背景图片.
|
|
CCSprite* bgSprite = CCSprite::create("./CocoStudioResources/bg.png");
|
|
bgSprite->setPosition(ccp(visibleSize.width/2, visibleSize.height/2));
|
|
this->addChild(bgSprite);
|
|
|
|
//上面的游戏资源
|
|
|
|
|
|
//游戏列表
|
|
gameLayer = GetDlgPtr(GameTableLayer);
|
|
gameLayer->ignoreAnchorPointForPosition(false);
|
|
gameLayer->setAnchorPoint(ccp(0.5, 0.5));
|
|
gameLayer->setPosition(visibleSize.width/2, visibleSize.height/2);
|
|
gameLayer->setTag(GameLayer_Tag);
|
|
this->addChild(gameLayer);
|
|
|
|
this->initListen();
|
|
|
|
//下面的游戏菜单.
|
|
GameLayer_Menu* gameMenu = GetDlgPtr(GameLayer_Menu);
|
|
gameMenu->addSetBtnCallback(this, coco_releaseselector(Scene_GameList::setButtonCallback));
|
|
gameMenu->addTaskBtnCallback(this, coco_releaseselector(Scene_GameList::setTaskCallback));
|
|
gameMenu->addSysInfoCallback(this, coco_releaseselector(Scene_GameList::setSysInfoCallback));
|
|
gameMenu->addFriendCallBack(this, coco_releaseselector(Scene_GameList::setFriendCallback));
|
|
gameMenu->addRankCallBack(this, coco_releaseselector(Scene_GameList::setRankCallback));
|
|
if (GameShare_Global::shareGlobal()->loginType == LoginType_Tourist) {
|
|
gameMenu->setNoLogin(false);
|
|
}else
|
|
{
|
|
gameMenu->setNoLogin(true);
|
|
}
|
|
|
|
this->addChild(gameMenu);
|
|
|
|
if (GameShare_Global::shareGlobal()->loginType != LoginType_Tourist) {
|
|
gameResource = GetDlgPtr(GameLayer_Resource);
|
|
gameResource->addGoldCallback(this, coco_releaseselector(Scene_GameList::addGoldCallback));
|
|
gameResource->addDiamondCallback(this, coco_releaseselector(Scene_GameList::addDiamondCallback));
|
|
this->addChild(gameResource);
|
|
gameLayer->riceBar->setVisible(true);
|
|
gameLayer->riceBar->addRiceCallbackFunc(this, coco_releaseselector(Scene_GameList::addRiceCallback));
|
|
}else{
|
|
gameLayer->riceBar->setVisible(false);
|
|
gameLayer->riceBar->addRiceCallbackFunc(NULL, NULL);
|
|
}
|
|
|
|
|
|
//每日登陆.
|
|
//先判断是否已经过了一天.
|
|
|
|
|
|
DateTime nowTime = CTimeUtil::GetSystemDateTime().dateTime;
|
|
DateTime lastDailyTaskTime = CTimeUtil::FromTimeStamp(CPlayerInfoMan::sharedInstance().getPlayerInfo().lastDailyTaskTime);
|
|
if ((nowTime.date.year>lastDailyTaskTime.date.year || nowTime.date.month>lastDailyTaskTime.date.month || nowTime.date.day>lastDailyTaskTime.date.day) && GameShare_Global::shareGlobal()->loginType != LoginType_Tourist) {
|
|
dayLoginLayer = GameLayer_DayLogin::create();
|
|
dayLoginLayer -> setCallBcak(this, callfunc_selector(Scene_GameList::setListForTheShowFriendScoreList));
|
|
this->addChild(dayLoginLayer);
|
|
}
|
|
else {
|
|
setListForTheShowFriendScoreList();
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
void Scene_GameList::setListForTheShowFriendScoreList() {
|
|
bool isShow = true;
|
|
isShow = CCUserDefault::sharedUserDefault() -> getBoolForKey("WellShowFriend");
|
|
if (isShow&&!CPlayerInfoMan::sharedInstance().getLoinStatus()) {
|
|
this -> runAction(CCSequence::create(CCDelayTime::create(0.01), CCCallFunc::create(this, callfunc_selector(Scene_GameList::addFriendListLayer)), NULL));
|
|
}
|
|
}
|
|
void Scene_GameList::addFriendListLayer() {
|
|
GameLayerFriendList* layer = GetDlgPtr(GameLayerFriendList);
|
|
this->addChild(layer);
|
|
}
|
|
|
|
void Scene_GameList::initListen()
|
|
{
|
|
//注册获得好友总分排行的通知.
|
|
// CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(Scene_GameList::getFriendTotalRank), kGetAllScoreRank, NULL);
|
|
//注册获得系统消息列表的通知.
|
|
// CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(Scene_GameList::getInfoList), kGetSysInfo, NULL);
|
|
//获取好友列表的通知.
|
|
CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(Scene_GameList::getFriendList), kSinaGetFriendSuccess, NULL);
|
|
//获取周任务列表的通知.
|
|
CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(Scene_GameList::getTask), kGetWeekTask, NULL);
|
|
//获取通知数量的更新.
|
|
CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(Scene_GameList::setInfoNumCallback), kGetSysNum, NULL);
|
|
//注册获得邀请好友列表的通知
|
|
CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(Scene_GameList::requestPlayerMoneyInfoMation), kRefreshMoney, NULL);
|
|
|
|
}
|
|
|
|
#pragma mark CallBack
|
|
//加载好友总排行榜框
|
|
void Scene_GameList::getFriendTotalRank(cocos2d::CCObject *pSender)
|
|
{
|
|
|
|
}
|
|
void Scene_GameList::getInfoList(cocos2d::CCObject *pSender)
|
|
{
|
|
|
|
}
|
|
void Scene_GameList::setSysInfoCallback(cocos2d::CCObject *pSender)
|
|
{
|
|
GameLayerSysInfo* layer = GetDlgPtr(GameLayerSysInfo);
|
|
this->addChild(layer);
|
|
}
|
|
void Scene_GameList::getFriendInfoListCallBack(cocos2d::CCObject *pSender) {
|
|
// GameLayerInvite *layer = GameLayerInvite::create();
|
|
// this->addChild(layer);
|
|
}
|
|
void Scene_GameList::setFriendCallback(cocos2d::CCObject *pSender)
|
|
{
|
|
//获取玩家个人信息.
|
|
// auto *layer = PlayerInfoAndFightLayer::create();
|
|
// addChild(layer);
|
|
|
|
// GameLayerInvite *layer = GameLayerInvite::create();
|
|
// this->addChild(layer);
|
|
GameLayerInvite* layer = GetDlgPtr(GameLayerInvite);
|
|
this->addChild(layer);
|
|
//#if CC_TARGET_PLATFORM == CC_PLATFORM_IOS
|
|
// if (CPlayerInfoMan::sharedInstance().getLognFirst()) {
|
|
// isGetFriendList = true;
|
|
// SinaInterface::shareInstant()->getFriend();
|
|
// CPlayerInfoMan::sharedInstance().setLognFirst(false);
|
|
// }
|
|
// else {
|
|
// CInfoSysManager::sharedInstance().RequestFriendListFromSql();
|
|
// }
|
|
//
|
|
//
|
|
//#elif CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
|
|
//
|
|
//#endif
|
|
// CFriendManager::sharedInstance().RequestGetAllRank();
|
|
}
|
|
void Scene_GameList::getFriendList(cocos2d::CCObject *pSender)
|
|
{
|
|
// if (isGetFriendList) {
|
|
// CInfoSysManager::sharedInstance().RequestFriendListFromSql();
|
|
// isGetFriendList = false;
|
|
// }
|
|
|
|
}
|
|
|
|
void Scene_GameList::setRankCallback(cocos2d::CCObject *pSender)
|
|
{
|
|
GameLayerFriendList* layer = GetDlgPtr(GameLayerFriendList);
|
|
this->addChild(layer);
|
|
}
|
|
void Scene_GameList::setButtonCallback(cocos2d::CCObject *pSender)
|
|
{
|
|
//系统设置
|
|
GameShare_SysSet* sysSetLayer = GameShare_SysSet::create();
|
|
sysSetLayer->setVisible(true);
|
|
// sysSetLayer->retain();
|
|
this->addChild(sysSetLayer);
|
|
// sysSetLayer->setVisible(true);
|
|
}
|
|
|
|
void Scene_GameList::setTaskCallback(cocos2d::CCObject *pSender)
|
|
{
|
|
CTaskMan::sharedInstance().requestWeekTaskTemp();
|
|
|
|
// CCScene *scene = Scene_Reward::scene();
|
|
// CCDirector::sharedDirector()->pushScene(CCTransitionFade::create(0.4, scene));
|
|
}
|
|
void Scene_GameList::setInfoNumCallback(cocos2d::CCObject *pSender)
|
|
{
|
|
CInfoSysManager::sharedInstance().RequestGetInfoNum();
|
|
}
|
|
void Scene_GameList::getTask(cocos2d::CCObject *pSender)
|
|
{
|
|
bool showTop = true;
|
|
//循环排查是否所有任务完成
|
|
VEC_SWEEKTASK& data = CTaskMan::sharedInstance().getWeekTaskData();
|
|
for (int i = 0; i < data.size(); i ++) {
|
|
if (data[i].haveGetReward == 0) {
|
|
showTop = false;
|
|
}
|
|
}
|
|
if (!showTop) {
|
|
GameLayerFriendTaskList* layer = GameLayerFriendTaskList::create();
|
|
this->addChild(layer);
|
|
}
|
|
else {
|
|
//弹出抽奖页面
|
|
auto *layer = GameWeekRewardLayer::create();
|
|
this -> addChild(layer);
|
|
}
|
|
}
|
|
|
|
void Scene_GameList::requestPlayerMoneyInfoMation(cocos2d::CCObject *p) {
|
|
gameResource -> reSetLv(CPlayerInfoMan::sharedInstance().getPlayerInfo().nLevel, CPlayerInfoMan::sharedInstance().getPlayerInfo().nExp);
|
|
gameResource->reSetDiamondNum(CPlayerInfoMan::sharedInstance().getPlayerInfo().nGem);
|
|
gameResource->reSetGoldNum(CPlayerInfoMan::sharedInstance().getPlayerInfo().nMoney);
|
|
}
|
|
|
|
void Scene_GameList::addGoldCallback(cocos2d::CCObject *pSender)
|
|
{
|
|
GameLayer_GoldMarket* goldMarket = GameLayer_GoldMarket::create();
|
|
this->addChild(goldMarket);
|
|
}
|
|
void Scene_GameList::addDiamondCallback(cocos2d::CCObject *pSender)
|
|
{
|
|
GameLayer_DiamondMarket* diamondMarket = GameLayer_DiamondMarket::create();
|
|
this->addChild(diamondMarket);
|
|
}
|
|
void Scene_GameList::addRiceCallback(cocos2d::CCObject *pSender)
|
|
{
|
|
GameLayer_RiceMarket* riceMarket = GameLayer_RiceMarket::create();
|
|
this->addChild(riceMarket);
|
|
}
|
|
void Scene_GameList::onEnter()
|
|
{
|
|
CCLayer::onEnter();
|
|
gameLayer->reFresh();
|
|
if (!CPlayerInfoMan::sharedInstance().getLoinStatus()) {
|
|
CPlayerInfoMan::sharedInstance().RequestPlayerMoneyInfoMation();
|
|
CInfoSysManager::sharedInstance().RequestGetInfoNum();
|
|
}
|
|
}
|
|
void Scene_GameList::onEnterTransitionDidFinish()
|
|
{
|
|
CCLayer::onEnterTransitionDidFinish();
|
|
// CItemMan::sharedInstance().RequestGetPackItem();
|
|
} |