cocos2d_cocos2dx - CSDN
cocos2d 订阅
cocos2d [1]  是一个基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。可以让你在创建自己的多平台游戏时节省很多的时间。Cocos2D也拥有几个主要版本,包括Cocos2D-iPhone、Cocos2D-X,以及被社区普遍看好的Cocos2D-HTML5和JavaScript bindings for Cocos2D-X。同时也拥有了非常优秀的编辑器(独立编辑器),例如SpriteSheet Editors、Particle Editors 、Font Editors 、 Tilemap Editors。另外,2012年发布的CocoStudio工具集是开源游戏引擎Cocos2d-x开发团队官方推出的游戏开发工具,目前已经进入稳定版。CocoStudio吸取了他们自己在游戏制作中的经验,为移动游戏开发者和团队量身定做,旨在降低游戏开发的门槛,提高开发效率,同时也为Cocos2D-X的进一步发展打下基础。 展开全文
cocos2d [1]  是一个基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。可以让你在创建自己的多平台游戏时节省很多的时间。Cocos2D也拥有几个主要版本,包括Cocos2D-iPhone、Cocos2D-X,以及被社区普遍看好的Cocos2D-HTML5和JavaScript bindings for Cocos2D-X。同时也拥有了非常优秀的编辑器(独立编辑器),例如SpriteSheet Editors、Particle Editors 、Font Editors 、 Tilemap Editors。另外,2012年发布的CocoStudio工具集是开源游戏引擎Cocos2d-x开发团队官方推出的游戏开发工具,目前已经进入稳定版。CocoStudio吸取了他们自己在游戏制作中的经验,为移动游戏开发者和团队量身定做,旨在降低游戏开发的门槛,提高开发效率,同时也为Cocos2D-X的进一步发展打下基础。
信息
定    义
是一个基于MIT协议的开源框架
特    点
易用、高效、灵活、免费、社区支持
开发者
Ricardo和朋友
用    途
构建游戏、程序和图形交互应用
中文名
cocos2d
版本分类
Cocos2D-iPhone、Cocos2D-X等
cocos2dCocos2D特点
易于使用:游戏开发者可以把关注焦点放在游戏设置本身,而不必消耗大量时间学习晦涩难懂的OpenGL ES,此外,Cocos2D还提供了大量的规范。高效:Cocos2D基于OpenGL ES进行图形渲染,从而让移动设备的GPU性能发挥到极致。灵活:方便扩展,易于集成第三方库。免费:基于MIT协议的免费开源框架,用户可以放心使用,不用担心商业授权的问题。社区支持:关心Cocos2D的开发者自发建立了多个社区组织,可以方便的查阅各类技术资料。
收起全文
精华内容
参与话题
  • Cocos2d-x 游戏开发详解

    千人学习 2019-12-26 10:31:24
    本课程通过20章125节课详细讲述了Cocos2d-x开发的详细过程,内容包括:基础编程:开发环境搭建、核心类、标签、菜单、精灵、事件处理、动作、定时器、GUI、数据结构;高级开发:音效、网络编程、数据存储、Tiled Map...
  • Cocos2d-x初学者教程

    千次阅读 2017-06-14 10:35:42
    Cocos2d-x是一款快速、强大、易用的开源2D游戏引擎。 它与苹果的Sprit Kit略像,但又有一大优势——跨平台。 这意味着,开发者只需要写一个版本的代码就可以开发出能在iOS、Android、Windows Phone、Mac OS X、...
    Cocos2d-x是一款快速、强大、易用的开源2D游戏引擎。
    它与苹果的Sprit Kit略像,但又有一大优势——跨平台。
    这意味着,开发者只需要写一个版本的代码就可以开发出能在iOS、Android、Windows Phone、Mac OS X、Windows Desktop和Linux上运行的游戏来。这对于游戏开发者来说意义重大。
    在此教程中,你将学会用Cocos2d-x和C++开发一个简单的2D游戏。是的——忍者来袭!
    注意:本教程假设你拥有C++开发的基础先修知识。如果你没有接触过C++,请学习后再来阅读。
    

    准备

    下载Cocos2d-x的最新版本(www.cocos2d-x.org/download);本教程使用3.5版本。 把文件下载下来,放到你想把Cocos2d-x安装到的地方,例如你的主目录,然后解压。 打开Terminal和CD,进入你刚刚解压的文件夹。例如,如果你把项目放到了你的主目录里,那就运行如下命令: cd ~/cocos2d-x-3.5/ 现在,运行接下来这个命令: python setup.py 这里配置了必要的shell环境变量。若系统出现提示,要求配置像 NDK_ROOT, ANDROID_SDK_ROOT和ANT_ROOT这些Android特有的变量,你只需按三次回车完成设置就好了。 注意:Cocos2d需要你在电脑上安装Python 2.7以上的版本。如果你不清楚目前电脑的Python版本,可以在命令行中输入python,则版本信息就会被显示出来(然后按Ctrl-D关闭)。如果你安装了一个老版本的Python,请在python.com下载安装最新版本。 如下图所示,脚本文件提示执行另一条命令来完成安装:
    1497407624-8444-301184-39ef9266817e8b9a
    Paste_Image.png
    注意:使用不同的shell可能会导致你看到不同的输出结果。在上面的屏幕截图中,由于我使用了Bash,安装文件提示“source /Users/rwenderlich/bash_profile.”。但如果我用的是Zsh,那它就会提示让我运行“source /Users/rwenderlich/.zshrc”。 按照说明输入命令。这里有一个节省时间的技巧:你可以在/Users/your_user_name这里使用波浪线(~),以此来减少你输入下面这条命令的长度: source ~/.zshrc (or source ~/.bash_profile) 此命令重新提交了你的shell配置,让它可以访问新变量。现在你可以从任一目录在Terminal中调用cocos命令了。 运行下面的命令,创建一个名为SimpleGame的C++游戏模板: cocos new -l cpp -d ~/Cocos2d-x-Tutorial SimpleGame 你的主目录里创建了一个名为Cocos2d-x-Tutorial的目录。其中,子目录SimpleGame存放了你的项目文件。 注意:可以输入cocos --help或cocos -h来获取cocos子命令的相关信息。输入后缀“--help”或“-h”,你可以了解到子命令的各种选项,例如你可以输入cocos new -h来查看new命令的选项。 在Finder中双击~/Cocos2d-x-Tutorial/SimpleGame/proj.ios_mac/SimpleGame.xcodeproj,在Xcode中打开项目。 进入Xcode之后,请确保SimpleGame Mac处于活跃状态,如图所示:
    1497407624-6654-301184-ede39ac29cf1a6c8
    Paste_Image.png
    Cocos2d-x可以开发多种平台的游戏,但本教程将着重讲开发OS X应用。该项目可以很容易地向其他平台移植(是的,小事一桩!),本教程的最后部分将会简单讨论。在模板项目中编译并运行你的应用吧:
    1497407625-3271-301184-381c5e0196f90f22
    Paste_Image.png

    分辨率设定

    Cocos2d-x游戏默认被命名为“MyGame”,分辨率为960x640,但这些细节设定都很容易更改。 打开AppDelegate.cpp,在AppDelegate::applicationDidFinishLaunching中找到如下一行: glview = GLViewImpl::create("My Game"); 将其替换为下面的代码: glview = GLViewImpl::createWithRect("SimpleGame", Rect(0,0, 480, 320), 1.0); 这样,游戏名称被改为“SimpleGame”,分辨率也被设置成了与模板背景相适配的480x320。 重新编译并运行新版应用,它变得更小了:
    1497407625-3254-301184-3ed0f9999c19fccb
    Paste_Image.png
    注意一下你给createWithRect设定的第三个参数——1.0。这个参数将框架进行缩放,经常被用于测试比你的屏幕更大的分辨率。例如,想在一个小于1920x1080的屏幕上测试1920x1080分辨率的东西,你可以设定参数为0.5,以此将窗口缩小到960x540的大小。 这样虽然改变了游戏在桌面设备上的框架大小,但它在iOS设备上就失效了;游戏的分辨率会自动适配iOS设备的屏幕大小。这里以iPhone6为例:
    1497407624-2464-301184-5b6cac01837536d9
    Paste_Image.png
    你该如何处理多个分辨率呢?在本教程中,你将会创建基于960x640分辨率的单个游戏资源,然后在实际运行中将其进行必要的缩放。 要想实现这一点,你需要在AppDelegate::applicationDidFinishLaunching中,找到director上setDisplayStats的上一行,添加以下代码:
    // 1
    Size designSize = Size(480,320);
    Size resourceSize = Size(960,640);
    // 2
    director->setContentScaleFactor(resourceSize.height / designSize.height);
    director->getOpenGLView()->setDesignResolutionSize(
      designSize.width, designSize.height, ResolutionPolicy::FIXED_HEIGHT);
    上面的代码的作用如下:
    1. 定义了designSize——你创建游戏逻辑时使用的尺寸,并定义了resourceSize——你的资源所基于的分辨率。
    2. 必要的时候,这些代码会让游戏的Director对资源进行缩放,缩放会基于游戏的设计和提供的资源尺寸进行。 参阅the Cocos2d-x wiki entry on Multi-resolution adaptation以查看更多关于Cocos2d-x处理分辨率问题的说明。

      添加精灵

      接下来,点击下载本项目所需要的资源文件,并且将其解压到方便的位置。 全选你刚刚解压的SimpleGameResources文件夹中的文件,在你的Xcode项目中将它们拖入Resources组中。当有对话框弹出的时候,一定要在点Finish之前检查Copy items if needed, SimpleGame iOS 和 SimpleGame Mac。
    1497407625-5184-301184-7929d708d97396de
    Paste_Image.png
    接下来,打开HelloWorldScene.h,在include cocos2d.h后面的地方添加以下代码: using namespace cocos2d; 这就指定了你会使用cocos2d这一命名空间(namespace);于是,你可以用Sprite来代替cocos2d::Sprite。倒也不是非这样不可,但这会让你的开发过程变得愉快一些。:] 现在,你需要一个私有成员变量来指向你的player精灵。在HelloWorld的声明语句中添加以下代码:
    private:
      Sprite* _player;
    然后,打开HelloWorldScene.cpp,将HelloWorld::init方法中的内容换成以下内容:
    // 1
    if ( !Layer::init() ) {
      return false;
    }
    // 2
    auto origin = Director::getInstance()->getVisibleOrigin();
    auto winSize = Director::getInstance()->getVisibleSize();
    // 3
    auto background = DrawNode::create();
    background->drawSolidRect(origin, winSize, Color4F(0.6,0.6,0.6,1.0));
    this->addChild(background);
    // 4
    _player = Sprite::create("player.png");
    _player->setPosition(Vec2(winSize.width * 0.1, winSize.height * 0.5));
    this->addChild(_player);
    
    return true;
    下面是本方法的详细说明:
    1. 首先,调用父类的init方法。只有调用成功后你才能继续HelloWorldScene的安装。
    2. 其次,使用游戏的Director singleton来获取窗口的边界。
    3. 再次,创建DrawNode,绘制了一个填充屏幕的灰色矩形,并将其添加到场景中。这成为了游戏的背景。
    4. 最后,通过图像名称创建player精灵。将它放置在屏幕左边界10%距离的地方,垂直居中,并将其添加到场景中。 编译并运行游戏;哈哈,父老乡亲们快来看啊,小忍者进村了!:]
    1497407634-2645-301184-92880eebc21e38c7
    Paste_Image.png

    移动的怪物

    忍者需要一个人生目标,所以得在场景里添加点怪物让他去打。为了让游戏更好玩,怪物最好能来回走动——否则就会看起来没啥挑战性。我们要在屏幕右侧很近的地方创建怪物,然后创建一个动作来让他们移动到左侧。 首先,打开HelloWorldScene.h,并且添加如下的方法声明:
    void addMonster(float dt);
    然后,在HelloWorldScene.cpp中添加如下的方法实现:
    void HelloWorld::addMonster(float dt) {
      auto monster = Sprite::create("monster.png");
    
      // 1
      auto monsterContentSize = monster->getContentSize();
      auto selfContentSize = this->getContentSize();
      int minY = monsterContentSize.height/2;
      int maxY = selfContentSize.height - monsterContentSize.height/2;
      int rangeY = maxY - minY;
      int randomY = (rand() % rangeY) + minY;
    
      monster->setPosition(Vec2(selfContentSize.width + monsterContentSize.width/2, randomY));
      this->addChild(monster);
    
      // 2
      int minDuration = 2.0;
      int maxDuration = 4.0;
      int rangeDuration = maxDuration - minDuration;
      int randomDuration = (rand() % rangeDuration) + minDuration;
    
      // 3
      auto actionMove = MoveTo::create(randomDuration, Vec2(-monsterContentSize.width/2, randomY));
      auto actionRemove = RemoveSelf::create();
      monster->runAction(Sequence::create(actionMove,actionRemove, nullptr));
    }
    虽然相对而言比较直白,但下面还是讲一下这些代码的作用:
    1. 本方法第一部分与之前对player做的相似:创建一个怪物的精灵,将其放置在紧靠屏幕右侧的地方。它的y轴坐标被设定为随机,这样才好玩。
    2. 接下来设定怪物动作的时长,本方法在2秒和4秒之间计算出了一个随机值。每个怪物都要在屏幕上移动相同的距离,所以时长的随机性导致了怪物们速度的随机性。
    3. 最后,本方法创建了一个让怪物从右到左横穿屏幕的动作,并且让怪物去执行这个动作。对此本文后面会有更详细的解释。 Cocos2d-x提供了很多非常便捷的内置动作,它们可以帮助你随着时间轻松改变精灵的状态,包括移动动作、旋转动作、淡出动作、动画动作,等等。在此,你在怪物身上用到了3个动作:
    4. MoveTo:在一定的时间内将对象从一个点移动到另一个点。
    5. RemoveSelf:将一个节点从其父节点中移除,从而有效地将其从场景中“删除”。在本例中,当怪物变得不可见时,你使用此动作来把怪物从场景中移除。这非常重要,否则就会有无限多的怪物出现,最终耗尽设备的资源。
    6. Sequence:允许你按顺序实现一系列的其他动作,每次实现一个。这意味着,你可以让怪物移动穿过整个场景,到达特定的位置之后再将其从屏幕上移除。 在你的忍者粉墨登场之前,还有最后一件事情——你需要实际地调用这个方法来创建怪物。为了让游戏更有趣,你需要不停地量产怪物。 很简单,在HelloWorld::init末尾return之前的地方,添加如下代码: srand((unsigned int)time(nullptr)); this->schedule(schedule_selector(HelloWorld::addMonster), 1.5); srand((unsigned int)time(nullptr));语句初始化了随机数生成器。如果不执行这一步,每次运行程序都会产生一样的随机数。这还叫什么随机啊对不对?:] 之后,你向schedule方法传递HelloWorld::addMonster,每隔1.5秒它将调用一次addMonster()。 这里,Cocos2dx使用了C++的指针来整合函数。如果你不太懂它的原理的话,请去ioscpp查阅更多信息。 好了!编译并运行你的项目;现在你应该可以看到怪物们正在欢乐地(或者本例中它们看上去其实挺愤怒的!)在屏幕中来回移动了:
    1497407636-9077-301184-08f90f9e248070d1
    Paste_Image.png

    发射飞镖

    勇敢的小忍者需要保护自己。在游戏中有很多种方式可以实现开火,但在本例中你将使用点击屏幕的方式,将飞镖朝玩家点击屏幕的所在的方向发射出去。biubiu!:] 方便起见,你要用MoveTo动作来完成这个效果——现在我们不得不做点数学题了。 MoveTo动作需要为飞镖设定一个目的地,但是你不能直接使用输入的地址,因为那个点只代表了发射时候相对于玩家的方向。你需要让飞镖一直沿着这个方向移动直到最终到达屏幕外的目的地。 下图说明了这一情况:
    1497407636-7568-301184-d019511520150cae
    Paste_Image.png
    从原始点到接触点的x坐标距离和y坐标距离组成了一个小三角形;你只需要按照同样的比率做一个大三角形——你还清楚自己希望一个端点是处于屏幕之外的。 这些计算是以Cocos2d-x所包括的向量数学程序来执行的。但是,在你能够计算往何处移动之前,你需要启用输入事件操作来获取用户点击的位置。 将以下代码添加至HelloWorld::init的末尾、return之前的地方: auto eventListener = EventListenerTouchOneByOne::create(); eventListener->onTouchBegan = CC_CALLBACK_2(HelloWorld::onTouchBegan, this); this->getEventDispatcher()- >addEventListenerWithSceneGraphPriority(eventListener, _player); Cocos2d-x 3及以上版本使用EventDispatcher来处理各种各样的事件,如触摸、加速计和其他键盘事件。 注意:整篇的讨论中,“touch”指的是触屏或者点击。Cocos2d-x对于这两种事件类型采取相同的方法。 为了从EventDispatcher中获取事件,你需要注册一个EventListener。有两种触摸事件的监听器:
    • EventListenerTouchOneByOne:此类型对每个触摸事件调用一次回调方法。
    • EventListenerTouchAllAtOnce:此类型对所有的触摸事件调用一次回调方法。 每个事件监听器支持4个回调,但你只需要为自己关心的事件绑定方法。
    • onTouchBegan:手指第一次碰到屏幕时被调用。如果你使用的是EventListenerTouchOneByOne,你必须返回true才能获取另外3个触摸事件。
    • onTouchMoved:手指接触屏幕并移动(保持接触)时被调用。
    • onTouchEnded:手指离开屏幕时被调用。
    • onTouchCancelled:在特定的结束事件处理的环境中被调用,如你正在触屏的时候,一个电话打了进来打断了这个app进程。 在本游戏中,你只用关心触摸发生的时间就好了。声明你的回调函数来在HelloWorldScene.h中获取触摸的通知,像这样:
    bool onTouchBegan(Touch touch, Event unused_event); 然后,在HelloWorldScene.cpp中执行你的回调函数:
    bool HelloWorld::onTouchBegan(Touch *touch, Event *unused_event) {
      // 1  - Just an example for how to get the  _player object
      //auto node = unused_event->getCurrentTarget();
    
      // 2
      Vec2 touchLocation = touch->getLocation();
      Vec2 offset = touchLocation - _player->getPosition();
    
      // 3
      if (offset.x < 0) {
        return true;
      }
    
      // 4
      auto projectile = Sprite::create("projectile.png");
      projectile->setPosition(_player->getPosition());
      this->addChild(projectile);
    
      // 5
      offset.normalize();
      auto shootAmount = offset * 1000;
    
      // 6
      auto realDest = shootAmount + projectile->getPosition();
    
      // 7
      auto actionMove = MoveTo::create(2.0f, realDest);
      auto actionRemove = RemoveSelf::create();
      projectile->runAction(Sequence::create(actionMove,actionRemove,     nullptr));
    
      return true;
    }
    上面的这个方法比较复杂,让我们来一步一步回顾一下。
    1. 第一行被注释掉了,但它说明了作为第二个参数传递给addEventListenerWithSceneGraphPriority(eventListener, _player)的_player对象被访问的方式。
    2. 此处获取了场景坐标系中触摸的坐标,然后计算了这个点相对于玩家当前位置的偏移量。这是Cocos2d-x中向量数学的一个例子。
    3. 如果offset的x值是负值,这表明玩家正试图朝后射击。在本游戏中这是不允许的(真正的忍者不会往后看!),所以只需要返回就好了,不用发射飞镖。
    4. 在玩家所在的位置创建一个飞镖,将其添加到场景中。
    5. 之后,调用normalize()来将偏移量转化为单位向量,即长度为1的向量。将其乘以1000,你就获得了一个指向用户触屏方向的长度为1000的向量。为什么是1000呢?因为长度应当足以超过当前分辨率下屏幕的边界。:]
    6. 将此向量添加到飞镖的位置上去,这样你就有了一个目标位置。
    7. 最后,创建一个动作,将飞镖在2秒内移动到目标位置,然后将它从场景中移除。 编译并运行程序;点击屏幕,让你的忍者朝着敌人们发射吧!
    1497407637-2644-301184-4f43812f3b62fae4
    Paste_Image.png


    查看原文:http://www.51xyyx.com/3269.html
    展开全文
  • 15款Cocos2d-x游戏源码

    万次阅读 2017-11-30 17:52:12
    (1)用cocos2d-x开发的中国象棋游戏源码 使用Cocos2d-X2.2.3开发的一款中国象棋游戏,游戏中可以实现、新局面、悔棋、游戏音乐、胜利后会显示游戏结果。 源码下载:http://www.okbase.net/file/item/27881 ...

    (1)用cocos2d-x开发的中国象棋游戏源码
    使用Cocos2d-X2.2.3开发的一款中国象棋游戏,游戏中可以实现、新局面、悔棋、游戏音乐、胜利后会显示游戏结果。


    源码下载:http://www.okbase.net/file/item/27881

     

    (2)Cocos2dx开发的一个横版过关游戏Demo源码
    来自游戏开发基友群听雨分享的例子,一个横版过关游戏,有带简单ai的敌人,有横版的地图,有操控摇杆,主角的攻击效果,有很多新鲜的东 
    西。


    源码下载:http://www.okbase.net/file/item/27882

     

    (3)Cocos2d-x游戏《忍者飞镖打幽灵》源码
    初次接触Cocos2d-x的学习demo,发射飞镖击中飞过来的幽灵,可以作为初学参考。
    环境: cocos2dx2.2+vs2012


    源码下载:http://www.okbase.net/file/item/27890

     

    (4)Cocos2dx 跑酷类游戏源代码《萝莉快跑》
    跑酷类游戏,画面精美,如果Cocos2dx使用2.2版本,可能需要修改加载声音资源类。十分简单。


    源码下载:http://www.okbase.net/file/item/27892

     

    (5)MoonWarriors雷电战神传说Cocos2d-X游戏源代码
    因为最近在研究cocos2d-x,前几日看到cocos2d-html5中有款飞机游戏MoonWarriors,想着能不能用cocos2d-x来做重构,一方面可以练习一下 
    这种飞行游戏的编程思路,另一方面也可以加深对cocos2d-x的了解。


    源码下载:http://www.okbase.net/file/item/27071

     

    (6)Cocos2d-x 3.x编写的3D跑酷游戏源码
    这是一个Cocos2d-x 3.3制作的3d跑酷demo,大家可以学习下Cocos2d-x 3.3 提供对Sprite3D的支持,包含教程。
    教程主要是通过分析一个跑酷的Demo,来向大家简单的介绍一下Cocos2d-x 3.3 里对3D游戏开发提供的一些功能,并介绍一下他们的使用方法。


    源码下载:http://www.okbase.net/file/item/27893

     

    (7)开心泡泡猫Cocos2d-x源码
    开心泡泡猫是一款一群喵星人闯入了风靡全球的泡泡龙游戏,游戏将将弹珠台的概念结合至传统泡泡类游戏之中,Cocos2D-X开发。

    源码下载:http://www.okbase.net/file/item/27900

     

    (8)Cocos2dx仿《王者之剑》游戏源码
    《王者之剑》作为国内首款横版即时格斗类手机网游,以欧洲圆桌骑士、亚瑟王的故事为背景,以精美细腻的美漫暗黑画风,再现了这段传奇史 
    诗。本代码是仿《王者之剑》,仅供学习参考。


    源码下载:http://www.okbase.net/file/item/27936

     

    (9)Cocos2dx手绘搞怪类游戏《奇怪大冒险》源码
    Cocos2dx 2.2游戏源码:奇怪大冒险,(原作熊同学) 质量很好,使用vs2013和cocos2dx 2.2打开即可编译运行。


    源码下载:http://www.okbase.net/file/item/27942

     

    (10)Cocos2dx游戏《喵汪大战》源码
    类似打飞机的猫狗大战游戏。
    开发环境:vs2012,cocos2dx2.2


    源码下载:http://www.okbase.net/file/item/27943

     

    (11)山寨版FlappyBird游戏源代码(cocos2dx)
    这是仿制的FlappyBird游戏,作者为xiaohexuehe。
    包括两个版本的代码:Unity版和cocos2dx版。
    FlappyBird不用多说了,一款极其简单,但是又很火的游戏。我在得知这款疯狂的游戏后,就有一种把它重现的冲动,然后花了我4个多小时, 
    产生出了一个可以玩的版本,分享给大家。

    源码下载:http://www.okbase.net/file/item/25707

     

    (12)三国策略战争游戏cocos2d-x源码
    利用 cocos2d-x 实现一个三国战争游戏。 

    作者说:搜到一个开源的半成品游戏代码(游戏主体部分没有),但最高兴的是有不错的资源(没有美工引发头疼问题)。游戏虽小,地图只有 
    一张,可玩,还会完善,希望做成个dota风格,外加塔防玩法的游戏。

    源码下载:http://www.okbase.net/file/item/27070

     

    (13)Cocos2d-x手机单机斗地主源码
    利用cocos2d-x实现手机单机斗地主游戏。 
    完成了斗地主的基本游戏规则,洗牌-发牌-出牌-压牌-判断胜负(计分)。


    源码下载:http://www.okbase.net/file/item/26919

     

    (14)cocos2d-x 多平台高仿微信打飞机源代码
    利用 cocos2d-x 实现多平台高仿微信打飞机游戏。目的是学习 Cocos2d-x 如何支持多平台开发。


    源码下载:http://www.okbase.net/file/item/24078

     

    (15)cocos2d-x俄罗斯方块游戏源代码
    基于cocos2d-x开发的俄罗斯方块游戏,是本人在学习cocos2d-x引擎时,在win7下使用vs2010的C++做的。
    附上完整的源代码。请根据自己的cocos2d-x安装路径更改vs工程项目的属性设置,即可调试运行。该代码仅供cocos2d-x游戏开发爱好者研究学习。

    源码下载:http://www.okbase.net/file/item/27944

    展开全文
  • cocos2d框架介绍

    万次阅读 2011-09-13 10:54:29
    cocos2d引擎 2.0 cocos2d简介 Cocos2d最初的版本是用python写的,之后被改成objectiveC,应用于iphone上,之后国内某人又根据该设计理念,将其改为C++版本cocos2dX,该版本可以在iphone,widnows,andriod三个平

    cocos2d引擎

    2.0 cocos2d简介

    Cocos2d最初的版本是用python写的,之后被改成objectiveC,应用于iphone上,之后国内某人又根据该设计理念,将其改为C++版本cocos2dX,该版本可以在iphone,widnows,andriod三个平台上运行.最新的版本是1.0.0,该引擎C++的版本还引入了lua脚本系统.cocos2d是完全开源的引擎,开发者可以任意使用该代码而不用公开源代码.cocos2d被广泛的使用,其中包括Zynga,南宫梦等知名游戏公司.Cocos2d不仅仅只是一个2D图形引擎库,他还提供了一些对游戏逻辑支持的系统.cocos2d提供了一个简单的声音引擎,支持播放mp3,wave,ogg等文件格式的音乐.cocos2d可以和物理引擎box2d配合使用,实现碰撞等物理效果.cocos2d引擎的结构清晰,文档和实例比较丰富.易学易用.

    2.1 cocos2d 基本结构

    Cocos2d采用场景树结构来管理游戏对象,把一个游戏划分为不同的场景,场景又可以分为不同的层,一个层又可以拥有任意个可见的游戏对象.游戏对象又可以执行Action来修改其属性.每一个时刻都有一个场景在独立运行,通过切换不同的场景来完成一个游戏流程.cocos2d还采用了引用计数的方式来管理内存,基本上所有的类都派生于拥有引用计数的机制的CCObject.其基本框架类图如下: 

    a.      CCApplication,负责平台相关的初始化,消息处理等,是一个单件类

    b.      CCDirector,主要职责是管理场景和切换场景,游戏暂停等.另外他还负责初始化openes相关的一东西.也是一个单件类

    c.      CCNode,节点类,是游戏中最重要的对象,在cocos2dk中,任何可见的或不可以的游戏逻辑对象都是一个节点,节点有以下特点:

    a)        是一个容器,可以包含任意多个其它节点.

    b)        可以执行一个行为(CCAction)

    c)        可以执行一定时的任务回调

    d)        拥有坐标变换(transform)信息,如postion,scale,rotation等

    e)        由于一个节点可以添加任意个子节点,所有的节点组成一个树状结构,因此父节点的坐标变换会影响子节点在世界坐标系中的坐标,一个节点只能拥有一个父节点

    d.      CCAction,动作类,CCAtion就好像指派给CCNode的命令一样,在特定时间(或立即)内修改CCNode的属性,例如位置,旋转,缩放等

    e.      CCScene,场景类,和PL中的stage类似,游戏场景一般是指在某个时刻能独立运行的部分,包括可见的怪物,地形和不可见的逻辑脚本等.例如一个游戏的一个特定关卡,游戏菜单,过场动画等都是一个独立的场景.cocos2d中的场景又由不同的层(CCLayer)组成.由于CCScene是CCNode的子类,因此可以可以用CCAction来修改其属性

    f.       CCLayer类,场景中的层类,一个场景可以拥有多个层,如HUD层,游戏对象层,背景层,天空层等,层是一个可以绘制的区域.可以将ui,sprite等对象添加到其中.除此之外,层还接收输入消息,可以在层的类中处理输入消息,和CCScene一样,CClayer是CCNode的子类,也可以用CCAction来修改其属性

    2.2资源管理与文件系统

    资源管理可以分为两个方面,一是管理一些原生(Raw)的资源,例如模型,贴图,脚本,字体等.另外一种资源是在游戏运行时分配的游戏对象.他们需要能被快速的访问.一般来说,没有被引用的游戏对象一般不会立即被释放,会先缓存到某个地方.在加载新的场景时.才会被释放.在一些大型的渲染系统中,资源会被分为三个阶段,硬盘,内存,显存资源,分别采用不同的策略和cache机制来管理,cocos2d没有明显的提出资源管理的概念,但使用了一些cache的机制来缓存已经加载了的纹理,frame,animation等.对于运行时分配的游戏对象,cocos2d也提供了一个autorelease的机制,在游戏切换场景时,将会对autorelease的对象进行内存回收.由于cocos2d采用了引用计数的机制.循环引用是一个需要关注的问题.

    对于文件系统,cocos2d封装了一个简单的类CCFileUtils,该类除了能读取普通的文件之外,还可以从zip文件读取文件.该类还读取plist文件生成一个CCDictionary对象.

    2.3 sprite与渲染系统

             Cocos2d的Sprite由Texure,frame,和animation组成,由openes负责渲染主要的类关系如下:


    a.      Sprite 可以看成是某一时刻,一个2d的图片的一个剪辑部分

    b.      frame由texture和一个矩形(quad)组成

    c.      texture代表一个可以被绘制的2维的纹理

    d.      imgae对应硬盘中不同类型的图片,例如jpg,png,tga等.它知道如何从文件中读取不同类型的图片,生成缓冲数据,供texture使用

    e.      CCAnimation由一系列的frame组成,类似于电影的胶片集合

    f.       CCAnimate,动画action,实现在指定时间内在sprite上播放指定的动画(CCAnimation)

    2.3.1 Texture与Image

             Cocos2d中的CCTexture2D用来描述一个2d的纹理,它知道如何将自己绘制到屏幕上.通过该类还可以设置纹理过滤,抗锯齿等参数.该类还提供了一个接口,将字符串创建成纹理.该类所包含的纹理大小必须是2^n.因此纹理的大小不一定就等于图片的大小.CCTexture2D以下成员:

    a.      name,指向纹理在显存中的地址

    b.      pixelFormat,描述纹理的格式,例如RGBA888,或RGB565等

    c.      pixelWidth,pixelHeight,纹理的宽高

    d.      maxS,maxT,纹理的最大坐标

    既然已经有了CCTexture2D这样的类纹理的渲染,那么还需要Imgae类做什么呢?因为图片的格式多样,不同的格式,不同平台下有不同的加载方法,因此cocos2d使用了一个CCImage类封装不同格式的图片在不同平台下的加载.如果说CCImage中的buffer对应的是内在资源,那么CCTexture2D对应的buffer是显存资源.

    2.3.2 Frame与Animation

             上面讲过,Frame保存了一个纹理和矩形,在cocos2d中,一般都会给frame起个名字,以字典的形式保存在CCSpriteFrameCache中,方便随时读取.CCSpriteFrameCache支持从plist(类似于xml)文件读取图片,根据文件生成一系列的frame,并且给每个frame都生成一个名字. plist的文件可以使用很多第三方工具生成,例如Zwoptex(http://zwoptexapp.com/),TexturePacker(http://code-and-web.de/texturepacker);

    CCAnimation类用来在CCspreite对象上实现动画.他保存了一系列的frame.和frame之间的延时.可以通过使用CCAnimationaction来在sprite上播放一个动画.

    2.3.3 渲染流程

             由于cocos2d只处理2d图形,渲染采用了固定流水线的方式.当时也可以直接使用openes的函数来完成一些高级的特效.和渲染相关的类有CCTexutre2D,CCTexutreAtlas, CCSprite,CCRenderTexture,CCRenderTexture支持将数据渲染到纹理上.另外CCNode还一个相机类,但一般情况都不使用.只有在实现一些3D特效的时候,才使用相机的一些特性.

    2.4 粒子系统

    Cocos2d支持两种类型的粒子系统,点状(CCParticleSystemPoint)和方形(CCParticleQuadSsytem)粒子系统,Quad类型的系统支持一些额外的特性

    a.      可以旋转

    b.      可以是任何大小的,而point的尺寸不能超过64

    c.      Quad类型的粒子系统可以被整体缩放

    d.      Quad类型的粒子系统比Point粒子系统消耗更多的内存和显存

    粒子系统还支持从plist文件中读取数据,plist文件可以通过第三方工具生成,例如ParticleDesigner(http://particledesigner.71squared.com/),和ParticleMint

    2.5 UI与字体

             Cocos2d中只有简单的ui实现,支持button,label,toggle三种类型的ui,另外还支持简单的文本输入框(TextField).类关系图如下:


    a.      CCMenu从CClayer派生而来,可以处理输入消息,CCMenu包含多个CCMenuItem对象,在接收到输入消息之后,根据触摸位置,将输入消息分发到相应MenuItem,执行回调函数

    b.      CCMenu还提供一个对齐菜单项的接口

    c.      CCMenuItem 菜单项的基类,目前cocos2d只从CCMenuItem派生了CCMenuItemLabel,CCMenuItemSprite,CCMenuToggle三个类.当然也可以派生新的类,实现其它的菜单项,例如checkbox等.

     

    Cocos2d支持两种类型的字体,一种是平台相关的TTF字体,另外一种是平台无关的美术字体,该类型字体可以通过字体编辑器(例如http://glyphdesigner.71squared.com/)自己来定义形状和大小,使用起来和sprite差不多,比较方便.

    2.6 简单的TileMap

             Cocos2d支持的是一种TMX(TileMap XML)格式的地图,该地图可以由TileMapEditor生成(http://www.mapeditor.org/),TMX地图有以下特点

    a.      支持正交(orthogonal),六边形(hexagonal),45度等距(isometric)地图

    b.      支持对象组,对象,和属性

    和地图相关的类如下:


    a.      以上类图是简化后的,实现的类还包含了objectgroup,property,TileSetInfo等

    b.      一个TiledMap拥有多个layer

    c.      一个layer拥有多个tile(用sprite来表示)

    d.      由于每个tile都被看作一个sprite对象,因此每个tile可以被独立的,移动,旋转,缩放甚至执行action等.

    e.      layer保存了一个对应于tileid的二维数组,只有在需要的时候才会根据tile id 创建相应的tile(sprite),这样可以既可以节省存储空间,也可以提高渲染效率.

    f.       Tile可以在运行时被添加和删除

    g.      http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:tiled_maps网页上有关于tileMap使用的详细教程

    2.7 游戏逻辑的支持

             前面已经讲过Cocos2d不仅仅只是一个2D渲染引擎,它还提供了一个支持游戏逻辑的系统,首先所有可见的对象,场景和layer都以场景树的数据结构来保存,对root(一般都是scene)执行的操作都会影响root的孩子节点.如果root被缩放或者平移,那么root的所有孩子节点也会被缩放和平移.所有的节点类(CCNode)都继承了一个接口 SelectorProtocol,该接口有一系列的回调函数,在特定的条件下回调来完成相应的逻辑处理.其中最基本也是最重要的是与schedule相关的回调接口.下面将介绍一下schedule任务系统

    2.7.0 Schedule系统

             Scheule系统也叫任务系统或者事件系统,任务指一个时间片内定时发生的事件.在cocos2d中的CCNode可以订制一个计划任务.通过回调函数来完成一个特定的逻辑.相关的类图如下


    a.      CCSchedule可以将selectorProtocol接口对象添加到任务列表中.

    b.      CCTimer每一帧都检查对应的任务是否达到执行时间点,如果达到则执行回调函数.

    c.      CCNode派生于SelecotrProtocol,根据需要重载实现回调函数,实现相应的逻辑

    2.7.1 Action介绍

             Action就像一些可以被执行的命令,通常情况下,一个action会修改一个CCNode对象的一些属性,让一个CCNode对象执行一些动作,例如改变其的位置,朝向.让一个Sprite播放动画等.如果这个action是在一定时间段内完成的,我们称它为IntervalAction,如果是立即执行的,我们称它为InstantAction.例如CCMoveBy在一定时间段内将一个CCNode对象移动一定的距离.因此它是IntervalAction的子类.而CCCallFunc实现立即执行一个架回调函数.因此它是InstantAction的子类.

             Action的设计采用了组合模式和装饰模式,可以将一系列的action组合起来,让CCNodec对象执行,就像给CCNode下达一系列的命令一样.例如以下代码

            

    CCActionInterval* move =CCMoveBy::actionWithDuration(0.5f, ccp(0,160));

             CCActionInterval*rotate = CCRotateBy::actionWithDuration(2, 360);

             CCActionInterval*scale = CCScaleBy::actionWithDuration(2, 5);

             CCActionInterval*opacity = CCFadeOut::actionWithDuration(2);

             CCActionInterval*fadein = CCFadeIn::actionWithDuration(2);

                      CCActionInterval* scaleback =CCScaleTo::actionWithDuration(1, 1);

    CCFiniteTimeAction*seq0 = CCSequence::actions(move, rotate, scale, opacity, fadein, scaleback,NULL);

    Actor->runAction(seq0);

             该代码解释如下:

    a.      Actor在0.5秒之内向y方向移动160个单位,

    b.      让actor在2秒内,旋转360度

    c.      将actor2秒内放大5倍

    d.      2秒内淡出

    e.      2秒内淡入

    f.       1秒之内缩放到原始大小

    2.8 网络支持

             Cocos2d没有提供专门的网络库

    2.9 脚本支持

             Cocos2dX最近的版本提供了lua脚本支持,在1.1.0版本结合了tolua++,基本上将所有类的成员函数都导出到脚本中.除此之外,还增加了一些脚本回调函数,例如菜单的消息处理可以通过执行一段脚本来完成.也可以添加计划任务来回调脚本函数.cocos2d中虽然有一个简单的实例来说明如何使用lua,但具体的效率如何还待进一步验证

    2.10 声音引擎支持

             Cocos2d使用了一个简单的声音引擎,支持Wav,mp3,ogg,caf格式音频文件播放.但该引擎没有提供音量设置

    2.11 物理引擎支持

             Cocos2d可以和box2d,chipmunk物理引擎结合在一起,实现碰撞,重力等物理效果模拟.在代码的实例中,有大量与box2d和chipmunk结合的实例,可以供学习和研究使用.

    2.12 cocos2d的缺点

             Cocs2d不但是处理了2D渲染,还将整个渲染系统和游戏逻辑紧密的耦合在一起,因此在使用coco2d渲染时,不得不使用他的整个逻辑相关的代码.因此很难在使用其渲染库的同时又自己设计一套逻辑框架.对于一些小型游戏来说,可以使用其可以进行快速的迭代和开发.但对于一些大型游戏,为了使用系统运行更稳定,结构更清晰.更易于扩展,一般都会将各个模块独立开来.以方便不同的人员分工开发和维护.

    展开全文
  • Cocos2d开发系列 一

    千次阅读 2018-11-06 12:28:23
    Cocos2d开发系列 一

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   

     

    Cocos2d是一个比较流行的iphone游戏开发框架,据说在AppStore 上已有超过 100 个游戏是基亍 Cocos2D-iPhone。其中 3 个由此 迚入过 TOP 10 的排名。其中的 StickWars 更是曾排名第一。现在,让我们来开始Cocos2d的学习之旅吧!

     

    一、安装下载

    Cocos2d下载地址:http://code.google.com/p/cocos2d-iphone/downloads/list

    当前最新版本为1.0。本教程选用的是稳定版本0.99.5。

    下载文件为targ.gz格式,将其解压到某个目录下,打开该目录,找到install-templates.sh文件,这个就是Cocos2d的安装脚本。

    你可以直接在终端里运行这个脚本进行安装,但如果你的Xcode没有安装在默认目录 下,则你需要在命令中添加一个参数。

    例如,你的Mac中可能同时存在一个Xcode版本(3.2.5),安装目录为:/Users/$yourname$/Developer,如果你想将Cocos2d安装到这个Xcode(3.2.5),则需要使用用命令:

    ./install-templates.sh  /Users/$yourname$/Developer

    来进行安装。

    安装完毕,你可以打开Xcode,新建Project,你会在UserTemplates目录下看到多了4个Cocos2d Application模板(如果是0.99版本,则只有3个模板):

     

    二、新建 cocos2dApplications项目

    新建一个cocos2dApplications项目,编译运行效果如下:

     

    打开HelloWorldScene.h,可以看到如下代码:

    #import "cocos2d.h"

     

    // HelloWorld Layer

    @interface HelloWorld : CCLayer

    {

    }

     

    // returns a Scenethat contains the HelloWorld as the only child

    +(id) scene;

     

    @end

    首先,import指令导入了cocos2d.h,在这个.h文件中,已经包含(import)了cocos2d的所有类。因此我们导入了cocos2d.h后,就不需要再一个个导入要用到的cocos2d类了。

    其次,HelloWorldScene.h中定义了一个CCLayer子类。CCLayer即所谓“层”的概念。层是一个容器的概念,cocos2d在层上放置多个动画元素,如文字、标签、图片、菜单,此外层接收触摸和加速器事件。

    第三,定义了一个静态方法,返回了一个——Scene,这个Scene实际上包含了一个层——HelloWorld,这是一个不错的实例化方法。Coco2d中Scene的概念,类似于电影中“场景”的概念--由于受舞台空间或屏幕空间的限制,一个情节往往只能在固定的空间环境中展现,而电影往往是由许多个情节构成, 随着剧情的发展,场景也需要改变,新的场景需要产生。所以电影就会在一幕幕场景中进行切换 ,这种切换被称为“转场”。

     切换到HelloWorldScene.m :

    #import "HelloWorldScene.h"

     

    // HelloWorldimplementation

    @implementation HelloWorld

     

    上面导入了HelloWorldScene.h并实现了HelloWorld类。O-C中,文件名不见得需要和类名一致。

    +(id) scene

    {

    ……

    }

    这个方法就不介绍了,和前面说过的一样。

    -(id) init

    {

    if( (self=[super init] )) {

    CCLabelTTF *label = [CCLabelTTF labelWithString:@"HelloWorld" fontName:@"MarkerFelt" fontSize:64];

     

    CGSize size = [[CCDirector sharedDirector] winSize];

    label.position =  ccp(size.width /2 , size.height/2 );

    [self addChild: label];

    }

    return self;

    }

    init方法中,创建了一个标签 CCLabelTTF (以前是CCLabel)并让他居中。ccp函数是CGPointMake函数的缩写。

     

    接下来,看一下应用程序委托,如果你有过Cocoa编程的经验,那么会发现这就是一个UIApplicationDelegate,它的主要方法是 applicationDidFinishLaunching:(UIApplication*)application :。

    ,并将EAGLView绑定到

    首先取得Director——导演。导演是cocos2d程序的统筹者和协调者,负责整个应用程序的主窗口的创建,以及每个场景在时间线上的先后顺序。

    CCDirector *director = [CCDirector sharedDirector];

    然后创建EAGLView实例。 EAGLView 派生亍类 UIView, 苹果公司用它来实现 OpenGL 输出支持,以支持OpenGLES 编程:

     

    EAGLView *glView = [EAGLView viewWithFrame:[window bounds]

       pixelFormat:kEAGLColorFormatRGB565

       depthFormat:0

    ];

    并将EAGLView绑定到导演的openGLView属性:

    [director setOpenGLView:glView];

    设置横屏:

    setDeviceOrientation:kCCDeviceOrientationLandscapeLeft];

    设置帧间隔(尚未实现):

    [director setAnimationInterval:1.0/60];

    设置帧率显示,即屏幕左下角不断变化的数字:

    [director setDisplayFPS:YES];

    设置渲染格式位32位RGB:

    [CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];

    移除闪屏,即一开始的那个coco2d Logo标志的屏幕:

    [self removeStartupFlicker];

    显示HelloWorld文字标签的场景:

    [[CCDirector sharedDirector] runWithScene: [HelloWorld scene]];

    }

     

     

     

     

     

     

               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • cocos2d-js 入门 (主要是HTML5)

    千次阅读 2018-07-21 15:42:09
    cocos2d-js是cocos2d-x的JavaScript版本,真正跨全平台的游戏引擎,采用原生JavaScript语言,可发布到包括Web平台,iOS,Android,Windows Phone
  • cocos2d-js快速入门,附游戏样例

    万次阅读 2018-04-08 23:51:00
    觉得cocos2d-js相对还是比较简单。我其实也没什么js基础,觉得只要知道了什么方法是做什么的,就能写游戏了。 0.安装环境 下载cocos2d-x http://www.cocos.com/download 下载安装python2 ...
  • Cocos2dx入门

    千次阅读 2019-04-18 22:36:19
    一.Cocos2d-x引擎特性 现代化的 C++ API 立足于 C++ 同时支持 JavaScript/Lua 作为开发语言 可以跨平台部署, 支持 iOS、Android、Windows、macOS 和 Linux 可以在 PC 端完成游戏的测试,最终发布到移动端 完善的游戏...
  • 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2d/415.html 最近几天仔细了解了iOS游戏开发引擎,常用的cocos2d,Unity引擎,那么Unity是非...
  • 本站文章均为 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2dx/603.html 可能很... 不得不说要说总结,因为Cocos2d-X的代码和Cocos2d-ipho
  • 1. Cocos2d-x 2.2.1 将下载到的Cocos2d-x解压。这里建议解压到没有空格的路径,因为空格很容易引起一些错误。 下图是我的解压目录: 这时候就要开始安装了,点击此文件夹下的build-win32.bat,接下来就要进行...
  • 很久以前使用博客园博主子龙山人的一篇博文《Cocos2d-x win7+vs2010配置图文详解 (亲测)》成功配置过cocos2d-1.01-x-0.9.1版本,链接为:Cocos2d-x win7 + vs2010 配置图文详解(亲测)-来自子龙山人的博客。现在想...
  • 在本文中,我将展示如何在 Mac os 10.9(Maverics) 上搭建 Cocos2d-JS 开发环境。 下载必备的软件包 下载并安装WebStorm7。WebStorm7目前的稳定版本是7.0.3。为什么我们选择WebStorm?因为它提供了许多功能,如...
  • 搭建Cocos Code IDE开发环境

    万次阅读 2015-05-05 18:17:31
    Cocos Code IDE是Cocos2d-x团队开发的,用于开发Cocos2d-JS和Cocos2d-x Lua绑定的游戏工具,它是基于Eclipse[ Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,...
  • 搭建Windows下的Cocos2d-3.X的开发环境

    万次阅读 2016-05-19 21:18:48
    搭建Windows下的Cocos2d-3.X的开发环境 一、搭建环境之前,准备 Cocos2d-3.x压缩包,我用的是Cocos2d- 3.11,Python2.7.11,开发工具 VS2015 1.vs2015下载路径+番茄小助手 ...番茄小助手为一个压缩包,大家仔细...
  • cocos2d: fullPathForFilename: No file found at /cc_2x2_white_image. Possible missing file. cocos2d: fullPathForFilename: No file found at main.plist. Possible missing file. cocos2d: fullPathForFilen
  • cocos2d-x设置背景颜色

    万次阅读 2012-12-16 21:22:44
    class HelloWorld : public cocos2d::CCLayer 更改为 class HelloWorld : public cocos2d::CCLayerColor 2.将bool HelloWorld::init()中的 CC_BREAK_IF(! CCLayer::init()); 更改为 CC_BREAK
  • fatal error LNK1104: 无法打开文件“libcocos2d.lib” fatal error LNK1104: 无法打开文件...解决方法:项目》属性》链接器》常规》附加库目录》把cocos2d的Debug.win32目录加入进去,之后就能编译过去了
  • 应项目需要使用cocos2d-x开发,又要学习新东东了。·cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,用C++重写cocos2d-iphone引擎的一个开源项目,想了解更多的童鞋美去百度吧。一切回到原点,还是老样子先从hello...
  • 一、第一个cocos2d程序

    千次阅读 2013-02-23 09:16:14
     我们这个专题要学习的是一款iOS平台的2D游戏引擎cocos2d,严格来说叫做cocos2d-iphone,因为cocos2d有很多个版本,我们学习的是iphone版本的。既然是个游戏引擎,那么它肯定是为了方便游戏开发而设计的。使用了...
1 2 3 4 5 ... 20
收藏数 77,500
精华内容 31,000
关键字:

cocos2d