程序聚合 软件案例 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
3天前活跃
方向: 游戏开发-游戏开发其他、后端-Python、
交付率:100.00%
相似推荐
运力魔方智慧物流管理后台
公司:思可觅 | 技术栈:Vue 3 + TypeScript + Vite + Naive UI + Pinia + ECharts + 高德地图 • 项目描述:面向无人驾驶物流场景的智慧运力管理平台后台管理系统,涵盖数据大屏、全链路监控、运单管理、运力管理、订单管理、企业管理、运营管理、系统管理 8 大业务中心,共 30+ 页面模块。
运力魔方客户端小程序(Vancube App)
• 项目描述:运力魔方微信小程序,提供通用/站点双模式下单、地址智能解析、附近车辆查询、多支付方式(微信支付/月结/余额)、订单轨迹追踪、远程开车门、企业认证、钱包管理等完整功能,已发布至微信小程序等主流平台。
运管服子系统 —— 指挥协调子系统 PC 端
公司:青城数字 | 技术栈:Vue 2 + Webpack + JavaScript + Element UI + Axios + ECharts + Less + 高德地图 • 项目描述:城市运行管理服务平台的指挥协调中心,综合整个平台的设备人员、事件案件总控、数据统计、工作协同及指挥调度。包含模块:监督受理、协同工作、监督指挥(监督指挥/综合展示/人员监督/流程监督)、综合评价、地理编码、智能化组件、应用维护。
乡村振兴 - 县域助农农产品电商宣传平台
立项背景与目标: 针对县域特色农产品 "养在深闺人未识"、线下销路窄、缺乏统一线上展示窗口的痛点,为地方农业合作社与村镇企业搭建一套轻量化的助农电商宣传门户。目标是降低农户线上开店门槛,集中展示本地农产品、产地风光与采摘体验,帮助消费者一站式完成 "看货 - 了解产地 - 下单咨询" 的闭环,同时为村镇打造对外的数字化名片。 核心功能模块: 农产品展示区:按品类(粮油、果蔬、干货、手作)分类浏览,支持图文详情与产地溯源卡片; 乡村风光 / 文旅板块:轮播图展示景点、采摘路线、民俗活动,支持图文资讯发布; 在线咨询与订单留言:消费者可提交采购意向、数量与联系方式,后台生成询单记录; 后台管理端:商品上下架、资讯发布、询单查看、轮播图配置。 业务流程: 访客进入首页 → 浏览轮播与推荐农产品 → 进入商品详情查看产地与规格 → 提交采购询单 → 农户在后台收到留言并电话对接 → 同时可在文旅板块报名采摘 / 研学活动。
多租户Modbus TCP模拟器服务平台
在工业物联网、设备仿真、自动化测试等领域,经常需要大量Modbus TCP从站设备来模拟真实现场。现有方案要么单机模拟数量有限,要么缺乏多租户隔离和动态点位规则配置能力,且长周期稳定性差。因此需要构建一个高稳定、易扩展、支持复杂时序规则的Modbus TCP模拟服务系统。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服