class GameBoardView : public cocos2d::CCLayer
{
public:
GameBoard* gameBoard;
// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
virtual bool init();
void initWithGameBoard(GameBoard* gameBoard);
// there's no 'id' in cpp, so we recommand to return the exactly class pointer
static cocos2d::CCScene* scene();
// a selector callback
void menuCloseCallback(CCObject* pSender);
// implement the "static node()" method manually
CREATE_FUNC(GameBoardView); //漏写此句子,导到编译调试出错
};
#include "GameBoardController.h"
#include "GameBoardView.h"
#include "GameBoard.h"
using namespace cocos2d;
bool GameBoardController::init()
{
bool isInit=false;
do
{
CC_BREAK_IF(!CCNode::init()); //忘记使用!导致程序调试出错
/*
Assert failed: Argument must be non-nil
Assertion failed!
Program: C:\Windows\system32\libcocos2d.dll
File: d:\program files (x86)\microsoft visual st...\ccnode.cpp
Line: 627
Expression: child != 0
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts
*/
GameBoard* gameBoard=new GameBoard();
gameBoard->initWithRows(5,5);
GameBoardView *pLayer = GameBoardView::create();
pLayer->initWithGameBoard(gameBoard);
this->addChild(pLayer);
isInit=true;
CCLog("Control:view is create");
} while (0);
return isInit;
}