2D开源游戏引擎调研报告(三)

C# 在 2D 游戏开发中的实践与性能优化 C# 是开发 2D 游戏的理想语言,尤其是在 Unity 和 MonoGame 等流行引擎中。通过 C#,开发者可以轻松实现角色控制、碰撞检测、动画播放等核心功能,同时可以应用多种性能优化技术,提升游戏的流畅度和响应速度。在游戏开发过程中,合理选择开发框架与工具、掌握优化技巧,将有助于提升游戏的整体体验和性能表现。 阅读详情

三.Cocos2d-x

0.基本介绍
Cocos2d-x 是一套成熟的开源跨平台游戏开发框架。引擎提供了图形渲染、GUI、音频、网络、物理、用户输入等丰富的功能, 被广泛应用于游戏开发及交互式应用的构建。
官网:https://www.cocos.com/

1.语言和代码
核心代码为c++,支持使用c++、Lua、JavaScript语言

2.项目的生成
①新建项目:
打开引擎安装包目录中的tools\cocos2d-console\bin文件夹,使用cmd创建项目
②项目导出可执行程序
Windows、IOS、Android

3对象的封装、继承、实例化等功能
使用c++(或其他语言)相关语法实现
引擎已有的功能(如音频播放器)可以通过getinstance方法获得实例

4多场景的切换
runWithScene() 用于开始游戏,加载第一个场景。只用于第一个场景。
replaceScene() 使用传入的场景替换当前场景来切换画面,当前场景被释放。这是切换场景时最常用的方法。
pushScene() 将当前运行中的场景暂停并压入到场景栈中,再将传入的场景设置为当前运行场景。只有存在正在运行的场景时才能调用该方法。
popScene() 释放当前场景,再从场景栈中弹出栈顶的场景,并将其设置为当前运行场景。如果栈为空,直接结束应用。

5物理引擎:
Cocos2dx内置物理引擎,可以实现大多数功能
碰撞检测:
①比较两个对象是否碰撞 :使用boundingbox方法
②判断是否和其它对象碰撞:需要先创建PhysicsBody节点并增加监听方法

物理模型:
实体:PyhsicsBody(刚体)
相关属性:
质量、位置、旋转角度、速度和阻尼、材质(包含密度、摩擦、恢复系数)、形状(有内置模板可选)
绳子:使用关节效果实现
关节:包含多种关节,如限定两个物体之间的距离、速度等、还可以模拟弹簧效果
引力效果:用关节效果实现,或通过代码添加力的效果

6粒子效果
cocos2dx内置几种粒子效果且可以设置参数,但较为有限。建议使用第三方工具进行制作,制作的粒子效果可以作为资源文件播放。
官方推荐:
Particle Designer:Mac上一款非常强大的粒子特效编辑器
V-play particle editor:一款跨平台的粒子特效编辑器
Particle2dx:一款 Web 粒子特效编辑器,打开网页即可进行设计

7 UI组件,包含:
按钮:有
标签:使用createWithTTF方法
定时器:有,
Schedule:每x秒调用一次指定函数
Update:系统自带,每帧调用

菜单:有
复选框:有
进度条:有,LoadingBar、ProgressTimer两种
滑动条:有,Slider(也可作为进度条使用)
文本框:有,TextField

8》利用容器设置对象在屏幕中的位置
布局容器:
Absolute(绝对布局)、
Horizontal(水平布局)
Vertical(垂直布局)
Relative(相对布局)

控件容器:
scrollView、ListView、PageView、RichText多格式文本、TabelView

9光影渲染
无相应函数

10动画部分,包含:
10.1对象的位置、朝向、移动
基础方法:move、setrotation等
高级方法:cardinalsplineby(沿轨迹移动)、jumpto(沿抛物线运动)、BezierTo(沿贝塞尔曲线运动)
注:圆周运动需要自己实现

10.2对象的颜色渐变
修改color(R、G、B)和Opacity(透明度)
渐变效果没有直接的方法,可以在update函数(系统自带函数,每帧调用一次)实现

10.3数字的变化
有ActionTween方法可以让节点对象的属性值渐变(如scale,position)

11音频文件的加载、播放
分为音乐和音效,支持的音乐格式与平台有关
Android:mp3、mid、ogg、wav
IOS:aac、caf、mp3、m4a、wav
Windows:mid、mp3、wav

附网上资料说明:

CocosDenshion 引擎库实际上是对系统音频 API 的封装,因此它支持的音频文件格式与平台有关

12视频文件的加载、播放
目前只支持Android和IOS

13学习资源的丰富性
API只有英文,网上学习资源较多

评价:
在几年前,Cocos2dx是最为热门的游戏引擎之一。但是从2015年起开始陷入低谷,现在已经基本被Cocos Creator 取代。Cocso2dx最大的优势在于生成的安装包小,引擎效率较高(比如它会自动把文本转成图片格式)。由于它是纯代码的编辑方式,因此更容易修改底层的设计,程序较为灵活。对于制作小游戏来说是很好的选择。但是,由于没有图形化编辑器,UI设计相对困难,且无法直接调试子场景,不适合中大型游戏。

其它:
砖块地图制作软件:Tiled Map Editor
导出格式:tmx和png

XNA 的 3D 和 2D 游戏引擎(商业与开源) <br />找到了不少,在这里分享一下。说不定以后我自己也要用到!<br /> <br />商业3D引擎:<br />TorqueX (我两年前用的时候,还只是一个2D引擎,目前社区版已经有For XNA 4.0 的了)<br /> <br />Visual3D(这个没有用过,不过看介绍还是不错)<br /> <br />开源3D引擎:<br />OxGameEngine Fox XNA (社区里推荐的游戏引擎,似乎很强大)<br /> <br />X-Engine<br /> <br />Reactor 阅读详情

相关推荐

开源游戏引擎体验

应该说每个做游戏的人都会有一个自己写游戏引擎的梦。趁着还没有到新公司报道,花点时间研究一下开源引擎,梳理一下自己的思路。        新的游戏引擎是基于cocos2d-x,我希望能够从这些开源引擎中学到:        1、粒子系统、粒子编辑器。cocos2d-x的粒子系统相当薄弱,不是说没有,但是想用他做出酷炫的技能特效是非常困难的一件事。很多人都有做cocos2d-x的粒子编辑器,但是在

langresser的专栏 3023

横跨2D与3D!专属C#开发者的超强游戏引擎Paradox

摘要:Paradox是一款开源的游戏引擎,让你使用C#来构建跨平台的游戏,支持iOS、Android和Windows Phone等。无论你的游戏是纯粹的2D还是全3D场景,亦或是混合,Paradox所提供的灵活渲染架构,可以满足你的所有需求。 Paradox是日本Silicon Studio公司推出的一款开源的全新游戏开发引擎,能够让你使用C#编程语言来构建出符合心意的跨平台游戏,支持i

u014599685的专栏 4085

【GitHub项目推荐--5款最佳开源免费游戏引擎】【转载】

Stride是一个开源的游戏引擎,基于C#语言,可以用于逼真的渲染和VR开发。该引擎具有高度的模块化,为游戏开发提供了较大的灵活性。它受到Borland BGI图形库和XNA框架的启发,特别适合用于原型设计、工具、图形应用程序、嵌入式系统和教育等领域的开发。具有令人惊叹的图形界面以及强大的脚本语言功能,专为快速工作流程而设计,拥有许多随时可用的功能。游戏引擎可以为游戏开发创作提供框架,使开发人员能够全身心投入于游戏内容,而非更为详细的技术部分。游戏引擎数目众多,在开源社区也不乏比较优秀的游戏引擎。

j8267643的博客 7964

2D图形引擎Cairo例子

【代码】2D图形引擎Cairo例子。

chenbingjy的博客 284

Tolop documented Games:开源2D游戏引擎项目

本文还有配套的精品资源,点击获取 简介:Tolop documented Games是一个开源项目,专注于游戏开发和文档编写。由学习开源程序员团队(TOLOP)执行,旨在通过提供2D游戏引擎源代码,促进开发者之间的知识分享和协作。该项目通过社区驱动,鼓励各种技能水平的开发者参与贡献、协作和学习。相关文件包含了作者贡献列表、安装指南以及一系列的开发步骤和教程,为游戏开发提供了...

weixin_27645199的博客 1359

开源小型2D游戏引擎源码解析

游戏引擎是现代电子游戏开发的基础,它提供了构建游戏世界所需的核心功能。从图形渲染、音频播放,到物理模拟、网络通信,每一个环节都至关重要。理解游戏引擎的核心功能,对于提升游戏的性能、开发效率以及最终的游戏体验有着直接的影响。在C++编程语言中,头文件主要负责声明程序中使用的函数、变量以及类等的接口。它们允许你在不同的源文件之间共享这些声明,从而实现模块化和代码重用。当你在多个源文件中需要使用相同的函数声明或类定义时,你不需要在每个源文件中重复声明这些内容。

weixin_31459297的博客 1196

Lumen-2D 开源游戏引擎指南

Lumen-2D 是一个专为2D游戏开发设计的轻量级开源游戏引擎,由Domenicobrz创建。它基于C++构建,并利用现代图形库如OpenGL或Vulkan确保高效渲染,同时支持热更新和Lua脚本,使得游戏逻辑与核心引擎分离,易于调试和动态调整。Lumen-2D旨在简化游戏开发过程,让开发者聚焦于创意与设计而非底层技术,特别适合独立游戏开发者和缺乏图形编程经验的小团队。它拥有高度可定制的组件系统

gitblog_00575的博客 1114

Love2D游戏引擎:2D游戏开发的高效选择

本文还有配套的精品资源,点击获取 简介:Love2D,或称"Love",是一个基于Lua语言的开源2D游戏引擎,以其易用性、功能丰富性以及跨平台特性受到独立开发者和初学者的喜爱。通过Lua脚本,开发者能够快速构建从简单到复杂的2D游戏。它提供图形、音频、物理和输入处理等功能,并支持多种操作系统平台。Love2D社区活跃,资源丰富,有助于降低开发门槛,加速游戏原型设计和迭代过...

weixin_42298164的博客 4644

2D开源游戏引擎调研报告(一)

前言:我需要一个2D的开源游戏引擎用于设计一款工业模块控制相关的软件。以下是我选取调研的四款软件。 一、Godot 二、Panda3D 三、Cocos2dx 四、CocosCreator (注:这些软件中的3d部分功能均不在考察范围中) 调研内容: 1.使用语言 2.可执行文件可以运行的平台 3.对象的封装、继承、实例化等功能 4.多场景的切换 5.物理引擎,包含: 碰撞检测 物理模型: 实体 绳...

alittebug的博客 3186

CEngineSharp:用C#编写的免费开源2D ORPG引擎

CEngineSharp CEngineSharp获得了

跨平台烧录实战:RKDevTool在Windows/Linux/MacOS下的统一与差异

本文详细解析了RKDevTool在Windows、Linux和macOS三大操作系统下的固件烧录实践,重点介绍了RK3576开发板的环境配置、工具链选择、烧录模式切换及常见问题解决方案,帮助开发者构建稳定可靠的跨平台烧录工作流。

cnn8visionary的博客 206

2D开源游戏引擎调研报告(二)

二.Panda3D 0.基本介绍: Panda3D是由迪士尼参与开发的开源3D游戏引擎 只有函数库,通过在python/c++文件中调用函数库进行开发 官网:https://www.panda3d.org/ 教程资源: ①安装引擎时会附带28个demo,展示了引擎的使用方式和特点,并附有非常详细的注释 ②https://arsthaumaturgis.github.io/Panda3DTutori...

alittebug的博客 892

避坑指南:MTK平台Widevine L1密钥安装全流程详解(含SP META工具使用与Log分析)

本文详细解析了MTK平台实现Widevine L1认证的全流程,涵盖密钥申请、格式转换、安全烧录等关键步骤,特别针对Trustonic TEE环境下的SP META工具使用与日志分析提供实用指南。帮助开发者规避常见错误,确保DRM密钥安全部署,满足高端内容保护需求。

weixin_27219587的博客 476

GearX :2D游戏引擎开发实践

高考后的暑假,我在B站上看了GAMES 104课程,从那时起我就心里有了一个Idea,就是自己写一个游戏引擎,但那时自己的编程能力还不熟练,所以一直没开始。然后我开始学习相关的技术,提升自己的能力。而在一个月前,我开始了引擎的编写。目前引擎已经基本完成(应该),并且已经可以运行,因为时间原因(才弄了一个月),这个游戏引擎的功能还很简单,以后有时间引擎会进行升级。GearX 是一个2D游戏引擎,使用C++编写,Cmake构建,基于SDL3 开发。

qq_62562855的博客 2321

Tesseract in Java - Intellij IDEA对Tess4J的配置和使用

最近要弄OCR,搜到这个,官网全英文,很烦,看看有没有中文的博客介绍,擦,一个比一个奇葩,还是自己按照官方的来吧,外网慢的很,传到csdn给大家下载。中文训练库下载地址: http://download.youkuaiyun.com/detail/d_dmelon/9916532Tess4J3.4下载地址: http://download.youkuaiyun.com/detail/d_dmelon/9916519安装

Lewis的博客 1万+

飞牛fnNAS搭建私有云音乐库

本文介绍了在飞牛NAS上部署Navidrome音乐服务器的完整流程。首先创建音乐存储目录并安装Navidrome应用,然后配置管理员账号、语言设置和音乐路径。接着详细说明使用"音乐标签"软件刮削音乐元数据的方法,包括获取软件、导入音乐文件和自动匹配标签。针对远程访问需求,推荐使用ZeroTier实现内网穿透,并给出注册、创建网络及设备加入的具体步骤。最后介绍移动端使用"音流"APP连接Navidrome服务器的配置方法,实现手机端音乐播放。通过这套方案,用户可以搭建专

dgnankai的专栏 1827

原创2D/3D游戏引擎源代码开源

早期的作品代码结构较差,对大家造成的误导敬请谅解。我会不断的更新个人作品,请大家始终参考最新的源码。在此感谢热心网友给我提的宝贵意见。

游蓝海 的专栏 1万+

SY6982C 7.4V锂电池1A充电模块原理图设计,已量产

在手持设备、便携工具与小型无人机等场景中,7.4V(2S)锂聚合物电池的应用愈发广泛。这类电池对充电系统的安全性、效率与兼容性提出了明确要求:需支持 USB 5V 输入、1A 安全充电,同时具备多重保护机制。本文将结合一款基于 SY6982C 的充电原理图,深入解析其电路设计与技术亮点。

不脱发的程序猿 363

2d开源游戏引擎_前5名:构建出色的CLI,开源2D游戏引擎等

2d开源游戏引擎 在本周的前5名中,我们重点介绍了用于构建出色的命令行UI,开源2D游戏引擎,机械键盘等的工具。 一周前五篇文章 5. 面向程序员和游戏玩家的机械键盘 Input Club的机械键盘不仅用于生产出色的产品。 他们也证明开源可以解决任何问题。 4. Raspberry Pi Zero W修复了网络遗漏 Raspberry Pi发烧友Anderson Silva在...

cumo3681的博客 1308

Altium Designer(AD24)导入DDB库文件(Protel 99SE)方法

Altium Designer和Protel均为Altium公司开发的软件。本文介绍Altium Designer 24软件导入DDB库文件(Protel 99SE)方法。

fydar的博客 1982

Challenge 6 - OSCP C

开放了161端口,直接snmpbulkwalk扫描得到账号密码试了那几个web端口,发现可以登录8083的vesta,但是需要用户名大写Jack接着登录之后里面可以创建计划任务,直接弄个反弹shell,一分钟回弹。得到shell后,运行linpeas.sh提供了几个可能的漏洞,挨个试一下。

羽的博客 4143

【亲测免费】 探索LITIENGINE:开源Java 2D游戏引擎的新星

探索LITIENGINE:开源Java 2D游戏引擎的新星 在游戏开发的广阔天地中,选择一个合适的游戏引擎是成功的关键一步。今天,我们将深入了解一个新兴的开源Java 2D游戏引擎——LITIENGINE,它以其全面的功能和友好的社区支持,正逐渐成为开发者的新宠。 项目介绍 LITIENGINE是一个免费且开源的Java 2D游戏引擎,它提供了一套全面的Java库和一个专用的地图编辑器,用于创建基...

gitblog_00530的博客 908

Python李峋同款跳动的爱心(完整代码)

Python语言实现李峋同款可写字版跳动的爱心的完整代码。

AIGC 4万+

各大知名游戏引擎分析报告

游戏引擎之争就像编程语言之争一样,在游戏开发圈永远是一个火爆的话题,目前市面上主流的一些游戏引擎,我们来给他们做一些比较,了解他们的历史,特点, 为了严谨,备注一下写这个文章的时间编写时间是2021年4月20日。目前国内主流在用的游戏引擎有, Unity, Cocos, Laya, UE4, 白鹭, 接下来我们一起来分析这些引擎的特点。 这里有个游戏开发交流学习小组点击可以直接加入,一起学习交流吧 1: 国民3D引擎Unity Unity, 使用C#或Lua语言开发。国民3D引擎,这个称号说明了Uni

voidinit的专栏 4092

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Torque2D 开源游戏引擎快速入门指南

--- ## 项目目录结构及介绍 Torque2D 是一个基于成熟Torque技术构建的完全免费且开源的2D游戏引擎。其目录结构精心设计,以支持模块化开发和易于管理。以下是核心目录的概览: - **`engine`**: 包含引擎的核心C++源代码,是整个引擎的心脏。 - `compilers`: 提供不同平台的编译设置文件,如Visual Studio或Xcode工程文件。 ...

gitblog_00782的博客 993

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

solarus:开源的2D游戏引擎,实现你的塞尔达梦

solarus 是一款开源的2D游戏引擎,它使用 C++ 编写,支持通过 Lua 脚本运行游戏。这款引擎最初用于开发类似《塞尔达传说》的粉丝游戏(fangames),现在已经发展成为一个功能丰富且高度可定制的游戏开发平台。solarus 遵循 GPL v3 许可协议,用户可以自由使用和修改源代码。 ## 项目技术分析 solarus 采用了成熟的编程语言 C++ 来构建核心功能,这保证了引擎的

gitblog_00355的博客 993

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 2D开源游戏引擎调研报告(二)
下一篇: 2D开源游戏引擎调研报告(四)
此曲只应人间有
博客等级 码龄7年 3粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值