横屏小游戏--萝莉快跑源码分析一

Cpp文件功能介绍

GameAboutScene.cpp 关于页面

GameMainScene.cpp游戏主页面

GameMark.cpp分数

GameMenuScene.cpp游戏主菜单

GameObjHero.cpp主角

GameObjMap.cpp游戏地图

GameObjStar.cpp星星

菜单主页面:

主菜单页面背景

    CCSprite* bg = CCSprite::create("MainMenu.png");
    bg->setScale(0.5);
    bg->setPosition( ccp(size.width/2, size.height/2) );
    this->addChild(bg, 0,0);

菜单按钮及其效果,单击事件

CCMenuItemImage *newGameItem = CCMenuItemImage::create("newGameA.png", "newGameB.png",this,menu_selector(GameMenu::menuNewGameCallback)); //NEW GAME
    newGameItem->setScale(0.5);
    newGameItem->setPosition(ccp(size.width / 2 + 40,size.height / 2 - 20));
    newGameItem->setEnabled(false);	//暂不可见
    CCMenuItemImage *continueItem = CCMenuItemImage::create("continueA.png", "continueB.png",this,menu_selector(GameMenu::menuContinueCallback));  //CONTINUE
    continueItem->setScale(0.5);
    continueItem->setPosition(ccp(size.width / 2 + 40,size.height / 2 - 60));
    continueItem->setEnabled(false);
    CCMenuItemImage *aboutItem = CCMenuItemImage::create("aboutA.png", "aboutB.png",this,menu_selector(GameMenu::menuAboutCallback));  //About
    aboutItem->setScale(0.5);
    aboutItem->setPosition(ccp(size.width / 2 + 40,size.height / 2 - 100));
    aboutItem->setEnabled(false);
    soundItem = CCMenuItemImage::create("sound-off-A.png", "sound-off-B.png",this,menu_selector(GameMenu::menuSoundCallback)); //声音
    soundItem->setScale(0.5);
    soundItem->setEnabled(false);
    soundItem->setPosition(ccp(40,40));
    CCMenu* mainmenu = CCMenu::create(newGameItem,continueItem,aboutItem,soundItem,NULL);
    mainmenu->setPosition(ccp(0,0));
    this->addChild(mainmenu,1,3);
    issound = false;

进入该场景动画,菜单按钮由小至大缩放,并显示菜单

void GameMenu::onEnter(){
    CCLayer::onEnter();
    CCSize size = CCDirector::sharedDirector()->getWinSize();
    CCNode* mainmenu = this->getChildByTag(3);
    mainmenu->setScale(0);
    mainmenu->runAction(CCSequence::create(CCScaleTo::create(0.5,1),CCCallFuncN::create(this, callfuncN_selector(GameMenu::menuEnter)),NULL));
}
void GameMenu::menuEnter(CCNode* pSender ){
    CCNode* mainmenu = this->getChildByTag(3);
    CCArray* temp = mainmenu->getChildren();
    for(int i = 0;i < temp->count();i ++)
        ((CCMenuItemImage *)temp->objectAtIndex(i))->setEnabled(true);
}

菜单按钮单击事件切换场景

切换游戏主页面

void GameMenu::menuNewGameCallback(CCObject* pSender)
{
    CCDirector::sharedDirector()->setDepthTest(true);
    CCDirector::sharedDirector()->replaceScene(CCTransitionPageTurn::create(0.5,GameMain::scene(), false));
}
void GameMenu::menuContinueCallback(CCObject* pSender)
{
    CCDirector::sharedDirector()->setDepthTest(true);
    CCDirector::sharedDirector()->replaceScene(CCTransitionPageTurn::create(0.5,GameMain::scene(), false));
}

切换关于页面

void GameMenu::menuAboutCallback(CCObject* pSender)
{
    CCDirector::sharedDirector()->setDepthTest(true);
    CCDirector::sharedDirector()->replaceScene(CCTransitionPageTurn::create(0.5,GameAbout::scene(), false));
}

背景音乐设置

void GameMenu::menuSoundCallback(CCObject* pSender)
{
	if(!issound)//开
	{
		soundItem->setNormalImage(CCSprite::create("sound-on-A.png"));
		soundItem->setDisabledImage(CCSprite::create("sound-on-B.png"));
		CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic(CCFileUtils::sharedFileUtils()->fullPathForFilename("background.mp3").c_str(), true);
		issound = true;
	}
	else//关
	{
		soundItem->setNormalImage(CCSprite::create("sound-off-A.png"));
		soundItem->setDisabledImage(CCSprite::create("sound-off-B.png"));
		CocosDenshion::SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();
		issound = false;
	}

}

横屏小游戏--萝莉快跑源码分析一

时间: 2025-01-03 11:18:29

横屏小游戏--萝莉快跑源码分析一的相关文章

横屏小游戏--萝莉快跑源码分析三

主角出场: 初始化主角 hero = new GameObjHero(); hero->setScale(0.5); hero->setPosition(ccp(100,160)); hero->setVisible(false); addChild(hero,1); 进入GameObjHero类ccp文件 创建主角及动作 this->setContentSize(CCSizeMake(85,90)); //接收触摸事件 CCDirector* pDirector = CCDire

横屏小游戏--萝莉快跑源代码分析三

主角出场: 初始化主角 hero = new GameObjHero(); hero->setScale(0.5); hero->setPosition(ccp(100,160)); hero->setVisible(false); addChild(hero,1); 进入GameObjHero类ccp文件 创建主角及动作 this->setContentSize(CCSizeMake(85,90)); //接收触摸事件 CCDirector* pDirector = CCDire

HTML5小游戏-绵羊快跑

用HTML5仿一款灵敏测试的flash小游戏程序 下载地址:http://www.huiyi8.com/divcss/<?php/**Author: Jamin* */if(substr_count($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip')){    ob_start('ob_gzhandler');}?><!DOCTYPE html><html><head><title>绵羊快跑</title>

leveldb源码分析--BloomFilter

bloomfilter是leveldb中的一大性能利器,所以为了文章的表现完整性这里新启这么一篇文章.leveldb中的bloomfilter的实现在bloom.cc中,是一个较为简单的实现,所以就不再具体进行分析.本文列出两个参考地址: 那些优雅的数据结构(1) : BloomFilter——大规模数据处理利器 是一个简单的bloomfilter的介绍乐和实现 Bloom Filter  则是一位专业的bloomfilter的研究人士的博客,内容及其的牛逼,对此感兴趣的阅读以下其文章应该有不小

cocos2dx实战篇——Demo《萝莉快跑》学习心得

[唠叨] 源码教程请移步:http://blog.csdn.net/iamlazybone/article/details/19612941 感谢懒骨头提供了这么多的Demo教程,对于初学者的我而言,帮助真的十分大. 注:本节仅仅记录博主自身学习<萝莉快跑>的心得体会. [游戏截图] [学习心得] 1.游戏主场景分层 如果将所有的元素全部都写在一个Game类里面,会很混乱,且改动也很麻烦. 所以应该对游戏的元素进行分层,如:背景层.人物层.怪物层.道具层等. 然后再将所有的层放入Game场景中

Android斗地主棋牌游戏牌桌实现源码下载

本次给大家分享下Android斗地主棋牌游戏牌桌实现源码下载如下:为了节约内存资源,每张扑克牌都是剪切形成的,当然这也是当前编程的主流方法. 1.主Activity    package com.bison;            import android.app.Activity;      import android.content.pm.ActivityInfo;      import android.os.Bundle;      import android.view.Wind

gomoblie flappy 源码分析:游戏逻辑

本文主要讨论游戏规则逻辑,具体绘制技术请参看相关文章: gomoblie flappy 源码分析:图片素材和大小的处理 http://www.cnblogs.com/ghj1976/p/5222289.html 绘制时间间隔控制 绘制是按照 60 FPS 的节奏绘制的(即每秒钟 60 帧),  FPS : frames per second(帧率) 代码中的控制注意是通过 golang.org/x/mobile/exp/sprite/clock 下的 Time 控制的.  Time实际是 int

分享一个Unity3D小作品,欢迎索取源码!

在一年多前知道了Unity这款游戏引擎.在得知她极大地简化游戏开发的难度并可以使用我最熟悉的C#开发后,便毅然决然地开始学习Unity3D.说来惭愧,期间,由于个人原因,学习断断续续,直到现在才有一个勉强拿的出手的小作品.这款小游戏是一款类似超级马里奥的冒险游戏,玩法简单明了不费脑. 游戏截图 菜单界面 查看最高分 设置游戏难度,主要是设置主角受攻击时的伤害 可以通过跳跃攻击小怪兽 匕首攻击 滑行越过障碍物 乘坐来回移动的平台去往目的地 你赢了!就这样! 操作键设置 在该项目中自定义了几个操作键

静态分析第三发 so文件分析(小黄人快跑)

本文作者:i春秋作家--HAI_ 0×00 工具 1.IDA pro 2.Android Killer 0×01 环境 小黄人快跑 下载地址http://download.csdn.net/download/qq_36869808/10179100 0×02 支付分析 和其他的支付不一样,没有使用原生的Toast,所以我们要进行进一步分析. 0×03 祭神器 之前隐藏了一个技能,当然不是我的哈,是神器的技能.这个技能厉害到不需要动态调试就可以查看LOG.也是感谢程序员的辛勤奉献,不知道是不是调试