【史上最坑爹的游戏】001 游戏介绍及开始页面的实现

来源:互联网 发布:江苏银河网络 编辑:程序博客网 时间:2024/06/07 01:42

最近史上最坑爹的游戏挺风靡的,而且又更新了2,本系列文章将来一步步把这个游戏做出来。


1. 游戏介绍


相信很多人都玩过这款游戏,如果你没玩过的话,建议你下载一个试试,那么学习此系列文章,你将更有feeling。

废话不多说,上图你就明白了:










2. 开始界面的实现


游戏的开始界面如下:




开始界面有HelloWorldScene.h和HelloWorldScene.cpp实现。

HelloWorldScene.h中的代码如下:

#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#include "cocos2d.h"class HelloWorld : public cocos2d::Layer{public:    // there's no 'id' in cpp, so we recommend returning the class instance pointer    static cocos2d::Scene* createScene();    // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone    virtual bool init();      // a selector callback    void menuCloseCallback(Object* pSender);    // implement the "static create()" method manually    CREATE_FUNC(HelloWorld);};#endif // __HELLOWORLD_SCENE_H__

HelloWorldScene.cpp的代码如下:

#include "HelloWorldScene.h"#include "ScrollViewScene.h"USING_NS_CC;Scene* HelloWorld::createScene(){    // 'scene' is an autorelease object    auto scene = Scene::create();    // 'layer' is an autorelease object    auto layer = HelloWorld::create();    // add layer as a child to scene    scene->addChild(layer);    // return the scene    return scene;}// on "init" you need to initialize your instancebool HelloWorld::init(){    //////////////////////////////    // 1. super init first    if ( !Layer::init() )    {        return false;    }    //Size visibleSize = Director::getInstance()->getVisibleSize();    //Point origin = Director::getInstance()->getVisibleOrigin();    /////////////////////////////    // 2. add a menu item with "X" image, which is clicked to quit the program    //    you may modify it.    //加入背景    Size size = CCDirector::getInstance()->getWinSize();    SpriteFrameCache *cache = SpriteFrameCache::getInstance();    cache->addSpriteFramesWithFile("UIResoure.plist");    Sprite* sprite =Sprite::createWithSpriteFrameName("start-bg.png");    sprite->setPosition(Point(size.width*0.5+100,size.height*0.5));    addChild(sprite);    // 3.0的新实现方式    // add a "close" icon to exit the progress. it's an autorelease object//    auto closeItem = MenuItemImage::create(//                                           "UIResoure_play.png",//                                           "UIResoure_plays.png",//                                           CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));//    closeItem->setPosition(Point(size.width*0.5,size.height*0.5-100));////    // create menu, it's an autorelease object//    auto menu = Menu::create(closeItem, NULL);//    menu->setPosition(Point::ZERO);//    this->addChild(menu, 1);    //2.2的实现方式    MenuItemImage *closeItem = MenuItemImage::create();    closeItem->setNormalSpriteFrame(cache->spriteFrameByName("play-1.png"));    closeItem->setSelectedSpriteFrame(cache->spriteFrameByName("play-2.png"));    closeItem->initWithTarget(this, menu_selector(HelloWorld::menuCloseCallback));    closeItem->setPosition(Point(size.width*0.5,size.height*0.5-100));    auto menu = Menu::create(closeItem, NULL);    menu->setPosition(Point::ZERO);    this->addChild(menu, 1);    return true;}void HelloWorld::menuCloseCallback(Object* pSender){    //Director::getInstance()->end();    //实现    CCDirector::getInstance()->replaceScene(CCTransitionFade::create(0.5, ScrollViewScene::create()));    //释放没有用到过的缓冲    //CCTextureCache::sharedTextureCache()->removeUnusedTextures();}

这样的话,我们就把游戏的开始界面做好了。







0 0
原创粉丝点击