cocos2dx视频教程一般要学习多久?

下次自动登录
现在的位置:
& 综合 & 正文
cocos2dx视频教程进阶篇–第2天–打砖块游戏-box2d物理引擎–续
注意:这是第二篇,上回
我们接着写
感觉直接看太枯燥的,请关注视频讲解
更新:高清avi视频和已经提供下载:
百度网盘: 里面的进阶篇。
2.主场景头文件
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
#include "../../../../external/Box2D/Box2D.h"
#include "MyContactListener.h"
USING_NS_CC;
class HelloWorld : public cocos2d::CCLayer
b2World* _
b2Body* _groundB
CCSprite* _ballS
CCSprite* _paddleS
b2MouseJoint* _mouseJ
MyContactListener*
b2Fixture* _
// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
virtual bool init();
// there's no 'id' in cpp, so we recommend returning the class instance pointer
static cocos2d::CCScene* scene();
// a selector callback
void menuCloseCallback(CCObject* pSender);
// implement the "static node()" method manually
CREATE_FUNC(HelloWorld);
void update(float delta);
bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);
#endif // __HELLOWORLD_SCENE_H__
3. 结束场景
#include "GameOverScense.h"
bool GameOverScene::initWithWin( bool isWin )
if (!CCLayer::init()){
char words[64];
if (isWin){
sprintf(words, "Man you rock!");
sprintf(words, "Man you suck!");
CCLabelTTF* label = CCLabelTTF::create(words, "Arial", 30);
label-&setPosition(ccp(320, 300));
this-&addChild(label);
CCScene* GameOverScene::scenseWithWin( bool isWin )
CCScene* sc = CCScene::create();
GameOverScene* layer = new GameOverScene();
layer-&initWithWin(isWin);
sc-&addChild(layer);
4. 结束场景头文件
#include "cocos2d.h"
USING_NS_CC;
class GameOverScene : public CCLayer
bool initWithWin(bool isWin);
static CCScene* scenseWithWin(bool isWin);
5. 碰撞监听文件
#include "MyContactListener.h"
void MyContactListener::BeginContact( b2Contact* contact )
MyContactPeer peer = {contact-&GetFixtureA(), contact-&GetFixtureB()};
_contacts.push_back(peer);
void MyContactListener::EndContact( b2Contact* contact )
MyContactPeer peer = {contact-&GetFixtureA(), contact-&GetFixtureB()};
vector&MyContactPeer&::iterator pos, posF
for (pos = _contacts.begin(); pos != _contacts.end(); pos ++){
MyContactPeer onePeer = *
if (onePeer.fixA == peer.fixA && onePeer.fixB == peer.fixB){
posFound =
_contacts.erase(posFound);
MyContactListener::MyContactListener():_contacts()
MyContactListener::~MyContactListener()
void MyContactListener::PreSolve(b2Contact* contact, const b2Manifold* oldManifold)
void MyContactListener::PostSolve(b2Contact* contact, const b2ContactImpulse* impulse)
6.碰撞监听头文件
#include "../../../../external/Box2D/Box2D.h"
#include &vector&
struct MyContactPeer{
b2Fixture* fixA;
b2Fixture* fixB;
class MyContactListener : public b2ContactListener{
vector&MyContactPeer& _
MyContactListener();
~MyContactListener();
void BeginContact(b2Contact* contact) ;
void EndContact(b2Contact* contact);
void PreSolve(b2Contact* contact, const b2Manifold* oldManifold);
void PostSolve(b2Contact* contact, const b2ContactImpulse* impulse);
7 box2d 帮助类
once //避免重复包含
#include "../../../../external/Box2D/Box2D.h"
class Box2dUtils{
static b2Body* createDynamicBody(float posX, float posY, void* userData, b2World* _world){
b2BodyDef ballBodyD
ballBodyDef.type = b2_dynamicB //
ballBodyDef.position.Set(posX, posY);
ballBodyDef.userData = userD // 把屏幕中的精灵作为 物理世界中物体的 userData
b2Body* ball = _world -&CreateBody(&ballBodyDef);
static b2Fixture* createFixture(b2Shape* shape, float density, float friction, float restitution, b2Body* ball ){
b2FixtureDef ballFixD
ballFixDef.shape =
ballFixDef.density =
ballFixDef.friction =
ballFixDef.restitution =
return ball-&CreateFixture(&ballFixDef);
转载注明出处:
&&&&推荐文章:
【上篇】【下篇】零基础学习Cocos2dx游戏开发 C语言:Cocos2d-x介绍 - 高清在线观看 - 腾讯视频
零基础学习Cocos2dx游戏开发
零基础学习Cocos2dx游戏开发
44个视频,总播放:
扫描二维码随身看视频
用手机或平板摄像头拍下右侧的二维码,您可以:
1 在手机或平板上继续观看该视频
2 分享给你的微信好友或者朋友圈
好莱坞影院推荐
《白宫陷落》续作
白敬亭变身学渣勇追学霸
好莱坞会员热门搜索:
当前位置: >
> 极客学院Cocos2dx游戏开发工程师视频教程
极客学院Cocos2dx游戏开发工程师视频教程
极客学院Cocos2dx游戏开发工程师视频教程目录如下:
CocosStudio 2.0 基础控件
第3阶段 常用功能
第4阶段 功能扩展
第2阶段 基础知识
Cocos2d-x v3新特性教程
Cocos2d-JS v3新特性教程
第5阶段 项目实战
第1阶段 环境搭建
过完年学建站,上屌丝建站教程网,2015年屌丝教程网开始了,不管你是初中毕业、高中毕业、大学毕业,都能学好做网站。屌丝网,更专业的建站自学网!
网盘提取密码: u826
本文版权归原作者所有,转载请注明原文来源出处,屌丝建站教程自学网感谢您的支持!
本文链接:13827人阅读
cocos2dx学习(3)
追溯到2013年的暑假,当时大二结束,面临这暑期要做一个成品游戏的任务,摆在面前的一大难题是做什么游戏,更细致的是基于什么引擎来做,基于哪个平台的?由于暑期有老师指导,但是针对端游的指导,用的是GameBroy引擎,免费的低版本。由于在那之前的很长一段时间一直在关注CSDN的行业信息,以及移动互联网和后PC时代的争论,看的多了,便有了自己的想法,于是乎毅然决然的抛弃了学院指定的端游指导,自己一个人独立出来做了手游。做出这个选择,对当时的我来说是顶着很大的压力的,毕竟其他人都是清一色的跟着学院的步子走,而我是标新立异分子,没有老师指导,也没有这方面的知识储备,完全可以用摸着石头过河来形容,怕做不出来东西,怕自己做这样的选择到后来被证明是错的。但压力还是顶住了,慢慢的了解了许多,就知道了cocos2dx这个玩意,知道了它是干嘛的。一直想做移动端的东西,为此还自学了Java和Android开发,但这些对cocos2dx来说起不了太多的开发作用,因为2dx用的还是C++,结合自身的C++还不错,一直坚持在学,各种经典著作也都看过,就认定了cocos2dx引擎。
万事开头难,这话一点都不错啊。半年多以前,我记得现在很火的泰然网在当时还没做起来,现在cocos2dx社区的突出贡献者也比当时多很多,系列视频更是少之又少。总之一句话,在半年前2dx的学习资料很少,完全摸不着北。这里说一下笔者学习cocos2dx的历程。
先是买了本书看,cocos2dx的书也就那几本,基本上都差不多,看一本就好,但我却在当时一股脑的买了三本,足以证明当时的迷茫与惶恐。看书阶段持续了半个月,在这半个月里我慢慢的通过书籍的引导找到了北。现在看来,书上讲的东西也都是引擎里的东西,当时就对照着书,然后看引擎的东西,一个一个的认识引擎中的常用类,常用函数,以及他们都是干嘛用的,还有用法是什么,虽然最开始太多总是记不住,但在后面的开发过程中不会的就翻翻书,翻翻引擎的testcpp的程序示例,来回一两次就差不多掌握了类和函数的用法。我觉得这半个月我基本上所有的时间和精力都花在了看书和学习引擎testcpp示例上,这个阶段只是一个对引擎的入门,引擎常用类和函数的熟悉,掌握其实都
谈不上,因为事实证明后面开发过程中,前面看到的很多都记不住,还需要再翻书。半个月后,自己觉得引擎里面的基本东西算是认识了遍,就想着做一个什么游戏,和搭档商量了一番后,决定做超级玛丽,也没有想那么多,就是觉得超级玛丽很熟悉,不用想册策划,素材网络上也有很多,说干就干,我俩就开始了超级玛丽开发之旅。
做超级玛丽的开头,完全是不知从何下手,当时想找一些网络上的资源也没有,系列博客也都是讲引擎某些类用法的,基本上没有一个完整游戏的系列教程,即使有,也对我们做超级玛丽没多大帮助。当时每天都在群里问,问,问,,,总之什么都问,但群里问的时效性太差,遇上周六周日节假日还没人,后来想了想,不行,还是先找找类似的源码看看吧。于是乎去网络上搜索了一大堆的源码,当时看源码就是想学习如何架构一个游戏,如何使用引擎。郁闷的是很多源码不能直接运行,问题一大堆,当时看代码都是一行一行的看,每一个细节都不遗漏,努力看懂整个游戏中的每一行都是干嘛的,遇到不会的,对知识有疑问的地方,就去恶补。花了一个星期的时间看了两个源码,不过源码都很小,加起来还没1000行,看完后又对游戏源码进行了剖析和梳理,在想源码的作者为什么要这么设计,有什么好处和坏处,两个源码下来自己对超级玛丽有了眉目。最开始照葫芦画瓢,后面算是走上了正轨,后面集中开发阶段也没有逛论坛,也不去群里了。
45天下来,终于功夫不负有心人,游戏做出来了,游戏的apk就在我的资源里。
接下来针对这个超级玛丽发表一系列的博客,希望广大看官多多支持,您的支持是我最大的动力!
PS:由于各种原因,源码不能上传,请见谅
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:208792次
积分:2998
积分:2998
排名:第7585名
原创:69篇
转载:18篇
评论:68条
(2)(3)(7)(1)(2)(8)(11)(2)(12)(27)(12)Cocos2d-x 3.1.1 学习日志12--一Cocos2dx3.1.1移植到Android平台的方法(最有用最有效的!!)
需要用到工具(按照顺序):
3.Adt-bundle-windows
将JDK目录下的bin文件夹路径添加到系统环境变量中。
解压Adt-bundle-windows
运行其中的eclipse.exe
file->import
然后browse,找到工程所在的目录vcD4KPGltZyBzcmM9"/uploadfile/Collfiles/5.jpg" alt="\">
然后finish。。
会看到提示有错误,但是不要怕。
打开,看看错误原因
,右键->属性
找到绝对路径,换句话说就是你之前解压cocos2dx3.1.1的那个文件夹的路径,但是我们要找到这个…\cocos\platform\android\java\src
因为我们要用到src。。。。。
点击ok,再ok
回到主界面
发现错误消失了。。。
点击文件名右键->Debug as->Android Application
正在编译工程。。。。。
好了,可以导出了
回到主界面
File->export
接下来就是容易了,next
填吧,一个是路径,一个是密码,一个是确认!!
接下来就是随便填了
点next,最后一步apk的路径。就ok了!!!
不懂的可以加我的QQ群: (cocos2d-x 3.1.1学习群)
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'

我要回帖

更多关于 cocos2dx学习书籍 的文章

 

随机推荐