cocos2dx_cocos2dx3 - CSDN
cocos2dx 订阅
Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++ Cocos2d-iPhone项目的版本。Cocos2d-X发展的重点是围绕Cocos2d跨平台,Cocos2d-x提供的框架。手机游戏,可以写在C++或者Lua中,使用API是Cocos2d-iPhone完全兼容。Cocos2d-x项目可以很容易地建立和运行在iOS,Android,黑莓Blackberry等操作系统中。Cocos2d-x还支持Windows、Mac和Linux等桌面操作系统,因此,开发者编写的源代码很容易在桌面操作系统中编辑和调试。 展开全文
Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++ Cocos2d-iPhone项目的版本。Cocos2d-X发展的重点是围绕Cocos2d跨平台,Cocos2d-x提供的框架。手机游戏,可以写在C++或者Lua中,使用API是Cocos2d-iPhone完全兼容。Cocos2d-x项目可以很容易地建立和运行在iOS,Android,黑莓Blackberry等操作系统中。Cocos2d-x还支持Windows、Mac和Linux等桌面操作系统,因此,开发者编写的源代码很容易在桌面操作系统中编辑和调试。
信息
发展重点
跨平台
类    型
开源的移动2D游戏框架
中文名
cocos2d-x
支持平台
iOS,Android等
cocos2d-x引擎介绍
Cocos2d-x是MIT许可证下发布的开源游戏引擎,游戏开发快速、简易、功能强大。2015年2月,触控科技正式推出了游戏开发一站式解决方案cocos,将Cocos 2d-x、Cocos Studio、Cocos Code IDE等框架及工具整合在一起。 [1]  Cocos2d-x核心优势在于允许开发人员利用C++、Lua及Javascript来进行跨平台部署,覆盖平台包括iOS、Android、Windows Phone、Windows, Mac OSX 3及Tizen等等,省事省力省成本。 [2]  Cocos2d-x用户不仅包括个人开发者和游戏开发爱好者,还包括许多知名大公司如Zynga、Wooga、Gamevil、Glu、GREE、Konami、TinyCo、HandyGames、IGG及Disney Mobile等。截止2013年9月,全球基于Cocos2d-x引擎的游戏下载量高达逾15亿,其中许多还占据苹果应用商店(AppStore)和谷歌应用商店(Google Play)排行榜。同时许多公司如触控、谷歌、微软、ARM、英特尔的工程师在Cocos2d-x领域也非常活跃。另外,Cocos2d-x版本升级困难的问题,是许多开发者的一大苦恼,而经过整合的cocos,解决了Cocos2d-x的这一问题。升级cocos,其相匹配的Cocos2d-x也将自动进行升级,这极大的提高了开发效率,为开发者们带来便利,同时也为Cocos2d-x的进一步发展打下基础。
收起全文
  • Cocos2d-x 游戏开发详解

    2019-12-26 10:31:24
    本课程通过20章125节课详细讲述了Cocos2d-x开发的详细过程,内容包括:基础编程:开发环境搭建、核心类、标签、菜单、精灵、事件处理、动作、定时器、GUI、数据结构;高级开发:音效、网络编程、数据存储、Tiled Map...
  • 本课程是《从零开始掌握Cocos2d-x 3.0(基于3.0正式版) 》课程配套的项目实战课程。建议对Cocos2d-x 3.0不了解的同学先学习该课程。本课程将利用《从零开始掌握Cocos2d-x 3.0(基于3.0正式版) 》中讲解的知识开发...
  • Cocos2dx入门

    2019-04-18 22:36:19
    一.Cocos2d-x引擎特性 现代化的 C++ API 立足于 C++ 同时支持 JavaScript/Lua 作为开发语言 可以跨平台部署, 支持 iOS、Android、Windows、macOS 和 Linux 可以在 PC 端完成游戏的测试,最终发布到移动端 完善的游戏...

    一.Cocos2d-x引擎特性

    现代化的 C++ API
    立足于 C++ 同时支持 JavaScript/Lua 作为开发语言
    可以跨平台部署, 支持 iOS、Android、Windows、macOS 和 Linux
    可以在 PC 端完成游戏的测试,最终发布到移动端
    完善的游戏功能支持,包含精灵、动作、动画、粒子特效、场景转换、事件、文件 IO、数据持久化、骨骼动画、3D


    二.环境配置

    要求:
    Windows 7+,
    VS 2015+
    python2.7

    JDK
    SDK
    NDK(可选)


    三.cocos命令配置

    1.cocos命令配置

    Cocos2d-x 带有一个命令行工具:cocos 这是一个跨平台的工具,你可以用它创建项目、运行项目、发布项目。命令行工具适用于所有 Cocos2d-x 支持的平台,包括:iOS、Android、Mac、Linux、Windows、Web。不用 IDE,只用命令行,你就能完成所有的工作!

    1.行引擎源码根目录的 setup.py
    python setup.py

    2.测试

    cocos -v
    Python 2.7.10
    cocos2d-x-3.16
    Cocos Console 2.3

    2.cocos命令使用

    • 1.项目创建

    cocos new MyGame -p com.MyCompany.MyGame -l cpp -d ~/MyCompany

    • 2.项目编译(程序从源码到二进制程序,有一个编译环节)

    cocos compile . -p android -m release

    • 3.项目运行

    cocos run . -p android -m release

    • 4.项目发布

    cocos deploy -s c:\MyCompany\MyGame -p android -m release


    四.日志输出

    log("This would be outputted to the console");
    
    string s = "My variable";
    log("string is %s", s);
    
    double dd = 42;
    log("double is %f", dd);
    
    int i = 6;
    log("integer is %d", i);
    
    float f = 2.0f;
    log("float is %f", f);
    

    五.基本功能

    1.Director导演

    Cocos2d-x 使用导演的概念,Director 任务是控制场景替换和转换。
    Director是一个共享的单例对象,可以在代码中的任何地方调用。

    2.Scene场景

    场景(Scene) 是一个容器,容纳游戏中的各个元素,如精灵,标签,节点对象。它负责着游戏的运行逻辑,以帧为单位渲染内容。
    1.场景创建

    class MyScene : public cocos2d::Scene
    {
    public:
    	static cocos2d::Scene* createScene();
    	virtual bool init();
    
    	// 实现crete静态方法
    	CREATE_FUNC(StartScene);
    };
    
    //创建
    auto myScene = MyScene ::create();
    

    2.场景切换

    //加载第一个场景
    Director::getInstance()->runWithScene(myScene);
    
    //切换场景
    Director::getInstance()->replaceScene(myScene);
    
    //叠加场景
    Director::getInstance()->pushScene(myScene);
    
    //释放场景
    Director::getInstance()->popScene(myScene);
    

    场景图
    场景图(Scene Graph)是一种安排场景内对象的数据结构,它把场景内所有的 节点(Node) 都包含在一个 树(tree) 上。
    Cocos2d-x 使用 中序遍历,先遍历左子树,然后根节点,最后是右子树。中序遍历下图的节点,能得到 A, B, C, D, E, F, G, H, I 这样的序列。

    场景图

    3.Layer层

    Layer代表层,一般常做Scene的子容器,可以添加Sprite,相当于精灵的面板容器。

    4.Sprite精灵

    精灵是您在屏幕上移动的对象,它能被控制;

    可以使用一张图像来创建精灵,PNG, JPEG, TIFF, WebP, 这几个格式都可以。当然也可以是图集

    使用图片

    auto mySprite = Sprite::create("mysprite.png");
    

    使用图集

    1.创建图集
    Texture Packer工具创建并导出plist+png图集

    2.加载图集

    auto spritecache = SpriteFrameCache::getInstance();
    spritecache->addSpriteFramesWithFile("sprites.plist");
    

    3.创建精灵

    auto mysprite = Sprite::createWithSpriteFrameName("mysprite.png");
    

    精灵的控制

    1.锚点
    mySprite->setAnchorPoint(0.5, 0.5);
    2.位置
    mySprite->setPosition(Vec2(100, 200));
    3.旋转
    mySprite->setRotation(20.0f);
    4.缩放
    mySprite->setScale(2.0);
    mySprite->setScaleX(2.0);
    mySprite->setScaleY(2.0);
    5.倾斜
    mySprite->setSkewX(20.0f);//水平倾斜
    mySprite->setSkewY(20.0f);//数直倾斜
    6.颜色
    mySprite->setColor(Color3B::WHITE);
    mySprite->setColor(Color3B(255, 255, 255));
    7.透明度
    mySprite->setOpacity(30);
    

    5.Action动作

    动作(Action)通过改变一个 Node 对象的属性,让它表现出某种动作。动作对象能实时的改变 Node 的属性,任何一个对象只要它是 Node 的子类都能被改变。
    1.单一动作

    //从当前位置到目标位置
    auto moveTo = MoveTo::create(2, Vec2(50, 10));
    mySprite1->runAction(moveTo);
    //从目标位置到当前位置
    auto moveBy = MoveBy::create(2, Vec2(20,0));
    mySprite2->runAction(moveBy);
    

    2.动作序列和并列
    还可以创建一个动作 序列(Sequence) 和Swan(并列)

    auto mySprite = Node::create();
    
    auto moveTo1 = MoveTo::create(2, Vec2(50,10));
    auto moveBy1 = MoveBy::create(2, Vec2(100,10));
    auto moveTo2 = MoveTo::create(2, Vec2(150,10));
    
    mySprite->runAction(Sequence::create(moveTo1, moveBy1,moveTo2, nullptr));
    //或者
    mySprite->runAction(Spawn::create(moveTo1, moveBy1, moveTo2, nullptr));
    

    六.UI组件

    UI 代表用户界面,是 User Interface 的缩写,界面组件有标签,按钮,菜单,滑动条等

    1.标签(Label)

    //BMFont
    auto myLabel = Label::createWithBMFont("bitmapRed.fnt", "Your Text");
    //TTF
    auto myLabel = Label::createWithTTF("Your Text", "Marker Felt.ttf", 24);
    //SystemFont
    auto myLabel = Label::createWithSystemFont("My Label Text", "Arial", 16);
    //阴影效果
    myLabel->enableShadow();
    //描边效果
    myLabel->enableOutline(Color4B::WHITE, 1));
    //发光效果
    myLabel->enableGlow(Color4B::YELLOW);
    

    2.菜单(Menu)

    //图片菜单
    auto closeItem = MenuItemImage::create("CloseNormal.png", "CloseSelected.png",
    CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
    
    //文字菜单
    auto startItem = MenuItemText::create("StartGame",
    CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
    
    //menu总菜单
    auto menu = Menu::create(startItem, closeItem, NULL);
    this->addChild(menu, 1);
    
    //Lambda写法
    auto closeItem = MenuItemImage::create("CloseNormal.png", "CloseSelected.png",
    [&](Ref* sender){
        // your code here
    });
    

    3.按钮(Button)

    #include "ui/CocosGUI.h"。
    auto button = Button::create("normal_image.png", "selected_image.png", "disabled_image.png");
    button->setTitleText("Button Text");
    button->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){
            switch (type)
            {
                    case ui::Widget::TouchEventType::BEGAN:
                            break;
                    case ui::Widget::TouchEventType::ENDED:
                            std::cout << "Button 1 clicked" << std::endl;
                            break;
                    default:
                            break;
            }
    });
    

    4.复选框(CheckBox)(Toggle开关)

    #include "ui/CocosGUI.h"
    
    auto checkbox = CheckBox::create("check_box_normal.png",
                                     "check_box_normal_press.png",
                                     "check_box_active.png",
                                     "check_box_normal_disable.png",
                                     "check_box_active_disable.png");
    
    checkbox->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){
            switch (type)
            {
                    case ui::Widget::TouchEventType::BEGAN:
                            break;
                    case ui::Widget::TouchEventType::ENDED:
                            std::cout << "checkbox 1 clicked" << std::endl;
                            break;
                    default:
                            break;
            }
    });
    
    this->addChild(checkbox);
    

    5.进度条(LoadingBar)

    #include "ui/CocosGUI.h"
    //创建进度条
    auto loadingBar = LoadingBar::create("LoadingBarFile.png");
    loadingBar->setDirection(LoadingBar::Direction::RIGHT);
    //设置进度
    loadingBar->setPercent(25);
    //add节点
    this->addChild(loadingBar);
    

    6.文本框(TextField)

    #include "ui/CocosGUI.h"
    
    auto textField = TextField::create("","Arial",30);
    textField->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){
         std::cout << "editing a TextField" << std::endl;
    });
    
    this->addChild(textField);
    

    七.监听事件

    1.五种类型

    EventListenerTouch - 响应触摸事件
    
    EventListenerKeyboard - 响应键盘事件
    
    EventListenerAcceleration - 响应加速度事件
    
    EventListenMouse - 响应鼠标事件
    
    EventListenerCustom - 响应自定义事件
    

    2.事件的吞没(可做遮罩)

    listener1->setSwallowTouches(true);
    listener1->onTouchBegan = [](Touch* touch, Event* event){
        // your code
        return true;
    };
    

    3.触摸事件

    让我们先了解一下什么是触摸事件,当你触摸移动设备的屏幕时,设备感受到被触摸,了解到被触摸的位置,同时取得触摸到的内容,然后你的触摸被回答。 这就是触摸事件。

    //创建触摸
    auto listener1 = EventListenerTouchOneByOne::create();
    // 触摸开始
    listener1->onTouchBegan = [](Touch* touch, Event* event){
        // your code
        Vec2 point = touch->getLocation();//获取点击位置
        return true; // if you are consuming it
    };
    // 触摸滑动
    listener1->onTouchMoved = [](Touch* touch, Event* event){
        // your code
    };
    // 触摸结束
    listener1->onTouchEnded = [=](Touch* touch, Event* event){
        // your code
    };
    // 添加监听(最重要的一步)
    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, this);
    

    4.鼠标事件

    创建鼠标事件监听器:

    //创建事件
    _mouseListener = EventListenerMouse::create();
    //设置不同监听
    _mouseListener->onMouseMove = CC_CALLBACK_1(MouseTest::onMouseMove, this);
    _mouseListener->onMouseUp = CC_CALLBACK_1(MouseTest::onMouseUp, this);
    _mouseListener->onMouseDown = CC_CALLBACK_1(MouseTest::onMouseDown, this);
    
    //绑定监听(最重要一步)
    _eventDispatcher->addEventListenerWithSceneGraphPriority(_mouseListener, this);
    
    //回调函数实现(也可以用匿名函数/Lambda)
    void MouseTest::onMouseDown(Event *event){
    	EventMouse* em = (EventMouse*)event;
    	em->getLocation();//获取鼠标位置
    }
    void MouseTest::onMouseUp(Event *event){}
    void MouseTest::onMouseMove(Event *event){}
    
    

    5.键盘事件

    对于桌面游戏,一般需要通过键盘做一些游戏内的控制,这时你就需要监听键盘事件。

    //创建事件
    auto listener = EventListenerKeyboard::create();
    listener->onKeyPressed = CC_CALLBACK_2(KeyboardTest::onKeyPressed, this);
    listener->onKeyReleased = CC_CALLBACK_2(KeyboardTest::onKeyReleased, this);
    //添加监听
    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
    
    //实现回调函数
    void KeyboardTest::onKeyPressed(EventKeyboard::KeyCode keyCode, Event* event){}
    
    void KeyboardTest::onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event){}
    

    6.Update事件

    如果需要持续的处理某个事件,那么可以开启一个update

    //开启update
    this->scheduleUpdate();
    void Test::update(float delta)
    {}
    

    八.物理引擎

    当你的需求很简单时,就不要使用物理引擎。比如只需要确定两个对象是否有碰撞,结合使用节点对象的 update 函数和 Rect 对象的 containsPoint(),intersectsRect() 方法可能就足够了。例如:

    void update(float dt)
    {
      auto p = touch->getLocation();
      auto rect1 = this->getBoundingBox();
      auto rect2 = this->getBoundingBox();
      if(rect1.containsPoint(p))
      {
          // do something, intersection
      }
      if(rect1.intersectsRect(rect2))
      {
          // do something, intersection
      }
    }
    

    1.刚体碰撞

    如你要开发一个游戏,一个场景有 100 个精灵对象,需要判断它们互相是否有碰撞,如果使用上诉方法那将非常复杂,同时性能消耗还会严重影响 CPU 的使用率和游戏运行的帧率,这游戏根本没法玩。
    这个时候就需要物理引擎了。

    /*创建物理场景*/
    auto scene = Scene::createWithPhysics();
    //显示物理引擎调试界面 --- 有红框
    scene->getPhysicsWorld()->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);
    //可把自己的类定义为Layer
    auto layer = MyScene::create();
    scene->addChild(layer);
    
    
    /*创建边框测试*/
    //创建一个物理世界, 大小和屏幕的尺寸相同, 使用默认材质, debug框的宽度为3个像素
    auto body = PhysicsBody::createEdgeBox(visibleSize, PHYSICSBODY_MATERIAL_DEFAULT, 3);
    auto edgeShape = Node::create();//创建一个碰撞图形
    edgeShape->setPhysicsBody(body);//将图形和刚刚创建的世界绑定
    edgeShape->setPosition(visibleSize.width / 2, visibleSize.height / 2);//设置图形的位置在屏幕正中间
    this->addChild(edgeShape);
    
    
    /*创建静态刚体精灵*/
    auto sprite = Sprite::create("HelloWorld.png");
    sprite->setPosition(center);
    this->addChild(sprite);
    //添加静态的刚体
    auto physicsBody = PhysicsBody::createBox(sprite->getContentSize(),
    PhysicsMaterial(0.1f, 1.0f, 0.0f));
    physicsBody->setDynamic(false);
    //设置碰撞层
    physicsBody->setCategoryBitmask(8);//种类
    physicsBody->setCollisionBitmask(16);//碰撞
    physicsBody->setContactTestBitmask(16);//接触
    //把刚体赋给精灵
    sprite->addComponent(physicsBody);
    
    
    /*创建动态刚体精灵*/
    auto sprite = Sprite::create("HelloWorld.png");
    sprite->setPosition(center);
    this->addChild(sprite);
    //添加静态的刚体
    auto physicsBody = PhysicsBody::createBox(sprite->getContentSize(),
    PhysicsMaterial(0.1f, 1.0f, 0.0f));
    physicsBody->setGravityEnable(false);
    //设置碰撞层
    physicsBody->setCategoryBitmask(16);//种类
    physicsBody->setCollisionBitmask(8);//碰撞
    physicsBody->setContactTestBitmask(8);//接触
    //把刚体赋给精灵
    sprite->addComponent(physicsBody);
    
    
    /*添加碰撞事件*/
    auto contactListener = EventListenerPhysicsContact::create();
    contactListener->onContactBegin = [](PhysicsContact& contact) {
    	log("OnCollision");
    	//auto nodeA = contact.getShapeA()->getBody()->getNode();
    	//auto nodeB = contact.getShapeB()->getBody()->getNode();
    	return true;
    };
    //绑定监听事件
    _eventDispatcher->addEventListenerWithSceneGraphPriority(contactListener, this);
    

    2.查询

    • 1.点查询
    • 2.射线查询

    九.音乐和音效

    你的游戏肯定会需要音乐和音效!Cocos2d-x 提供了一个 SimpleAudioEngine 类支持游戏内的音乐和音效。它可以被用来增加背景音乐,控制游戏音效。
    SimpleAudioEngine 是一个共享的单例对象,

    #include "SimpleAudioEngine.h"
    using namespace CocosDenshion;
    
    // 播放背景音乐
    auto audio = SimpleAudioEngine::getInstance();
    audio->playBackgroundMusic("mymusic.mp3", loop);
    // 暂停/停止/恢复 背景音乐
    audio->pauseBackgroundMusic();
    audio->stopBackgroundMusic();
    audio->resumeBackgroundMusic();
    
    //播放音效
    audio->playEffect("myEffect.mp3", false, 1.0f, 1.0f, 1.0f);
    // 暂停/停止/恢复 音效
    audio->pauseEffect();audio->stopEffect();audio->resumeEffect();
    // 暂停/停止/恢复 所有音效
    audio->pauseAllEffects();audio->stopAllEffects();audio->resumeAllEffects();
    
    展开全文
  • 由CSDN知名博客讲师火云红孩儿创建的火云开发课堂正式开始讲授新的Cocos2d-x v3.7版本中的3D引擎功能模块!
  • 本课程将帮助广大Cocos2d-x学员了解如何使用Cocos2d-x开发一款相对简单的射击类游戏。学员将会了解开发一款完整游戏的基本步骤,并学会如何将《从零开始掌握Cocos2d-x 3.x》中的知识转化为实际的游戏。学员将从这款...
  • 1.下载第三方 1.右键项目->添加->现有项,引入文件ToolsThreePart.cpp/.h 2.代码 4.效果
    
    
    1.下载ToolsThreePart.cpp/.h

    2.右键项目->添加->现有项,引入文件ToolsThreePart.cpp/.h


    3.代码


    4.效果

    展开全文
  • 然后运行Cocos2dx3.17里面的setup.py看看环境是否都弄好了  这些ndk、sdk、ant都是要下载的 3.环境配置好后重启一波就能创建工程了 创建工程的命令: cocos new PopStar -p ...

    1.首先要安装python,一定要是python2.x的

     2.然后运行Cocos2dx3.17里面的setup.py看看环境是否都弄好了 

    这些ndk、sdk、ant都是要下载的

    3.环境配置好后重启一波就能创建工程了

    创建工程的命令: cocos new PopStar -p com.xxxx.PopStart -l lua -d d:\cocos
    cocos : 命令
    new :创建项目的关键词
    PopStart:工程名字
    -p  com.xxxx.PopStart : -p 后面接的是公司包名
    -l lua : -l 后面接的是语言。(cpp\lua\js)
    -d d:\cocos 后面接的是存放地址

    如果不加地址-d就会创建到c:\Users\Administrator目录下

    4.运行工程
    到工程里的这个文件夹下(D:\cocos\PopStar\frameworks\runtime-src\proj.win32)看到PopStar.vcxproj双击在vs打开然后运行一下。

    (1)error C1076:编译器限制:达到内部堆栈限制;使用/Zm指定更更高的限制
    (2)错误 18 error C3859: 超过了 PCH 的虚拟内存范围;请使用“-Zm187”或更大的命令
    (1)(2)解决:这两个报错是预编译头的时候虚拟内存不够引起的,找到这个报错的项目右键-》属性-》配置属性-》c/c++-》命令行,然后在其它选项中填入“/Zmfactor”(差不多200都可以解决了)确定即可。
    factor的值     内存分配限制 
    10                7.5 MB
    100              75 MB
    200              150 MB
    1000            750 MB
    2000            1500 MB

    (3)错误    79    error C1900: “P1”(第“20130802”版)和“P2”(第“20100826”版)之间 Il 不匹配    D:\cocos\PopStar\frameworks\cocos2d-x\cocos\2d\LINK    libcocos2d
    解决:刚刚看了下3.17的版本发布说明,我用的是vs2013的,但是官方已经移除了对2013的支持,要用2015。
    终于安装好 vs2015专业版,然后就编译直接成功,成功之后简直无语,我在Debug文件中没有找到生成的exe文件,我以为出了什么问题,因为我用以前版本的时候是直接在(D:\cocos\PopStar\frameworks\runtime-src\proj.win32\Debug.win32)这个路径会生成项目PopStar.exe应用文件的,谁知道这个项目竟然换了一个地方(D:\cocos\PopStar\simulator\win32)exe文件生在了这里。Σ( ° △ °|||)︴大写尴尬,搜了一下午为啥没生成。。。。

    5.工程文件介绍

    res是放资源的地方,src是放代码的地方,改完代码或资源后运行它就可以了。

    展开全文
  • 以下和以后的学习日记和案列仅代表自己的观点和学习中的理解程度,有错误敬请理解,相互学习,相互成长,坚持写日记也是加深学习的印象,就怕眼高手低...cocos2dx 游戏的发展历史:https://blog.csdn.net/gzylongxi...

    以下和以后的学习日记和案列仅代表自己的观点和学习中的理解程度,有错误敬请理解,相互学习,相互成长,坚持写日记也是加深学习的印象,就怕眼高手低,我吃亏过来的,不要怕麻烦,前期的基础知识非常的重要!!!!!

    学习一个新知识和接触一个新的游戏引擎,首先得了解它的历史和发展历程。

    所谓磨刀不误砍柴工嘛!

    cocos2dx 游戏的发展历史:https://blog.csdn.net/gzylongxingtianxia/article/details/49885819

    cocos2dx 英文官网:http://www.cocos2d-x.org/

    cocos2dx 中文社区:http://www.cocos.com/

    安装和配置开发环境可以查大神们的博客和官网,我只会写我是怎么去找寻和实现的办法,还有,我尽可能的写清楚我不明白和怎么花时间去弄明白的地方,毕竟我也是小白一个,就是以我自己的见解写的日记,希望看到文章的童鞋们多多理解,用砖拍死我吧!

    废话不多说,开工了!

    首先,英文不好,都在中文社区弄的。

    下载cocos2dx 3.17版本到自己的电脑,我是window 10,土豪请配置mac电脑,运行程序确实快很多,Xcode也很好用,先流流口水,买不起!

    把下载的包解压到电脑并进入bin目录,看到cocos.py文件就是创建工程的入口函数,了解了历程的朋友们会知道,cocos前期是基与python写的,所以底层脚本用的是python。所以我们也必须在电脑上安装python的运行环境,我这里不赘述python的安装了,记得安装python2.x的版本,给个链接吧:https://www.cnblogs.com/lizm166/p/8092719.html 

    这里又不得不对Mac流口水了,python环境都是自带有的哦!

     

    现在,我们准备创建一个cocos项目进去运行看下来,再创建项目之前,我们还要装一个Visual Studio ,我装的是2017版的,cocos官方是建议安装15版的,我没管那么多了。

    要创建项目,需要打开windows命令窗口:

    我这里说明下我的两中创建工程的方式,选一个自己觉得方便的吧

    (1)在打开的bin目录下按住shift点击右键,在此处打开powershell窗口

     在此处输入创建项目的命令,命令可以在官网的文档里查和在这里输入 cocos --help 看帮助,和cocos --new

     

    开始创建游戏的命令:

    cocos new PopStar -p com.gongsi.PopStar -l cpp -d d:\cocos

    cocos :命令入口

    new:创建项目的关键字

    PopStar:游戏名称

    -p com.gongsi.PopStar:-p 后面接的是以公司网址的包名

    -l cpp:-l 后面接的是语言   (cpp即c++、- l lua  、-l  js等)

    --d d:\cocos\lianxi:-d后面接的是项目存放的地址

    这就是在创建项目中...............
     

    (2)第二种就是你把D:\cocos\cocos2d-x-3.17\tools\cocos2d-console\bin加入到电脑的环境变量中去

     

    上面同样的创建项目可以换成这样,最后的. 意思就是把项目创建在当前目录下

    习惯那种方式就用那种吧,毕竟创建项目用的不是很频繁,前期学习还是很频繁的哦

    项目创建好了,我们去看看项目吧

    点击 这个文件进入项目吧

    什么都不用管,点击运行看看效果呗

    今天就说这么多,下个日记说下对项目的初始demo说下自己的理解,谢谢您的阅读!

    展开全文
  • 需要Cocos2d-x教学视频的可加微信(Wiki-_-_-_-) Cocos2d-x是当下最热门的开源游戏引擎,游戏开发快速、简易、功能强大。 其中Cocos2d-x核心优势在于允许开发人员利用C++、Lua及Javascript来进行跨平台部署,覆盖...
  • cocos2dx简介

    2015-12-10 01:57:18
    作者简介 1973年,Ricardo Quesada出生于阿根廷。 在Ricardo 12岁时,他母亲为他购买了第一台电脑,一台Commodore 64。 刚开始,与其他孩子一样,Ricardo将自己的精力放在电子游戏上,但在几个月后,他购买了编程...
  • cocos2d是OC写的,cocos2dx是c++写的 cocos2d只能在ios下运行,cocos2dx是跨平台的,ios和android平台都可以运行 cocos2d是外国人搞的,cocos2dx是中国人搞的。 cocos2dxcocos2d的C++写法,但是游戏架构是一样的,...
  • 虽然现在Cocos2dx早已去到3.x的稳定版本,但之所以选用Cocos2dx 2.x版本,主要是这方面的资料比较多,本来搞Cocos2dx的人就不多了,搞了也没几个人写写编程记录,再去毫无资料只有一堆难以看懂的官方文档的
  • 最近要做一个手游项目,打算用cocos2dx来做,我也是初学者,网上很多书籍和资料都是采用cocos2dx的c++版本来做开发示例的 很少关于cocos2dx和lua怎么结合在实际项目中的教程,这使得我很痛苦,所以我写下这一系列...
  • 本站文章均为 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2dx/681.html          ☞ 点击订阅 ☜ 本博客最新动态!...
  • 自己在做项目的时候,有的时候需要统一一下cocos2dx 的版本,那么如何查看自己的cocos2dx C++的版本呢? 解决方案如下: 使用VS,然后点击 libcocos2d-&amp;amp;gt;cocos2d.cpp 下面,就由cocos2dx的版本了 `...
  • 使用cocos2dx开发的项目,嵌入到android原生项目中 要实现的功能,点击按钮打开cocos2dx编写的demo应用,当然这个cocos2dx是嵌入到android原生项目中的。 前提: 1,环境什么的这里就不说了,没有环境的自己上网...
  • Cocos2dx3.10作常侍~

    2016-05-09 22:31:47
    最近辞职接外包,当然是做手游的,之前有一点Cocos2dx的使用经验,大部分是配置好的环境或者找人配的。 如今要自己一个人配,确实走了不少弯路。 嘛,先说一下最想实现又是最难实现的Cocos2dx3.10配Andriod Studio吧...
  • cocos2dx三种定时器的使用以及停止schedule,scheduleUpdate,scheduleOnce
  • 联网游戏开发中,经常遇到http编程,接下来就分三次...如果要使用cocos2dx的CCHttpClient来进行网络访问,则需要引入cocos2dx的相关库,详细步骤如下: 右键单击项目->属性->c/c++->常规,在右边的附件包含目录中添加co
  • Cocos2dx-3.x减小空包体方法。由于公司需要,记录一下如何减小cocos2dx-3.x的方法,以免自己忘记: 在cocos2d/cocos/base/ccConfig.h文件中,把不需要使用的第三方插件关闭。比如没有使用物理或者3D物理,就把CC_USE...
1 2 3 4 5 ... 20
收藏数 40,356
精华内容 16,142
关键字:

cocos2dx