《別踩白塊2015經典版》設計說明文檔(1)(20210204110319)_第1頁
《別踩白塊2015經典版》設計說明文檔(1)(20210204110319)_第2頁
《別踩白塊2015經典版》設計說明文檔(1)(20210204110319)_第3頁
《別踩白塊2015經典版》設計說明文檔(1)(20210204110319)_第4頁
《別踩白塊2015經典版》設計說明文檔(1)(20210204110319)_第5頁
免費預覽已結束,剩余34頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2015 經典版設計說明版本號: V1.0、設計原理:一款休閑類游戲,依靠玩家反應能力獲得更多的黑塊。針對碎片時間較多、對反應能力有自信的人。整個頁面由黑白兩種色塊組成,頁面分為 4 列, 4 列中每一行隨機刷新一個黑塊,玩家需要依次點擊刷新的黑塊才能繼續(xù)游戲,漏點或點擊白塊后判定失敗。二、設計流程:游戲模式:游戲模式主要有3 種,經典模式、禪模式、街機模式。經典模式:以最快的速度準確的完成50 塊黑塊的收集。勝負判定:玩家準確收集完 50 個黑塊,判定勝利并記錄時間;玩家點擊了白塊則判定失敗。禪模式:在規(guī)定的時間內(30s)盡可能的收集黑塊。勝負判定:玩家在30s 內準確的收集黑塊,記錄收集

2、的黑塊數(shù)量;玩家點擊白塊則判定失敗。街機模式:屏幕會以一定的速度(速度會逐漸上升)向下刷新黑白塊,玩家必須準確點擊黑塊。勝負判定:玩家點擊白塊或漏點黑塊則判定玩家失敗,記錄當前收集黑塊數(shù)。設計流程圖:經典模式開始玩家是否點擊F開始不做任何反應開始計時彈出失敗結算界面-是計時繼續(xù)其他無操 作點擊下一黑白塊禪模式開始彈出結算界面,記錄收集的黑塊數(shù)彈出結算界面,記錄收集的黑塊數(shù)街機模式彈出結算界面,記錄收集的黑塊數(shù)道具道具名稱描述概率(暫定)價格(暫定)復活玩家死亡后可復活100%200鉆石繼續(xù)游戲,復活后有3秒準備時間三、UI設計說明:界面關系流程圖:游戲結算主界面:戰(zhàn)斗界面:商城界面:X800X

3、100.xiooojg488 n/ X400 贈88 |復活界面:結算界面街機模式35重新開始返回禮包界面:四、軟件架構圖五、算法1、游戲首界面代碼#ifndef _whiteBlock_FirstScene_#define _whiteBlock_FirstScene_#include "cocos2d.h"USING_NS_CC;class FirstScene : public cocos2d:CCLayerpublic:FirstScene();FirstScene();virtual bool init();static cocos2d:CCScene* scen

4、e();void replaceScene(CCObject *objectz);virtual void keyBackClicked();void queding();void quxiao();void toShangDian();CREATE_FUNC(FirstScene);private:int model;CCMenu* replaceSceneMenu;CCSprite* tuichuSprite;CCMenu* tuichumenu;CCLabelTTF* goldLabel;;#endif /* defined(_whiteBlock_FirstScene_) */ / /

5、 / /FirstScene.cppwhiteBlockCreated by liuqingyun on 14-12-7.#include "FirstScene.h"#include "MainScene.h"#include "Define.h"#include "UserData.h"#include "ShangdianScene.h"FirstScene:FirstScene():replaceSceneMenu(NULL)FirstScene:FirstScene()CCScene*

6、 FirstScene:scene()CCScene *scene = CCScene:create();FirstScene *layer = FirstScene:create();scene->addChild(layer);return scene; bool FirstScene:init()if ( !CCLayer:init() )return false;CCSize size=CCDirector:sharedDirector()->getWinSize();CCSprite* baoshi=CCSprite:create("zhuangshi.png&

7、quot;);baoshi->setPosition(ccp(50, size.height-50);addChild(baoshi);int baoshishuliang=UserData:getIntegerForKey(GOLD);CCLog("baoshishuliang is %d",baoshishuliang);CCString* baoshishu=CCString:createWithFormat("%d",baoshishuliang);goldLabel = CCLabelTTF:create(baoshishu->ge

8、tCString(), "arial", 30);goldLabel->setAnchorPoint(ccp(0, 0.5);goldLabel->setPosition(ccp(100,size.height-50);this->addChild(goldLabel,5);CCMenuItemImage *addGoldItem = CCMenuItemImage:create("jiahao.png","jiahao.png",this,menu_selector(FirstScene:toShangDian);

9、addGoldItem->setPosition(ccp(150+goldLabel->getContentSize().width,size.height-50);CCMenu* pMenu1 = CCMenu:create(addGoldItem, NULL);pMenu1->setPosition(CCPointZero);this->addChild(pMenu1);CCMenuItemImage *jingdianItem = CCMenuItemImage:create("jingdian.png","jingdian.png&

10、quot;,this,menu_selector(FirstScene:replaceScene);jingdianItem->setPosition(ccp(size.width/2, size.height/2+200);jingdianItem->setTag(JINGDIAN);CCMenuItemImage *chanItem = CCMenuItemImage:create("chan.png","chan.png",this,menu_selector(FirstScene:replaceScene);chanItem->

11、setPosition(ccp(size.width/2, jingdianItem->getPositionY()-150);chanItem->setTag(CHAN);CCMenuItemImage *jiejiItem = CCMenuItemImage:create("jieji.png","jieji.png",this,menu_selector(FirstScene:replaceScene);jiejiItem->setPosition(ccp(size.width/2, chanItem->getPositio

12、nY()-150);jiejiItem->setTag(JIEJI);CCMenuItemImage *shangchengItem = CCMenuItemImage:create("shangcheng.png","shangcheng.png",this,menu_selector(FirstScene:toShangDian);shangchengItem->setPosition(ccp(size.width/2, jiejiItem->getPositionY()-150);replaceSceneMenu = CCMenu

13、:create(jingdianItem,chanItem,jiejiItem,shangchengItem, NULL);replaceSceneMenu->setPosition(CCPointZero);this->addChild(replaceSceneMenu);tuichuSprite=CCSprite:create("tuichuBoard.png");tuichuSprite->setPosition(ccp(size.width/2, size.height/2);tuichuSprite->setVisible(false);a

14、ddChild(tuichuSprite);CCMenuItemImage *pQuedingItem = CCMenuItemImage:create("queding.png","queding.png", this,menu_selector(FirstScene:queding);pQuedingItem->setPosition(ccp(tuichuSprite->getContentSize().width/4,50);CCMenuItemImage *pQuxiaoItem = CCMenuItemImage:create(&q

15、uot;quxiao.png","quxiao.png", this,menu_selector(FirstScene:quxiao);pQuxiaoItem->setPosition(ccp(tuichuSprite->getContentSize().width/4*3,50);tuichumenu = CCMenu:create(pQuedingItem,pQuxiaoItem, NULL);tuichumenu->setPosition(CCPointZero);tuichuSprite->addChild(tuichumenu);

16、return true;void FirstScene:keyBackClicked()tuichuSprite->setVisible(true);void FirstScene:queding()CCDirector:sharedDirector()->end();void FirstScene:quxiao()tuichuSprite->setVisible(false);void FirstScene:replaceScene(CCObject *object)CCMenuItemImage *item = dynamic_cast<CCMenuItemImag

17、e *>(object);switch (item->getTag()case 1:model=JINGDIAN;break;case 2:model=CHAN;break;case 3:model=JIEJI;break;default:break;CCScene *pScene = MainScene:scene(model);CCDirector:sharedDirector()->replaceScene(pScene);void FirstScene:toShangDian()CCScene *pScene = ShangdianScene:scene(1);CCD

18、irector:sharedDirector()->replaceScene(pScene);2、游戲模塊設計代碼/ Block.h/ whiteBlock/ Created by liuqingyun on 14-12-5./#ifndef _whiteBlock_Block_#define _whiteBlock_Block_#include "cocos2d.h"USING_NS_CC;class Block : public cocos2d:CCSpritepublic:Block();Block();static Block* createWithArgs(

19、int i, CCSize size);virtual bool init();void setBlockColor(int color);int getLineIndex();void setLineIndex(int index);int returnColor();bool getpass();void setpass();CREATE_FUNC(Block);private:void initWithArgs(int i, CCSize size);private:CCLayerColor* blockColor;int lineIndex;int colorIndex;bool pa

20、ss;#endif /* defined(_whiteBlock_Block_) */ Block.cpp/ whiteBlock/ Created by liuqingyun on 14-12-5./#include "Block.h"#include "Define.h"using namespace cocos2d;Block:Block():blockColor(NULL),pass(false)Block:Block()Block* Block:createWithArgs(int i, CCSize size)Block* b=new Blo

21、ck();if (b&&b->init() b->autorelease();b->initWithArgs(i, size); return b;CC_SAFE_DELETE(b);return NULL;bool Block:init()if(!CCSprite:init()return false;return true;void Block:initWithArgs(int i, CCSize size)colorIndex=i;if (i=WHITE) colorIndex=1;blockColor = CCLayerColor:create(ccc

22、4(255, 255, 255, 255), size.width, size.height);if (i=BLACK) colorIndex=2;blockColor = CCLayerColor:create(ccc4(15, 15, 15, 255), size.width, size.height);if (i=BLUE) colorIndex=3;blockColor = CCLayerColor:create(ccc4(0, 0, 255, 255), size.width, size.height);if (i=GREY) colorIndex=6;blockColor = CC

23、LayerColor:create(ccc4(152, 155, 153, 255), size.width, size.height);if (i=GREEN) colorIndex=4;blockColor = CCLayerColor:create(ccc4(0, 255, 0, 255), size.width, size.height);if (i=RED) colorIndex=5;blockColor = CCLayerColor:create(ccc4(255, 0, 0, 255), size.width, size.height);blockColor->setAnc

24、horPoint(ccp(0.5, 0.5);blockColor->setPosition(ccp(this->getContentSize().width/2, this->getContentSize().height/2); addChild(blockColor);void Block:setBlockColor(int color)if (color=BLUE) colorIndex=3;blockColor->setColor(ccc3(0, 0, 255);else if (color=GREEN) colorIndex=4;blockColor->

25、;setColor(ccc3(0, 255, 0);else if (color=RED) colorIndex=5;blockColor->setColor(ccc3(255, 0, 0);else if (color=GREY) colorIndex=6;blockColor->setColor(ccc3(152, 155, 153);else if (color=BLACK) colorIndex=2;blockColor->setColor(ccc3(15, 15, 15);else if (color=WHITE) colorIndex=1;blockColor-&

26、gt;setColor(ccc3(255, 255, 255);int Block:returnColor()return colorIndex;int Block:getLineIndex()return lineIndex;void Block:setLineIndex(int index)lineIndex=index;bool Block:getpass()return pass;void Block:setpass()pass=true;3、游戲戰(zhàn)斗界面代碼/ MainScene.h/ whiteBlock/ Created by liuqingyun on 14-12-5./#if

27、ndef _whiteBlock_MainScene_#define _whiteBlock_MainScene_#include "cocos2d.h"#include "Block.h"USING_NS_CC;class MainScene : public cocos2d:CCLayerpublic:MainScene();MainScene();virtual bool init(int i);static cocos2d:CCScene* scene(int i);virtual bool ccTouchBegan(CCTouch *pTouc

28、h, CCEvent *pEvent);virtual void registerWithTouchDispatcher(void);private:void enemyInit();void addNormalLine(int lineIndex);void addEndLine();void startGame();void moveDown();void moveUp(float offset);void schedulemoveDown();void blockSetPositionX(Block* block);void startTime();void timeUpdate();/

29、void trueTouchUpdate();void blockMoveDown(Block* b);void judge(Block* block);/void gameOver();void replaceScene();void relive();void wrong();void beginCountdown();void countdownSeconds();void doCountdownAnimation(CCNode *node);void countdonwDone(CCNode* node);virtual void keyBackClicked();void quedi

30、ng();void quxiao();void jingdianTouch(CCTouch *pTouch);void chanTouch(CCTouch *pTouch);void jiejiTouch(CCTouch *pTouch);void buyLibao();void toShangDian();void pauseScene();private:/ CCArray* array;Block* array4;CCNode* timeNode;CCArray* blockArray;CCSprite* pauseSprite;CCLabelTTF* timeLabel;CCLabel

31、TTF* trueTouchLabel;CCLabelTTF* goldLabel;CCLabelTTF* goleCount;Block* endLine;CCSprite* dibanSprite;CCSprite* tuichuSprite;CCSprite* libaoSprite;CCMenu* tuichumenu;CCMenu* libaoMenu;int gameModel;int linesCount;int trueTouchCount;int bigLineIndex;int reliveIndex;long beginTime;bool timeRunning;bool

32、 success;bool pause;float speed;float timeIndex;#endif/ MainScene.cpp/ whiteBlock/ Created by liuqingyun on 14-12-5./#include "MainScene.h"#include "Block.h"#include "Define.h"#include "UserData.h"#include "LastScene.h"#include "FirstScene.h&quo

33、t;#include "ShangdianScene.h"#include "cocos-ext.h"#if (CC_TARGET_PLATFORM = CC_PLATFORM_ANDROID)#include <jni.h>#include "platform/android/jni/JniHelper.h"#include <android/log.h>#endifMainScene:MainScene():timeLabel(NULL),pauseSprite(NULL),timeRunning(fals

34、e),endLine(NULL),success(true),trueTouchCount(0),bigLineIndex(0),speed(8.0),timeIndex(0.1),linesCount(0),timeNode(NULL),reliveIndex(0),pause(false)blockArray=new CCArray();blockArray->retain();for (int i=0; i<4; i+) arrayi=NULL;MainScene:MainScene()CC_SAFE_DELETE(blockArray);CCScene* MainScene

35、:scene(int i)CCScene *scene = CCScene:create();MainScene *layer = new MainScene;if (layer&&layer->init(i) layer->autorelease();elseCC_SAFE_DELETE(layer);layer=NULL;scene->addChild(layer);return scene;bool MainScene:init(int i)if ( !CCLayer:init() )return false;CCSize size=CCDirector

36、:sharedDirector()->getWinSize();gameModel = i;timeNode = CCNode:create();addChild(timeNode,15);enemyInit();this->setTouchEnabled(true);tuichuSprite=CCSprite:create("tuichuBoard.png");tuichuSprite->setPosition(ccp(size.width/2, size.height/2);tuichuSprite->setVisible(false);addC

37、hild(tuichuSprite);CCMenuItemImage *pQuedingItem = CCMenuItemImage:create("queding.png","queding.png", this,menu_selector(MainScene:queding);pQuedingItem->setPosition(ccp(tuichuSprite->getContentSize().width/4,50);CCMenuItemImage *pQuxiaoItem = CCMenuItemImage:create("

38、quxiao.png","quxiao.png", this,menu_selector(MainScene:quxiao);pQuxiaoItem->setPosition(ccp(tuichuSprite->getContentSize().width/4*3,50);tuichumenu = CCMenu:create(pQuedingItem,pQuxiaoItem, NULL);tuichumenu->setPosition(CCPointZero);tuichuSprite->addChild(tuichumenu);/ set

39、KeypadEnabled(true);return true;void MainScene:keyBackClicked()tuichuSprite->setVisible(true);this->pauseSchedulerAndActions();void MainScene:queding()CCDirector:sharedDirector()->end();void MainScene:quxiao()tuichuSprite->setVisible(false);this->resumeSchedulerAndActions();void MainS

40、cene:enemyInit()cc_timeval psv;CCTime:gettimeofdayCocos2d( &psv, NULL );unsigned int tsrans = psv.tv_sec * 1000 + psv.tv_usec / 1000;srand( tsrans );CCSize size=CCDirector:sharedDirector()->getWinSize();/TimetimeLabel = CCLabelTTF:create();timeLabel->setColor(ccc3(255, 0, 0);timeLabel->

41、setFontSize(50);timeLabel->setString("0.0000");timeLabel->setPosition(ccp(size.width/2, size.height-80);addChild(timeLabel,TIMETAG);/trueTouchLabeltrueTouchLabel = CCLabelTTF:create();trueTouchLabel->setColor(ccc3(255, 0, 0);trueTouchLabel->setFontSize(50);trueTouchLabel->se

42、tString("0");trueTouchLabel->setPosition(ccp(size.width/2, size.height-120);addChild(trueTouchLabel,TIMETAG);pauseSprite = CCSprite:create("reliveBoard.png");pauseSprite->setPosition(ccp(size.width/2, size.height/2);pauseSprite->setVisible(false);addChild(pauseSprite,6);

43、goleCount = CCLabelTTF:create("200", "Arial", 24);goleCount->setPosition(ccp(pauseSprite->getContentSize().width/2, 40);pauseSprite->addChild(goleCount);CCMenuItemImage* reliveImage=CCMenuItemImage:create("fuhuo.png","fuhuo.png", this, menu_selector(M

44、ainScene:relive);reliveImage->setPosition(ccp(pauseSprite->getContentSize().width/2,pauseSprite->getContentSize().height/2-20);CCMenuItemImage* deadImage=CCMenuItemImage:create("cha.png","cha.png", this,menu_selector(MainScene:gameOver);deadImage->setPosition(ccp(paus

45、eSprite->getContentSize().width-20,pauseSprite->getContentSize().height-20);CCMenu* reliveMenu=CCMenu:create(reliveImage,deadImage, NULL);reliveMenu->setPosition(CCPointZero);pauseSprite->addChild(reliveMenu);if (gameModel=JINGDIAN) timeLabel->setVisible(true);trueTouchLabel->setVi

46、sible(false);else if (gameModel=CHAN)timeLabel->setVisible(true);trueTouchLabel->setVisible(true);timeLabel->setString("20.0000");else if (gameModel=JIEJI)timeLabel->setVisible(false);trueTouchLabel->setVisible(true);int baoshishuliang=UserData:getIntegerForKey(GOLD);/ CCLog

47、("baoshishuliang is %d",baoshishuliang);CCString* baoshishu=CCString:createWithFormat("%d",baoshishuliang);goldLabel = CCLabelTTF:create(baoshishu->getCString(), "arial", 30);goldLabel->setAnchorPoint(ccp(0, 0.5);goldLabel->setPosition(ccp(50,size.height-50);go

48、ldLabel->setColor(ccc3(255, 0, 0);goldLabel->setVisible(false);this->addChild(goldLabel,5);libaoSprite=CCSprite:create("libao.png");libaoSprite->setPosition(ccp(size.width/2, size.height/2);libaoSprite->setVisible(false);addChild(libaoSprite,10);CCMenuItemImage* buyImage=CCM

49、enuItemImage:create("libaogoumai.png","libaogoumai.png", this,menu_selector(MainScene:buyLibao);buyImage->setPosition(ccp(libaoSprite->getContentSize().width/2,libaoSprite->getContentSize().height/2-150);CCMenuItemImage* cancelImage=CCMenuItemImage:create("cha.png&q

50、uot;,"cha.png", this,menu_selector(MainScene:toShangDian);cancelImage->setPosition(ccp(libaoSprite->getContentSize().width-20,libaoSprite- >getContentSize().height-20);libaoMenu=CCMenu:create(buyImage,cancelImage, NULL);libaoMenu->setPosition(CCPointZero);libaoSprite->addChi

51、ld(libaoMenu);dibanSprite=CCSprite:create("diban.png");dibanSprite->setAnchorPoint(ccp(0, 0);dibanSprite->setPosition(ccp(0, 0);addChild(dibanSprite,10);this->schedule(schedule_selector(MainScene:pauseScene),0.001f);startGame();void MainScene:startGame()if (gameModel!=JIEJI) addNo

52、rmalLine(0);addNormalLine(1);addNormalLine(2);addNormalLine(3);else if (gameModel=JIEJI) for (int i=0; i<6; i+) addNormalLine(i);void MainScene:schedulemoveDown()speed=speed+0.005;dibanSprite->runAction(CCMoveBy:create(0.1f, CCPoint(0, -speed);Block* b;for (int i=0; i<blockArray->count()

53、; i+)b=(Block*)blockArray->objectAtIndex(i);b->runAction(CCMoveBy:create(0.1f, CCPoint(0, -speed);int lineIndex=b->getLineIndex();if (b->returnColor()=BLACK)&&lineIndex>0&&b->getPositionY()<=-200) b->setBlockColor(GREEN);success=false;CCLog("b Y is %f&quo

54、t;,b->getPositionY();int offset = abs(b->getPositionY()-200;moveUp(offset);wrong();if (b->getPositionY()<=-400) b->setPositionY(b->getPositionY()+1200);blockSetPositionX(b);if(b->returnColor()=RED|b->returnColor()=WHITE|b->returnColor()=GREEN) b->setBlockColor(WHITE);el

55、se if(b->returnColor()=GREY)b->setBlockColor(BLACK);b->setLineIndex(b->getLineIndex()+6);void MainScene:blockSetPositionX(Block* block)if (array0!=NULL&&array1!=NULL&&array2!=NULL&&array3!=NULL) for (int i=0; i<4; i+) arrayi=NULL;int x = CCRANDOM_0_1()*4;if (ar

56、rayx=NULL) arrayx=block;block->setPositionX(x*WIDTH/4);elseblockSetPositionX(block); void MainScene:judge(Block* block)/ CCSize visibleSize = CCDirector:sharedDirector()->getVisibleSize();if (gameModel!=JIEJI) if (block->getLineIndex()<0) blockArray->removeObject(block);block->removeFromParent();void MainScene:moveUp(float offset)CCLog(&quo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論