cocos2dx-v3.5 2048 (一): 项目架构
时间:2022-04-27
本文章向大家介绍cocos2dx-v3.5 2048 (一): 项目架构,主要内容包括前言、布局、代码结构、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
前言
开始学习cocos2dx, 在看完官方的基本文档之后,选择2048游戏作为第一次实战训练,并记下整个开发过程
关于2048的教程和源码很多,即便是同样采用cocos2dx引擎开发的源码也不在少数,本项目的架构也极大的参考了前人的源码,当然也做出了部分修改,首先是增加了移动动画效果,为游戏增加了三种模式(经典模式,小兵传奇模式,纯色模式)
开发工具: vs2012 + cocos2dx-3.5
源码地址: https://github.com/liuyueyi/2048
布局
游戏的整体界面非常简单,从下图可以看出,主要分为三个部分: GameTool, GameMenuLayer, GameLayer
GameTool: 主要包含标题(2048), 分数(score), 最高分(best) 三个标签
GameMenuLayer: 则主要包括三个菜单按钮, 重新开始, 后退一步, 设置(设置中主要用于更改游戏的模式,开关声音)
GameLayer: 则是数字的界面了,包括背景绘制,游戏逻辑判断
代码结构
代码结构说明
- AppDelegate: 每个项目都有的,主要是用于设置一些基本配置相关的属性,并首次启动运行场景
- DataConf: 保存数据,将当前游戏的状态(分数,最高分,游戏格局)保存在xml文件中,便于下次启动时恢复
- GameLayer: 主界面,包括显示背景,数字单元格, 游戏逻辑判断
- GameMenuLayer: 菜单,主要是实现restart, undo, set三个菜单的功能
- GameScene: 主场景,将GameMenuLayer, GameTool, GameLayer显示在场景中
- GameTool: 分数和最高分Label的显示及更新
- Grid: 单元格,包括单元格的背景色,显示内容,及移动动画
- MenuButton: 对菜单的封装,主要就是将Label转为MenuItem并返回
- SetMenu: 设置菜单界面,包括三种模式的切换以及声音的开关
本游戏全部的布局全部采用绘制方式进行,即没有采用资源文件,游戏源码地址:https://github.com/liuyueyi/2048
创建一个项目的命令:
cocos new 2048 -p hust.july.soldier -d .
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 134. 加油站 Krains 2020-08-20 14:03:21 前缀和贪心
- 53. 最大子序和 Krains 2020-08-20 10:46:24 动态规划前缀和
- 如何用Unity导出H5与小游戏的3D场景
- 设计模式 之 模板模式
- java基础:注解的定义与使用
- 使用 vagrant 从搭建 gitlab server 开始体验整个 gitlab CI/CD 过程
- 纲手推荐程序笔记1-p5.js创意游戏编程
- 由浅入深彻底了解 Python 闭包和装饰器
- leetcode1078 Occurrences After Bigram
- 负二进制加法实现
- 如何在O(1)时间复杂度下实现LRU
- 字符串拼接的N种方式
- MySQL 解决查询NULL的问题
- 矩阵旋转的解决
- Python partial最通俗的理解