• Cocos2d-x项目的游戏框架搭建


    本篇所用的Cocos2d-x版本为:Cocos2d-x 3.2


    Cocos2d-x项目的游戏框架搭建

    游戏与应用项目其实差别不是很大,甚至有许多地方都是一样的,无非侧重点不同,手机游戏更侧重于用户的体验,更加的娱乐化、情感化、让玩家感觉“爽”。而手机应用更侧重于简单、明了,优先完成业务为重。

    在以Cocos2d-x引擎为基础上,其实我们要做的准备工作还是很多的:

    一、分析项目

    首先,我们要知道,我们这个游戏是什么样类型的游戏,游戏机制是什么,按照目前市场上来说可以分成如下类型与机制:

    1、 游戏类型

    A、动作类

    B、策略类

    C、角色扮演类

    D、 体育类

    E、驾驶模拟类

    F、 经营模拟类

    G、冒险类

    H、 益智解谜类

    I、  社交游戏类

    2、 游戏机制

    A、物理机制

    B、经济机制

    C、渐进机制

    D、 战术机动机制

    E、社交互动机制


    当我们拿到项目的时候,我们一定要了解到这点,因为这是我们要采用哪些技术的基础依据。

    就好比《刀塔传奇》来说,那么它需要用到哪些基本技术呢实现呢?就像广告里说的骨骼系统!那么《愤怒的小鸟》呢?不用我说同学们也知道,物理系统!那么剩下的就是根据策划的要求进而添加一些基础的系统运用。

    其次,要知道我们的游戏是单机游戏?还是单机弱联网游戏?还是强联网游戏?通讯是采用长连接还是短连接。

    最后,逻辑是在服务端,还是在客户端!这点很重要!里面牵扯一些东西,容我一会再说。

    二、搭建项目

    基本需求分析完毕后,那么就开始创建一个Cocos2d-x项目吧。

    41_339298_29c64227febb12b.jpg

    耐心的等待片刻……

    好了项目创建成功了!

    41_339298_61ab501eef99c6f.jpg

    打开项目后,我们可以看到,Cocos2d-x已经帮我们集成了一些系统:

    41_339298_50e661552ebed7d.jpg

    Chipmunk物理引擎及Audio系统,那么让我们先来编译下…

    41_339298_a45f9c16aca3c34.jpg

    熟悉的HelloWorld的来了!

    那么基于需求,我们需要哪些系统帮助我们完成一个游戏呢?

    1、网络管理器

    网 络管理器,一般根据游戏的需求,我们会采用2种方式,短连接及长连接。短连接的话Cocos2d-x已经为我们提供了一个network库,而长连接 呢?Socket就需要我们自己去找第三方库了,对于Socket个人比较推荐ODScoket,因为android和ios都兼容,跨平台才是王道!

    41_339298_d8459a8dda0dfd8.jpg

    2、数据管理器

    数据管理器,说白了就是封装好的单例数据模块,方便管理及调用的数据集管理器。

    3、UI管理器

    UI 管理器就更不用说了,就是我们自己封装的UI管理器了,当然首先也需要我们熟悉下Cocos Studio!个人觉得有了Cocos Studio换IP什么的再也不用麻烦程序了,我打算下一节详细的讲讲UI管理器。要使用Cocos Studio必须要添加的库文件。

    41_339298_71e475dd2f7e3c7.jpg

    4、数据库管理器

    对于中型及大型游戏,肯定要使用到数据库,还好Cocos2d-x也为我们准备好了sqlite3库,这里就需要我们熟悉一般的SQL语句了,至少增删改查必须会啊!正可谓,万事具备,只欠东风了。

    5、加密管理器

    为 什么要提到加密,上述已经提到过,逻辑是在服务端还是在客户端,大部分游戏的逻辑都是在服务端,为什么呢?就是因为加密的问题,客户端只是负责显示逻辑及 提交业务就可以了,但是也有不少游戏逻辑是在客户端,服务端只负责保存数据及数据效验。其实,我个人比较喜欢将逻辑放在客户端,这样的话会大大的减少服务 器压力,只不过客户端一定要做好加密工作!一般情况,客户端加密可以采用多种手段,像Base64、MD5、AES等,具体到底适不适合当前项目,还是要 看项目实际情况了。

  • 相关阅读:
    XHTML学习笔记 Part3:核心属性
    XHTML学习笔记 Part2:核心元素
    XHTML学习笔记 part1
    北航非全日制-软件学院考研攻略(经验仅来自于2019年,2020年招生简章有变动,需谨慎)
    为什么能抓到网站https传输的明文密码?------顺便说说“知乎”和“支付宝”的安全性对比
    JetBrain系列学生免费授权
    印象笔记模板推荐使用
    测试用例评审总结与规范
    Django入门
    Django在根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete'
  • 原文地址:https://www.cnblogs.com/dudu580231/p/4560701.html
Copyright © 2020-2023  润新知