`
wangweike
  • 浏览: 66424 次
  • 性别: Icon_minigender_1
  • 来自: Mars
社区版块
存档分类
最新评论

cocos2d-x

 
阅读更多
1.环境
在http://www.cocos2d-x.org/下载cocos2d-2.0-x-2.0.2.zip,解压
安装项目模板:cd到/Users/gzty1/x_workspace/cocos2d-2.0-x-2.0.2,
在安装模板之前,先退出Xcode,然后打开一个终端,并输入下面的命令:
sudo  ./install-templates-xcode.sh -f
参考 http://www.cocoachina.com/gamedev/gameengine/2012/0428/4206.html

cocos2d-iphone环境搭建
  第一步:下载cocos2d-iphone最新版本;地址:http://code.google.com/p/cocos2d-iphone/downloads/list (当前最新2.1-beta)
      第二步:下载完成之后解压;
      第三步:启动终端;
      第四步:先利用cd命令进入cocos2d引擎文件夹,然后“./install-templates.sh -u”命令开始安装cocos2d
http://blog.csdn.net/kepoon/article/details/7634013


2.cocos2d-x入门学习笔记,主要介绍cocos2d-x的基本结构,并且介绍引擎自带的示例
http://blog.csdn.net/column/details/cocos2d-x-study.html

3.Cocos2d-x 中文文档
http://cn.cocos2d-x.org/document
用过的类
CCApplication
CCDirector
CCEGLView
CCScene
CCLayer
CCMenuItemImage
CCMenu
CCLabelTTF
CCSize
CCSprite
b2World
CCTexture2D
b2Body
b2Vec2:向量
b2Mat22:一个由两个b2Vec2组成的2*2方阵,可以直接由两个b2Vec2(col1、col2)构造或者由一个角度值构造。
b2AABB:就是一个盒子,由两个向量组成,一个为minVertex是最小顶点,另一个为maxVertex是最大顶点,通过这两个顶点来表示最为普通的AABB框。
b2ShapeDef:形状定义,用一个b2ShapeType型量type来表示形状类型,用函数指针来表示用户数据(userdata),用一个b2Vec2向量localPosition来表示当前位置,用float32的localRotation来表示当前角度,用float32的friction、density、restitution来表示摩擦力、密度、弹性系数,用uint16的categoryBits和maskBits来表示碰撞位及位标识(可以用来过滤一些碰撞),用int16的groupIndex来表示组号,这个组号可以用来过滤还比位标识优先。
相关形状定义:b2CircleDef,b2BoxDef,b2PolyDef
b2BodyDef:刚体定义结构,由一个函数指针userData来表示用户数据,一组类型为b2ShapeDef*指针数组shapes来表示形状队列,目前形状数最大支持64个,用一个b2Vec2向量position来表示当前位置,用类型为float32的量rotation来表示当前角度,用类型为b2Vec2的量linearVelocity表示线速度,用类型为float32的angularVelocity来表示角速度,用类型为float32的量linearDamping来表示线性阻尼,用类型为float32的量angularDamping来表示角阻抗,用类型为bool的allowSleep 来表示是否可以允许休眠,用一个类型为bool的isSleeping来表示是否正在休眠,用一个类型为bool的量preventRotation来表示是否防止旋转。


4.论坛
http://cn.cocos2d-x.org/bbs/forum.php

5.了解
基于cocos2d-x引擎的游戏框架设计
http://www.programmer.com.cn/10845/

6.物理引擎
  在游戏中加入物理引擎可以使我们的游戏更加真实,cocos2d自带了两种物理引擎:Box2d和Chipmunk,这两种引擎都是2D游戏设计,Box2d是用C++来写的,而Chipmunk是通过C来写的。
   Box2D 是用可移植的 C++ 来写成的。引擎中定义的大部分类型都有 b2 前缀,可以把它和游戏中的其他元素区分开。
几个概念:
世界(b2World):世界就是一个环境,所有物理运算都在这个里面进行。
形状定义(b2ShapeDef):定义对象的样子,用来确定碰撞。
刚体定义(b2BodyDef):刚体定义类
刚体(b2Body):刚体就是物理引擎里面的对象,它可以受力的作用进行当前位置的变化旋转等。在世界中使用的所有物体都是刚体。
约束:一个约束就是消除物体自由度的物理连接。在 2D 中,一个物体有 3 个自由度。如果把一个物体钉在墙上(像摆锤那样),就把它约束到了墙上。此物体就只能绕着这个钉子旋转,所以这个约束消除了它 2 个自由度。还有一种不须创建的接触约束,一个防止刚体穿透,以及用于模拟摩擦和恢复的特殊约束。
链接:链接可以联系多个刚体,使得刚体之间相互影响。链接还支持限制和马达,限制就是限制物体运动的角度,马达就是依照关节中的限制来约束物体。
关联:body->CreateFixture(&fixtureDef); 关联是一种附加在刚体上的属性,一个刚体可以有多个关联。


http://blog.csdn.net/vickylh/article/details/5545212


7.b2World
  b2World是box2d中的物理世界,是一个包含了各种物体(body,物理体,或者叫刚体),固定附着物(fixture,形状与物理体的绑定物)以及各种约束体(比如关节),并使其在当中完成各种交互的这样一个集合体。
  世界是遵循物理的空间,所有都存在于世界中,可以创建多个世界,但很少这样做。
  这个世界可能存在重力,所以,在创建这个世界的时候我们需要传一个描述重力的二维向量(v2对象),这取决于视角设定,横版游戏需要一个重力.如果是顶视图,可能就不需要重力了.
  创建世界需要两个步骤,一是生成重力向量,二是根据重力生成世界对象
//生成重力向量
b2Vec2 gravity;
gravity.Set(0.0f, -10.0f);
//生成世界对象
bool doSleep = true;
world = new b2World(gravity);
world->SetAllowSleeping(doSleep);
world->SetContinuousPhysics(true);


http://blog.lunastudio.cn/?p=156

cocos2d中使用box2d的过程
http://blog.csdn.net/jiarusun000/article/details/6947760

b2World中左下角是(0,0)??

8.b2Body
刚体有三种类型
staticBody,静态刚体(即不受力影响的物体,比如边界墙),
dynamicBody,动态刚体(完全模拟真实物理情况的物体),
kinematicBody,运动刚体(这是2.1版新增的一个类型,和静态刚体相比,就是它可以移动.它也同样不会被环境力所影响)
首先定义一个描述类,然后再根据描述类通过世界创建某个对象。
创建刚体时需要有两个步骤,一是创建一个刚体定义,二是根据刚体定义生成刚体。
//定义刚体
b2BodyDef groundBodyDef;
groundBodyDef.position.Set(screenSize.width/2/PTM_RATIO, screenSize.height/2/PTM_RATIO);
//生成刚体
b2Body* groundBody = world->CreateBody(&groundBodyDef);

9.刚体单位详解
//Pixel to metres ratio. Box2D uses metres as the unit for measurement. 
//This ratio defines how many pixels correspond to 1 Box2D "metre" 
//Box2D is optimized for objects of 1x1 metre therefore it makes sense 
//to define the ratio so that your most common object type is 1x1 metre. 
#define PTM_RATIO 32
对Box2D来 说,所有的距离是以米为单位的,所有的物体都是以公斤为单位的,时间则是以秒为单位的,PTM_RATIO用于定义32个像素在Box2D世界中等同于1米。一个有32像素宽和高的 盒子形状的刚体等同于1米宽和高的物体。
http://blog.sina.com.cn/s/blog_7c336a8301014e2o.html

10.Fixture
     固定装置

11.ios
iOS设备不支持超过60帧每秒的帧率,它的屏幕刷新率被锁定在60帧每秒(Hz)。如果强迫cocos2d以超过60帧每秒的速度进行渲染,在最好的情况下,可能会不产生任何效果。在最差的情况下,你的帧率可能反而会下降。如果想让cocos2d运行在最快的帧率下,把动画间隔设置为1.0/60。

12.cocos2d-iPhone
http://www.cocos2d-iphone.org/
http://blog.csdn.net/a287971/article/details/7631684
http://www.cocoachina.com/bbs/simple/?t55155.html
http://cocos2d-central.com/files/file/2-source-code-for-the-learn-iphone-and-ipad-cocos2d-game-development-book/

13, cocos2d-x2.0中CCArray中发现的问题
       containsObject和indexOfObject函数内部,只是做了对象地址比较,并没有使用isEqual函数。
       CCArray和CCSet的ContainObject方法有问题,现修改CCArray里面的方法使之有效
/** Returns index of first occurrence of object, CC_INVALID_INDEX if object not found. */
unsigned int ccArrayGetIndexOfObject(ccArray *arr, CCObject* object)
{
for(unsigned int i = 0; i < arr->num; i++)
    {
        //old
//if( arr->arr[i] == object ) return i;
        //modify by wwk
        if( (object && object->isEqual(arr->arr[i])) || (!object && !arr->arr[i])) return i;
    }

return CC_INVALID_INDEX;
}

并且同时要修改解压的cocos2dx目标下的 cocos2dx/support/data_support/ccCArray.cpp 中的代码

14.cocos2d-x的首选开发调试平台
参考http://cn.cocos2d-x.org/bbs/forum.php?mod=viewthread&tid=1052&extra=&page=1
分享到:
评论

相关推荐

    cocos2d-x-3.1.zip

    这个压缩包“cocos2d-x-3.1.zip”包含了Cocos2d-x框架的3.1版本,这是一个经典且相对旧的版本,可能对于那些寻找历史版本或者想要研究早期游戏开发技术的人来说非常有价值。由于官方网站已经不再提供这个版本的直接...

    Cocos2d-x实战:JS卷——Cocos2d-JS开发

    资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...

    cocos2d-x-2.1.4.rar

    《cocos2d-x 2.1.4:探索移动游戏开发的新篇章》 cocos2d-x 是一个跨平台的2D游戏开发框架,它为开发者提供了强大的工具和技术支持,使得游戏开发变得更为便捷。2.1.4 版本是这个框架的一个重要里程碑,它在前一...

    cocos2d-x 3.0

    《cocos2d-x 3.0:游戏开发中的角色移动技术详解》 在游戏开发领域,cocos2d-x是一款广泛使用的开源2D游戏引擎,尤其在移动平台上的应用非常广泛。cocos2d-x 3.0版本带来了许多性能优化和新特性,使得开发者能够更...

    cocos2d-x windows vs2010配置

    接下来,把 F:\cocos2d-1.0.1-x-0.9.1\cocos2dx 和 F:\cocos2d-1.0.1-x-0.9.1\CocosDenshion 这两个文件夹里面的全部内容拷贝一份到 D:\cocos2d-xProjects\HelloWorld 中去。 九、设置静态链接库 接下来,打开 F:\...

    cocos2d-x源码素材

    【cocos2d-x源码素材】是一套用于学习cocos2d-x游戏开发的代码资源,它在Windows平台上使用Visual Studio 2010进行编译并通过了测试。这个资源包涵盖了多个重要的游戏开发技术,包括碰撞检测、瓦片地图(Tile Map)...

    Cocos2d-x 3.x游戏开发实战pdf含目录

    《Cocos2d-x 3.x游戏开发实战》是一本深度探讨Cocos2d-x 3.x框架的游戏开发书籍,适合对游戏编程有兴趣的开发者学习。Cocos2d-x 是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多平台的...

    cocos2d-x-3.13.1 spine3.6.zip

    《Cocos2d-x 3.13.1与Spine 3.6集成详解》 Cocos2d-x是一个广泛使用的开源游戏开发框架,它基于C++,同时支持Lua和JavaScript等多种脚本语言,为开发者提供了高效、跨平台的游戏开发解决方案。在3.13.1版本中,...

    Cocos2d-x实战 JS卷 Cocos2d-JS开发

    《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-x游戏引擎JavaScript版本使用的专业书籍。Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口...

    Cocos2d-x实战C++卷关东升著完整版pdf

    《Cocos2d-x实战C++卷》是关东升所著的一本深入探讨Cocos2d-x游戏引擎开发的专业书籍。Cocos2d-x是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多个操作系统。本书以C++语言为主要编程...

    cocos2d-x_v3.16安装及环境变量配置文档

    在使用 Visual Studio Community 2017 打开 Cocos2d-x-3.16\build\cocos2d-win32.sln 文件后,可能会遇到工具集的报错问题,提示无法找到 Visual Studio 2010 的生成工具。解决方法是安装 Visual Studio 2010 的生成...

    cocos2d-x 3.x游戏开发实战光盘

    《cocos2d-x 3.x游戏开发实战光盘》是一个深入探讨cocos2d-x 3.x游戏引擎开发的资源集合,旨在帮助开发者通过实际案例掌握这一强大的2D游戏开发工具。cocos2d-x是一款开源的游戏开发框架,基于C++,广泛应用于跨平台...

    cocos2d-x API中文文档

    【cocos2d-x API中文文档】是一份详尽的资料,主要涵盖了cocos2d-x游戏引擎的API,这份文档适用于2015年的最新版本。cocos2d-x是一个基于MIT许可证的开源游戏引擎,它以快速、简单且功能强大的特性闻名,允许开发者...

    cocos2d-x-3.13.1.zip

    《cocos2d-x 3.13.1:深入解析与应用》 cocos2d-x 是一个开源的游戏开发框架,广泛应用于跨平台2D游戏的开发,支持iOS、Android、Windows等操作系统。它的3.13.1版本是一个重要的里程碑,提供了诸多改进和优化,...

    Cocos2d-x实战 JS卷

    《Cocos2d-x实战 JS卷》是一本深入探讨Cocos2d-x游戏开发的专著,主要聚焦于使用JavaScript语言进行游戏编程。Cocos2d-x是一个开源的游戏开发框架,广泛应用于移动设备和桌面平台,支持iOS、Android、Windows等多...

    cocos2d-x游戏源码 三国策略游戏源码

    【cocos2d-x游戏引擎概述】 cocos2d-x是一个开源的游戏开发框架,它基于cocos2d-x,用于创建2D游戏、演示程序和其他图形/交互式应用程序。cocos2d-x是用C++编写的,但同时也支持Lua和JavaScript作为脚本语言,使得...

    迷失航线-Cocos2d-x项目实战-射击类游戏-关东升

    《迷失航线》是一款基于Cocos2d-x框架开发的射击类游戏,专为移动设备设计。Cocos2d-x是一个开源的游戏开发框架,它使用C++作为主要编程语言,同时支持Lua和JavaScript,广泛应用于2D游戏开发。在这个项目实战中,...

    cocos2d-x 案例开发大全 第二章(源码)

    《cocos2d-x案例开发大全》第二章的源码主要涵盖了使用cocos2d-x进行游戏开发的各种实践技巧和示例。cocos2d-x是一个开源的游戏开发框架,基于C++,支持跨平台,包括iOS、Android、Windows等多个操作系统。本章的...

    Cocos2d-x实战++JS卷++Cocos2d-JS开发+PDF电子书下载+带书签目录+完整

    标题中提到了"Cocos2d-x实战++JS卷++Cocos2d-JS开发+PDF电子书下载+带书签目录+完整",这里面包含了几个关键知识点: 1. Cocos2d-x:是一个开源的游戏开发框架,它主要用于开发跨平台的游戏和应用程序,支持iOS、...

Global site tag (gtag.js) - Google Analytics