这个简单的捕鱼游戏Demo只是完成了简单的:
1.场景切换、数据加载、武器等级更换<大炮的升级>、
2.鱼的随机游动、大炮发射子弹、撒网、捕鱼
3.子弹、鱼、网的碰撞检测等;
4.场景及背景音乐的定时更换,碰撞时得音效;
仅供参考、入门练习用例;
第一部分:Cocos2d-x简单游戏<捕鱼达人>代码实现|第一部分:鱼类
第二部分:Cocos2d-x简单游戏<捕鱼达人>代码实现|第二部分:子弹、渔网、大炮类
第三部分:Cocos2d-x简单游戏<捕鱼达人>代码实现|第三部分:菜单类
第四部分:Cocos2d-x简单游戏<捕鱼达人>代码实现|第四部分:加载场景类
第五部分:Cocos2d-x简单游戏<捕鱼达人>代码实现|第五部分:游戏类
#ifndef __shows__SystemScene__
#define __shows__SystemScene__
#include <iostream>
#include "Header.h"
class SystemScene:publicCCLayer {
private:
// void startGame();
// void setGame();
//声明点击进入单人游戏的事件
void clickSingle(CCObject *sender);
void clickUpdate(CCObject *sender);
void clickMutil(CCObject *sender);
public:
SystemScene();
~SystemScene();
virtual bool init();
static CCScene* scene();
CREATE_FUNC(SystemScene);
};
#endif /* defined(__shows__SystemScene__) */
#include "SystemScene.h"
#include "GameScene.h"
#include "LoadingScene.h"
CCScene * SystemScene::scene(){
CCScene *scene;
do {
scene =CCScene::create();
CC_BREAK_IF(!scene);
SystemScene *layer = SystemScene::create();
CC_BREAK_IF(!layer);
scene->addChild(layer);
}while (0);
return scene;
}
SystemScene ::SystemScene(){
}
SystemScene::~SystemScene(){
}
bool SystemScene::init(){
if (!CCLayer::init()) {
return false;
}
CCSize winSize = WINSIZE_BYDIRECT;
//放置图片
CCSprite *bgSprite = CCSprite::create("loading2.png");
bgSprite->setScaleX(1.2f);
bgSprite->setPosition(CCPoint(winSize.width/2, winSize.height/2));//设置图片位置-->图片的中心点位置
this->addChild(bgSprite);//在场景中加载图片子类
//菜单
//clickSingle
CCMenuItemImage *oneImage =CCMenuItemImage::create("one.png","one_select.png",this,menu_selector(SystemScene::clickSingle));
oneImage->setPosition(CCPointMake(-270, -130));
CCMenuItemImage *multiImage =CCMenuItemImage::create("mutil.png","mutil_select.png",this,menu_selector(SystemScene::clickMutil));
multiImage->setPosition(CCPointMake(285, -120));
CCMenuItemImage *updateImage =CCMenuItemImage::create("update_call.png","update_call.png",this,menu_selector(SystemScene::clickUpdate));
updateImage->setScale(0.7f);
updateImage->setPosition(CCPointMake(80, -230));
CCMenu *menu = CCMenu ::create(oneImage,multiImage,updateImage,NULL);
this->addChild(menu);
//添加菜单
// CCMenuItemFont *start = CCMenuItemFont::create("开始游戏", this,menu_selector(SystemScene::startGame));
// CCMenuItemFont *setting = CCMenuItemFont::create("设置游戏", this,menu_selector(SystemScene::setGame));
//
// CCMenu *menus = CCMenu::create(start,setting,NULL);
// menus->alignItemsVertically();//排列方式
// menus->alignItemsVerticallyWithPadding(18.0f);
// this->addChild(menus);
return true;
}
voidSystemScene::clickMutil(CCObject *sender){
CCLog("%s",__FUNCTION__);
}
voidSystemScene::clickSingle(CCObject *sender){
//点击该方法是会切换到 LoadingLayer
CCScene *sin =LoadingScene::scene();
//使用动画切换场景--2s钟后切换到新的LoadingLayer场景
CCTransitionSplitRows *trans =CCTransitionSplitRows::create(2, sin);
//调用该方法意味着销毁当前的Layer 切换到下一个场景
CCDirector::sharedDirector()->replaceScene(trans);
}
voidSystemScene::clickUpdate(CCObject *sender){
CCLog("%s",__FUNCTION__);
}