cocos2dx Demo
其实一直蛮想写一个做项目的博文教程,但目前觉得自己能力还不够,最近公司的项目又比较紧,一直都抽不出时间来写关于项目的博文(明天我要上班呢\(^o^)/~)。对于新手朋友(其实我也是新手lol) 们来说,我觉得动手写东西是一件提高水平的最好办法了,有很多功能,总觉得自己有想法,很容易实现,但真正要实现起来会碰到各种各样的问题,这些问题都是你之前没有想到的,所以我在这里还是建议新手朋友们一定要多多动手练习,只有在动手练习中才能真正的提高自己的能力。
关于cocos2d-x的基础知识,网上已经有一大堆博文了,而且那些大哥大姐们都写得非常好,所以我也不需要重复造轮子了,我尽量能让这篇博文能让大家学习到在其他博文里学不到的东西,这也是我写这篇博文的初衷,本博文涉及到内容还蛮多的,肯定是不能一次性写完,所以只能有时间的时候再更新了。
本博文涉及到的知识:
1.定义场景
2.loading界面
3.菜单回调函数
4.进度条
5.场景切换(特效切换)
6.精灵动画
7.滚动背景
8.声音管理
下面就先上几张效果
图吧:
(⊙o⊙)… 十一点多了,明天还要上班呢,有时间再更新吧~~(~﹃~)~zZ
2013年7月25日21:58:22
继续
我们先来走一个简单的loading界面吧,l加载资源的操作我们最好都放在loading界面中加载,这样在后续需要资源时可以直接从内存中读取,加快游戏的相应速度,我就不说那么多了,直接上代码吧:
h文件:
include "cocos2d.h"
//#include "SoundManager.h"
#include "Box2D/Box2D.h"
#include "SimpleAudioEngine.h"
//#include "cocos-ext.h"USING_NS_CC;
//USING_NS_CC_EXT ;/************************************************************************/
/*loading 界面by 深圳-xo
*/
/************************************************************************/
class HelloWorld : public cocos2d::CCLayer
{
public:virtual bool init(); static cocos2d::CCScene* scene();void menuCloseCallback(CCObject* pSender);//进度条void progressAnimation();void progressIsDone();
private://进度条所需CCSprite* loading ;CCSprite* loadingbg;CCProgressTimer* pro;CCProgressTo* to ;CCFiniteTimeAction* action;// implement the "static node()" method manuallyCREATE_FUNC(HelloWorld);
};
using namespace cocos2d;
using namespace CocosDenshion;
CCScene* HelloWorld::scene()
{CCScene * scene = NULL;do {// 'scene' is an autorelease objectscene = CCScene::create();CC_BREAK_IF(! scene);// 'layer' is an autorelease objectHelloWorld *layer = HelloWorld::create();CC_BREAK_IF(! layer);// add layer as a child to scenescene->addChild(layer);} while (0);// return the scenereturn scene;
}// on "init" you need to initialize your instance
bool HelloWorld::init()
{bool bRet = false;do {CC_BREAK_IF(! CCLayer::init());CCSprite* bg = CCSprite::create("menu/flash.png");bg->setPosition(CCPointZero);bg->setAnchorPoint(CCPointZero);this->addChild(bg,-1);this->progressAnimation();bRet = true;} while (0);return bRet;
}void HelloWorld::menuCloseCallback(CCObject* pSender)
{// "close" menu item clickedCCDirector::sharedDirector()->end();
}/**进度条动画的定义*/
void HelloWorld::progressAnimation()
{CCSize size = CCDirector::sharedDirector()->getWinSize();loading = CCSprite::create("loading.png");pro = CCProgressTimer::create(loading);
// pro->setScale(0.5f);//设置进度条显示样式pro->setType(kCCProgressTimerTypeBar);pro->setMidpoint(ccp(0,0));pro->setBarChangeRate(ccp(1,0));to = CCProgressTo::create(1,100);action = CCSequence::create(to,CCCallFunc::create(this,callfunc_selector(HelloWorld::progressIsDone)),NULL);loadingbg = CCSprite::create("loadbg.png");
// loadingbg->setScale(0.5f);pro->setPosition(ccp(size.width/2,loadingbg->getContentSize().height-20));loadingbg->setPosition(ccp(size.width/2,loadingbg->getContentSize().height-20));this->addChild(loadingbg);this->addChild(pro);pro->runAction(action);//schedule(schedule_selector(HelloWorld::progressIsDone),1);}
void HelloWorld::progressIsDone()
{if(to->isDone()||action->isDone()){//场景切换CCTransitionScene* mScene = NULL ;CCScene* s = MainMenu::scene();float t = 1.2f ;mScene = CCTransitionJumpZoom::create(t,s);CCDirector::sharedDirector()->replaceScene(mScene);}
}
cocos2dx Demo相关推荐
- Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上
2019独角兽企业重金招聘Python工程师标准>>> 感谢听D同学赞助的Demo. 那怎样让它运行在vs中呢: 1 使用cocos2d-x-2.2\tools\project-cr ...
- cocos2d-x 植入广告(二) 有米横屏、插屏广告和积分墙广告
相比于百度广告的SDK,有米广告的植入就很简单了,因为有米提供的有cocos2d-x的demo,基本上就是看着文档的流程,照着demo写自己的代码. [申请发布ID和应用密钥,下载SDK] 1.上传应 ...
- cocos2d-x接入live2d3.0学习
1. 准备阶段 下载安装Python,安装cocos2d-x需要用到Python 下载live2d3.0的sdk(Cubism SDK for Native) https://live2d.githu ...
- android检测内存使用工具--procrank
#!/bin/bash while true; do procrank | busybox grep "cn.toltech.cocos2dx.demo" sleep 1 done ...
- [个人开发者赚钱五]植入广告等获取收益
[导读]非常感谢大家支持我们,很多人看了文章后留言给我们说有豁然开朗的感觉,其实一篇文章,不同人看有不同效果,真心希望大家能够有所收获.这些原创揭秘文章,免费提供给大家,不希望改变你们什么,只是想大家 ...
- 一个基于cocos2d-x 3.0和Box2d的demo小程序
一个基于cocos2d-x 3.0和Box2d的demo小程序 p图demo小应用.想怎么p就怎么p 本文參考于http://blog.csdn.net/xiaominghimi/article/de ...
- cocos2dx 实现简单的文件上传到php服务器的demo
最近刚写完一个cocos2dx,从客户端上传到php服务器的简单测试程序,代码可以复制直接运行 在阅读代码前最好可以先花点时间了解一点php 和libcurl的相关知识,并不会花费太长时间,由于我做的 ...
- Cocos2dx游戏开发系列笔记3:牛刀小试-忍者飞镖射幽灵的Demo
2019独角兽企业重金招聘Python工程师标准>>> 就是这个例子,应该很简单,主要用到的有:精灵的移动,触摸,碰撞检测. 赶紧搞定,待会还要陪哲哲来几局爱消除. 首先在Scene ...
- Cocos2d-x 手游聊天系统Demo实现(Lua实现)
Cocos2d-x 手游聊天系统Demo实现 转载请注明:IT_xiao小巫 本篇博客给大家分享的是一个手游聊天系统,笔者也是第一次使用Cocos2d-x来实现这样一个模块,其中有很多不清楚不明白的地 ...
最新文章
- LeetCode Minimum Path Sum(动态规划)
- Windows锁定计算机C代码编程实现
- 用python玩转数据作业答案_大学mooc2020用Python玩转数据课后答案
- 【Matlab 控制】多智能体一致性收敛仿真
- 单点系统架构的可用性与性能优化
- awk获取+sed替换+paste命令追加一列
- sklearn自学指南(part9)--岭回归与分类
- 软件开发报价的计算方法[转载]
- switch类型模式
- tf.layers.dropout
- Pentium II Pentium III架构/微架构/流水线 (5) - MMX
- 【Spark】Spark ML 机器学习的一个案例
- 虚拟机网络驱动(共享文件夹)不见了的解决方案-适用于win7~win10 and Windows Server 2008~Windows Server 2012R2
- 查看80端口连接状态
- Python学习笔记(语句)
- 金蝶移动bos开发教程_移动安全(四)|NDK开发教程_JavaToC
- Meego的N9发布
- Java、JSP网上购物系统
- EINT、DINT、ERTM、DRTM和EALLOW、EDIS、ESTOP0解析
- 渐行渐远的是熟悉的身影