(一)cocos2d-x初识

cocos2d简介

cocos2d国人维护开发的游戏引擎,比较适合做2d游戏
优势:跨平台,免费,开源
主要版本:cocos2d-iPhone,Cocos2d-X,Cocos2d-HTML5,JavaScript bindings for Cocos2d-x

cocos2d-x: X 表示两个意思,意识c++文件CXX,“X” 标志该项目是由c++ 编写的,另一个意思是交叉,这个开源项目的目标是让用户创建跨平台的代码.
2d-x广泛的应用:我叫MT,龙之力量,大掌门,神仙道等等

开发环境集成工具

刚开始环境配置会很复杂,还好有cocosStudio 的windows安装包(集成了开发环境cocos2dx 3.10 版本)
资源难找,在此摆上网盘链接,与各位分享

链接:https://pan.baidu.com/s/1jWsNOZySCK3iF7qXaHYGRw
提取码:jrv8

cocos2d 主要功能:

  1. 流程控制:可以非常容易的管理不同场景之间的流程控制,直接使用导演(Diretcor) 对象,就可以进行场景的跳转
  2. 精灵(sprite,子图):引擎实现了精灵,直接使用引擎的方法就可以创建精灵
  3. 动作(Action):引擎实现了很多动作,移动,旋转,缩放等,动作还可以组合
  4. 特效(effects):引擎实现了很多特效,包括波浪(Wave),旋转(twirl) 和镜头
  5. 平面地图(tiled maps):支持矩形和六边形平面地图
  6. 转换(transition):支持从一个场景移动到另外的场景,可以添加动画,并且有30多种转场动画
  7. GUI:实现了很多的GUI控件,CCTableView,CCScrollView等
  8. 文本渲染(text rendering):支持标签和html标签动作
  9. 基于OPENGL:支持硬件加速

几个基本概念:

Director: 导演,权力最大,可以选择场景的切换,游戏的暂停,继续和停止,转换坐标,设置动画帧速率以及系统信息显示
Scene: 场景,类似话剧中的一幕(背景基本不变化,或者是说周围环境不会变化)
如:开场,过长,串场和游戏结束等视频或文字,主要用于进行游戏功能选择,游戏参数设置等选项场景类和游戏过程的游戏主场景.
Layer: 布景层,使用布景层可以将游戏界面中的各种元素分组管理.
如:将地图由地图布景层管理:将UI元素用UI布景层管理,将角色元素用角色布景层管理.一般会将布景层设置为透明,这样就不会干扰其他布景层中元素的显示.
Sprite:精灵(子图,但是感觉精灵更文雅,但是不太准确),拥有自己的行为,可以移动,旋转
Node:节点,场景上的所有元素都是节点之间关联起来的,形成一棵树,节点只是占据一个位置,和其他节点的位置关系,没有自己的行为,也没有形状, 其他的大多数类都是Node 的子类,拥有自己的行为,以及绘制方法

demo工程搭建:

1: 安装cocosstudio ,此处略
2: 打开cocostudio,文件->新建项目->勾选源代码,c++ ->确定
在这里插入图片描述

在这里插入图片描述

  1. 项目->发布与打包->发布为visualstudio 工程->确定(弹出提示是否使用vs 打开工程)
    在这里插入图片描述
  2. 进入vs 运行(可能需要十分钟编译,很多cpp文件,之后启动,则很快了)
  3. 启动成功
    在这里插入图片描述

工程目录结构解读:

在这里插入图片描述

cocos2d-x基本框架核心文件:

main.h/main.cpp 启动类
AppDelegate.h/Appdelegate.cpp
HelloWorldScene.h/HelloWorldScene.cpp 场景类,主要代码也是在此类中编写
其他用户自定义源文件

1. main.h/main.cpp

  1. 此文件在工程的proj.win32目录下
  2. 是cocos2d-x 程序的入口
  3. 实例花了AppDelegate 类的app 对象,并在Application:: getInstance()->run() 方法中启动了Applegate类的ApplicationDidFinishLaunching() 方法

main.cpp 代码:

#include "main.h"
#include "AppDelegate.h"
#include "cocos2d.h"

USING_NS_CC;

int APIENTRY _tWinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPTSTR    lpCmdLine,
                       int       nCmdShow)
{
   
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    // create the application instance
    AppDelegate app; // 创建app对象
    return Application::getInstance()->run();
}

Application::getInstance()->run()代码:


int Application::run()
{
   
    PVRFrameEnableControlWindow(false);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值