这个植物大战僵尸的小游戏Demo 虽然下,但是基本包括了:
1.植物的选取、僵尸的攻击、发射子弹;
2.太阳的生成、碰撞检测等功能;
第一部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第一部分:开始场景
第二部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第二部分:菜单场景
第三部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第三部分:通关场景
第四部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第四部分:通关失败场景
第五部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第五部分:公用类
第六部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第六部分:植物类
第七部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第七部分:僵尸类
第八部分:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第八部分:子弹类
第九部分<A>:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第九部分:游戏场景GameScene.h
第九部分<B>:Cocos2d-x简单游戏<植物大战僵尸>代码实现|第九部分:游戏场景GameScene.cpp
/*
给场景主要用于选择进入游戏界面的
,这里笔者只写了 游戏菜单的实现功能
*/
#ifndef __MyTest__MenuScene__
#define __MyTest__MenuScene__
#include <iostream>
#include "CommonHeader.h"
class MenuScene:public CCLayer{
public:
MenuScene();
~MenuScene();
virtualbool init();
CREATE_FUNC(MenuScene);
SCENE_FUNC(MenuScene);
//冒险方法
void adventureMode();
};
#endif /* defined(__MyTest__MenuScene__) */
#include "MenuScene.h"
#include "GameScene.h"
#include "SimpleAudioEngine.h"
using namespace CocosDenshion;
boolMenuScene::init(){
INIT_CCLAYER_FUNC;
//获取设备尺寸
CCSize size =CCDirector::sharedDirector()->getWinSize();
//添加场景
CCSprite* pSprite =CCSprite::create("main_background.png");
pSprite->setScale(2.0f);
pSprite->setPosition(ccp(size.width/2, size.height/2) );
this->addChild(pSprite,0);
//创建成就图片
CCMenuItemImage *sucessImage =CCMenuItemImage::create("chengjiu.png","chengjiu1.png");
sucessImage->setScale(1.5f);
sucessImage->setPosition(ccp(size.width/2-80,size.height/2-80));
//创建点击图片按钮-并添加点击事件
CCMenuItemImage *imageBtn1 =CCMenuItemImage::create("select10.png","select11.png");
imageBtn1->setScale(2.0f);
imageBtn1->setTarget(this,menu_selector(MenuScene::adventureMode));
imageBtn1->setPosition(ccp(size.width/2+200,size.height/2+200));
//
CCMenuItemImage *imageBtn2 =CCMenuItemImage::create("select20.png","select21.png");
imageBtn2->setScale(2.0f);
imageBtn2->setPosition(ccp(size.width/2+200,size.height/2+90));
CCMenuItemImage* imageBtn3 =CCMenuItemImage::create("select30.png","select31.png");
imageBtn3->setScale(2.0f);
imageBtn3->setPosition(ccp(size.width/2+200,size.height/2));
CCMenuItemImage* imageBtn4 =CCMenuItemImage::create("select40.png","select41.png");
imageBtn4->setScale(2.0f);
imageBtn4->setPosition(ccp(size.width/2+190,size.height/2-90));
CCMenuItemImage* imageBtn5 =CCMenuItemImage::create("SelectorScreen_Almanac.png","SelectorScreen_AlmanacHighlight.png");
imageBtn5->setScale(1.5f);
imageBtn5->setPosition(ccp(size.width/2+70,size.height/2-160));
CCMenuItemImage* imageBtn6 =CCMenuItemImage::create("shop0.png","shop1.png");
imageBtn6->setScale(1.5f);
imageBtn6->setPosition(ccp(size.width/2+370,size.height/2-150));
CCMenu* menu =CCMenu::create(sucessImage, imageBtn1, imageBtn2, imageBtn3, imageBtn4, imageBtn5, imageBtn6,NULL);
menu->setPosition(CCPointZero);
this->addChild(menu);
return true;
}
MenuScene::MenuScene(){
}
MenuScene::~MenuScene(){
}
voidMenuScene ::adventureMode(){
//切换到游戏界面
CCTransitionCrossFade* fade =CCTransitionCrossFade::create(1,GameScene::scene());
CCDirector::sharedDirector()->replaceScene(fade);
}