《别踩白块经典版》设计说明文档1Word格式文档下载.docx
《《别踩白块经典版》设计说明文档1Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《别踩白块经典版》设计说明文档1Word格式文档下载.docx(52页珍藏版)》请在冰豆网上搜索。
主界面:
战斗界面:
商城界面:
复活界面:
结算界面
礼包界面:
四、软件架构图
五、算法
1、游戏首界面代码#ifndef__whiteBlock__FirstScene__
#define__whiteBlock__FirstScene__
#include"
cocos2d.h"
USING_NS_CC;
classFirstScene:
publiccocos2d:
:
CCLayer
{
public:
FirstScene();
~FirstScene();
virtualboolinit();
staticcocos2d:
CCScene*scene();
voidreplaceScene(CCObject*objectz);
virtualvoidkeyBackClicked();
voidqueding();
voidquxiao();
voidtoShangDian();
CREATE_FUNC(FirstScene);
private:
intmodel;
CCMenu*replaceSceneMenu;
CCSprite*tuichuSprite;
CCMenu*tuichumenu;
CCLabelTTF*goldLabel;
};
#endif/*defined(__whiteBlock__FirstScene__)*/
//FirstScene.cpp
//whiteBlock
//Createdbyliuqingyunon14-12-7.
//
FirstScene.h"
MainScene.h"
Define.h"
UserData.h"
ShangdianScene.h"
FirstScene:
FirstScene()
replaceSceneMenu(NULL)
{}
~FirstScene()
CCScene*FirstScene:
scene()
CCScene*scene=CCScene:
create();
FirstScene*layer=FirstScene:
scene->
addChild(layer);
returnscene;
}
boolFirstScene:
init()
if(!
CCLayer:
init())
{
returnfalse;
}
CCSizesize=CCDirector:
sharedDirector()->
getWinSize();
CCSprite*baoshi=CCSprite:
create("
zhuangshi.png"
);
baoshi->
setPosition(ccp(50,size.height-50));
addChild(baoshi);
intbaoshishuliang=UserData:
getIntegerForKey(GOLD);
CCLog("
baoshishuliangis%d"
baoshishuliang);
CCString*baoshishu=CCString:
createWithFormat("
%d"
goldLabel=CCLabelTTF:
create(baoshishu->
getCString(),"
arial"
30);
goldLabel->
setAnchorPoint(ccp(0,0.5));
setPosition(ccp(100,size.height-50));
this->
addChild(goldLabel,5);
CCMenuItemImage*addGoldItem=CCMenuItemImage:
create(
"
jiahao.png"
this,
menu_selector(FirstScene:
toShangDian));
addGoldItem->
setPosition(ccp(150+goldLabel->
getContentSize().width,size.height-50));
CCMenu*pMenu1=CCMenu:
create(addGoldItem,NULL);
pMenu1->
setPosition(CCPointZero);
addChild(pMenu1);
CCMenuItemImage*jingdianItem=CCMenuItemImage:
jingdian.png"
replaceScene));
jingdianItem->
setPosition(ccp(size.width/2,size.height/2+200));
setTag(JINGDIAN);
CCMenuItemImage*chanItem=CCMenuItemImage:
chan.png"
chanItem->
setPosition(ccp(size.width/2,jingdianItem->
getPositionY()-150));
setTag(CHAN);
CCMenuItemImage*jiejiItem=CCMenuItemImage:
jieji.png"
jiejiItem->
setPosition(ccp(size.width/2,chanItem->
setTag(JIEJI);
CCMenuItemImage*shangchengItem=CCMenuItemImage:
shangcheng.png"
shangchengItem->
setPosition(ccp(size.width/2,jiejiItem->
replaceSceneMenu=CCMenu:
create(jingdianItem,chanItem,jiejiItem,shangchengItem,NULL);
replaceSceneMenu->
addChild(replaceSceneMenu);
tuichuSprite=CCSprite:
tuichuBoard.png"
tuichuSprite->
setPosition(ccp(size.width/2,size.height/2));
setVisible(false);
addChild(tuichuSprite);
CCMenuItemImage*pQuedingItem=CCMenuItemImage:
queding.png"
queding));
pQuedingItem->
setPosition(ccp(tuichuSprite->
getContentSize().width/4,50));
CCMenuItemImage*pQuxiaoItem=CCMenuItemImage:
quxiao.png"
quxiao));
pQuxiaoItem->
getContentSize().width/4*3,50));
tuichumenu=CCMenu:
create(pQuedingItem,pQuxiaoItem,NULL);
tuichumenu->
addChild(tuichumenu);
returntrue;
voidFirstScene:
keyBackClicked()
setVisible(true);
queding()
CCDirector:
end();
quxiao()
replaceScene(CCObject*object)
CCMenuItemImage*item=dynamic_cast<
CCMenuItemImage*>
(object);
switch(item->
getTag())
case1:
model=JINGDIAN;
break;
case2:
model=CHAN;
case3:
model=JIEJI;
default:
CCScene*pScene=MainScene:
scene(model);
replaceScene(pScene);
toShangDian()
CCScene*pScene=ShangdianScene:
scene
(1);
2、游戏模块设计代码
//Block.h
//Createdbyliuqingyunon14-12-5.
#ifndef__whiteBlock__Block__
#define__whiteBlock__Block__
classBlock:
CCSprite
Block();
~Block();
staticBlock*createWithArgs(inti,CCSizesize);
voidsetBlockColor(intcolor);
intgetLineIndex();
voidsetLineIndex(intindex);
intreturnColor();
boolgetpass();
voidsetpass();
CREATE_FUNC(Block);
voidinitWithArgs(inti,CCSizesize);
CCLayerColor*blockColor;
intlineIndex;
intcolorIndex;
boolpass;
};
#endif/*defined(__whiteBlock__Block__)*/
//Block.cpp
Block.h"
usingnamespacecocos2d;
Block:
Block()
blockColor(NULL)
pass(false)
~Block()
Block*Block:
createWithArgs(inti,CCSizesize)
Block*b=newBlock();
if(b&
&
b->
init()){
b->
autorelease();
initWithArgs(i,size);
returnb;
CC_SAFE_DELETE(b);
returnNULL;
boolBlock:
if(!
CCSprite:
init())
voidBlock:
initWithArgs(inti,CCSizesize)
colorIndex=i;
if(i==WHITE){
colorIndex=1;
blockColor=CCLayerColor:
create(ccc4(255,255,255,255),size.width,size.height);
if(i==BLACK){
colorIndex=2;
create(ccc4(15,15,15,255),size.width,size.height);
if(i==BLUE){
colorIndex=3;
create(ccc4(0,0,255,255),size.width,size.height);
if(i==GREY){
colorIndex=6;
create(ccc4(152,155,153,255),size.width,size.height);
if(i==GREEN){
colorIndex=4;
create(ccc4(0,255,0,255),size.width,size.height);
if(i==RED){
colorIndex=5;
create(ccc4(255,0,0,255),size.width,size.height);
blockColor->
setAnchorPoint(ccp(0.5,0.5));
setPosition(ccp(this->
getContentSize().width/2,this->
getContentSize().height/2));
addChild(blockColor);
setBlockColor(intcolor)
if(color==BLUE){
setColor(ccc3(0,0,255));
elseif(color==GREEN){
setColor(ccc3(0,255,0));
elseif(color==RED){
setColor(ccc3(255,0,0));
elseif(color==GREY){
setColor(ccc3(152,155,153));
elseif(color==BLACK){
setColor(ccc3(15,15,15));
elseif(color==WHITE){
setColor(ccc3(255,255,255));
intBlock:
returnColor()
returncolorIndex;
getLineIndex()
returnlineIndex;
setLineIndex(intindex)
lineIndex=index;
getpass()
returnpass;
setpass()
pass=true;
3、游戏战斗界面代码
//MainScene.h
#ifndef__whiteBlock__MainScene__
#define__whiteBlock__MainScene__
classMainScene:
MainScene();
~MainScene();
virtualboolinit(inti);
CCScene*scene(inti);
virtualboolccTouchBegan(CCTouch*pTouch,CCEvent*pEvent);
virtualvoidregisterWithTouchDispatcher(void);
voidenemyInit();
voidaddNormalLine(intlineIndex);
voidaddEndLine();
voidstartGame();
voidmoveDown();
voidmoveUp(floatoffset);
voidschedulemoveDown();
voidblockSetPositionX(Block*block);
voidstartTime();
voidtimeUpdate();
voidtrueTouchUpdate();
voidblockMoveDown(Block*b);
voidjudge(Block*block);
voidgameOver();
voidreplaceScene();
voidrelive();
voidwrong();
voidbeginCountdown();
voidcountdownSeconds();
voiddoCountdownAnimation(CCNode*node);
voidcountdonwDone(CCNode*node);
voidjingdianTouch(CCTouch*pTouch);
voidchanTouch(CCTouch*pTouch);
voidjiejiTouch(CCTouch*pTouch);
voidbuyLibao();
voidpauseScene();
//CCArray*array;
Block*array[4];
CCNode*timeNode;
CCArray*blockArray;
CCSprite*pauseSprite;
CCLabelTTF*timeLabel;
CCLabelTTF*trueTouchLabel;
CCLabelTTF*goleCount;
Block*endLine;
CCSprite*dibanSprite;
CCSprite*libaoSprite;
CCMenu*libaoMenu;
intgameModel;
intlinesCount;
inttrue