程序聚合 软件案例 2d游戏测试-2d游戏测试

2d游戏测试-2d游戏测试

2026-03-07 22:59:30
行业:游戏/电竞
载体:游戏
技术:C++、CMake

业务和功能介绍

使用了SDL等库和CMake和C++语言和AI大模型辅助,从零开始写了一个小游戏雏形,用时大约4个月。
里面进入游戏后是一个GAME CLICK TO play 的场景,然后使用鼠标点击后进入主菜单场景,主菜单目前有两个场景堆叠成的一个画面,一个是背景和 play settings exit 按钮场景,一个是点击settings 后弹出来的独立的设置场景。点击play进入世界场景,里面是两个场景堆叠成的一个画面,一个是瓦片地图和玩家和粒子效果的场景,一个是UI场景,场景间任何事件可以被消费掉。
可玩性欠缺,目前仅仅测试引擎运行和效果等等,后续会陆续加入可玩性。

项目实现

实现了一个基本的2D游戏框架,内部有场景切换功能,模拟重力的物理,瓦片地图系统,角色帧动画,对象池粒子系统,基本UI系统,场景事件消费。使用了C++20和现代C++的特性,使用了对象池和启动时预加载的功能实现了运行时无内存分配开销,并且退出程序时使用了RAII特性进行了内存清理来防止内存泄露程序崩溃等等问题。

RAII:使用了现代C++的特性进行开发,使用智能指针std::unique_ptr进行启动时预加载对象分配,const T*观察指针和引用&进行运行时对象引用。清理时使用了模块化单例化设计,每一个模块单例管理自己的内存。

场景系统:场景系统SceneManager就是一个管理栈型数据结构的类封装,场景Scene是基本单位。并且Scene为顶级父类,Scene继承下来的类如 class WorldScene : public Scene 是世界场景等等。

事件消费:事件消费使用了场景系统SceneManager来实现。场景系统SceneManager就是一个管理栈型数据结构的类封装,场景Scene是基本单位,最后堆叠渲染成一个画面。把事件先传给最上层场景,如果场景有能力对事件做出反应,就把事件消费,如果没有能力消费事件,就传下去给下层场景。


UI:UI系统就是使用事件消费和基本AABB检查鼠标在不在框内实现的。比如点击UI场景的事件不会传给世界场景。当然也可以选择允许不消费,也就是UI不消费事件,把事件传给世界场景等等
。包含一个Widget基类和各种如 class ControlButton : public Widget 的继承类。
并且UI事件消费的事件处理对于高频使用的按钮是直接访问对象内存地址的方式进行信号发送,因为这是最快的。如果高频使用的按钮是使用EventBus进行信号发送,而不是直接写内存,会比较慢并且有堵塞风险。但是也有一个EventBus进行低频率的信号发送,比如菜单按钮,玩家相比移动按钮更少按下,就可以使用低频EventBus进行信号发送。

渲染:渲染器使用了SDL_Renderer进行基本2D渲染,并且也封装了底层SDL_gpu配合HLSL着色器语言和SDL_shadercross着色器跨平台编译器和SPIRV-Cross进行编写基本跨平台的2D渲染管线。但是目前发现了SDL_Renderer无法和SDL_gpu + 着色器语言配合使用,所以说只能取舍。方案是最后全部采用SDL_gpu进行跨平台GPU渲染。
SPIRV-Cross 配合 DXC 使用HLSL编写的着色器可以进行跨平台着色器编译。比如HLSL → DXIL支持DX12,HLSL → SPIR-V支持 Vulkan,HLSL → SPIR-V → MSL支持苹果的Metal,HLSL → SPIR-V → GLSL支持老OpenGL,等等。


示例图片视频


zhy
5天前活跃
方向: 游戏开发-游戏开发其他、后端-Python、
交付率:100.00%
相似推荐
Java桌面应用 / 图书管理系统(图书管理系统)-图书管理系统
1. 图书管理 — ISBN/书名/作者搜索,增删改查,库存实时追踪 2. 读者管理 — 借书证管理,院系/电话信息维护 3. 借阅管理 — 借书(自动30天借期)、还书、超期罚款(0.5元/天) 4. 统计分析 — 分类统计、出版社分布、超期未还清单 5. 数据导出 — 所有表格支持CSV导出,Excel可直接打开
综合服务平台(含 App / 小程序 / Web 端)-满帮货运
我负责满帮货运平台的全端业务开发,覆盖货主 / 司机双端场景: 货主端功能:货源发布、运费计算、订单管理、司机匹配、线上签约、支付结算; 司机端功能:货源查看、抢单 / 接单、路线规划、电子回单、油卡充值、ETC 服务; 管理后台:用户管理、订单审核、数据统计、风控管理、客服工单处理; 跨端适配:同时支持 Web 管理后台、移动端 App(iOS/Android)及微信小程序,实现多端数据同步与业务闭环。
微信原生AI应用热量管理工具小程序-纤刻
# 纤刻 — AI 驱动的智能饮食与运动管理助手 > 记录今天,刻下改变。 --- ## 一、产品概述 纤刻(Qianke)是一款基于微信小程序平台的 AI 智能健康管理工具,面向关注体重管理、饮食质量和代谢安全的用户群体。产品深度集成人工智能能力,提供从食物识别、营养规划到运动记录的全链路闭环体验,让用户在微信生态内即可完成科学、个性化的健康管理。 ### 核心定位 - **不只是热量计算器**:纤刻在传统热量追踪基础上,引入代谢安全监控(Energy Availability)、饮食结构分析、AI 自适应目标调整等进阶能力,帮助用户在安全范围内达成健康目标。 - **AI 原生体验**:从拍照识别食物、对话式运动记录,到基于 14 天行为数据的动态目标生成,AI 贯穿产品的每一个核心环节。 - **科学安全优先**:内置激进策略风险检测、健康状况守卫、体重漂移校验等多层安全机制,确保用户不会因追求速度而损害健康。 --- ## 二、目标用户 - 希望管理体重(减脂 / 维持 / 增重)的微信用户 - 关注饮食营养质量、希望了解每日膳食结构的人群 - 有慢性病管理需求(高血压、二型糖尿病、慢性肾病等)需要谨慎控制饮食的用户 - 偏好在微信生态内完成健康管理、不想额外安装独立 App 的用户 --- ## 三、核心功能 ### 3.1 智能仪表盘(Dashboard) 仪表盘是用户的「今日中心」,一屏呈现完整的当日健康状态: | 模块 | 说明 | |------|------| | 热量英雄卡 | 显示剩余可摄入热量,动态渐变色彩随摄入比例变化(绿色 → 黄色 → 红色),圆环进度指示器 | | 三大宏量营养素卡片 | 蛋白质 / 碳水 / 脂肪各自的进度条、摄入量、目标值、最低摄入线和颜色引导 | | 代谢安全卡 | 实时计算 Energy Availability(可用能量 / 去脂体重),三级安全状态(安全 / 注意 / 危险) | | 四餐记录 | 早 / 午 / 晚 / 加餐四个餐次,展开查看每条食物记录,支持编辑和删除 | | 饮食结构分析 | 汇总当日所有食物标签,显示警告标签(高糖、高钠等)和正面标签(高纤维、抗炎等) | | 运动卡 | 展示当日运动记录,支持增删改 | | 体重卡 | 显示当日体重及与上次的变化量 | 下拉刷新可同步微信运动步数并刷新 AI 日标。 ### 3.2 AI 拍照识别(AI Camera) 两种模式,覆盖食物和配料表两大场景: **食物识别模式** - 拍照或从相册选择食物图片 - AI 返回:食物名称、每 100g 营养素(热量 / 蛋白质 / 碳水 / 脂肪)、建议份量、置信度、推荐文案 - 丰富的标签体系:微量营养素亮点(microHighlights)、功能效果(f
智能订单管家
智能订单管家是一套面向无货源电商与中转仓业务场景的多平台订单协同管理系统,支持淘宝、拼多多、京东、抖音等多个电商平台的店铺统一运营。 系统支持多用户、多店铺商品与订单数据统一获取,实现订单集中管理、采购下单、中转仓流转、物流跟踪及售后处理等完整业务流程。 核心功能包括: 多平台商品与订单数据同步 多店铺统一管理 自动采购与采购订单创建 中转仓订单流转管理 订单与物流状态实时跟踪 自动退款、自动退货等售后处理 多平台物流回填 异常订单监控与自动化处理 支持高并发订单场景与批量任务处理
新质云链小程序
项目描述:企业级服务类小程序,支持用户交互与业务流转 负责小程序整体开发、测试与上线,实现用户认证、数据同步、消息 推送等功能 集成微信支付、模板消息等核心功能,提升用户体验 持续优化性能表现,页面加载速度提升 40%,用户留存率提高 20% 微信小程序, Vue.js, uView-UI, 微信支付
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服