项目概述
开发了一款支持20层塔楼选择的游戏GUI对话框,支持用户通过鼠标点击、滚轮滚动和滚动条操作浏览并选择塔层。该对话框集成高亮覆盖效果、悬停反馈和单选逻辑,适用于RPG或策略游戏中的塔防或挑战系统,帮助玩家直观地选择关卡并触发挑战命令。
核心功能
图像覆盖与高亮:点击塔层后,使用专用高亮图片覆盖原图像,实现视觉反馈。
滚动与居中:支持鼠标滚轮和滚动条操作,点击后自动居中显示选中层。
静态文本渲染:为每层独立配置静态文本控件,支持自定义字体大小、颜色和位置,实现大号文字显示。
单选逻辑:选择一个塔层时自动取消其他选择,确保唯一性。
工具提示与道具显示:悬停道具图标时动态渲染工具提示,包括名称和描述。
挑战按钮集成:点击“挑战”按钮发送用户命令,支持消息框确认。
技术栈
编程语言:C++
GUI框架:自定义CGui框架(基于CGuiDialog、CGuiImage、CGuiStatic等)
鼠标与事件处理:Windows API(MsgProc处理WM_LBUTTONDOWN、WM_MOUSEWHEEL等)
数据结构:std::vector、std::set(用于高亮图片和选中层管理)
工具提示:CToolTips(集成ObjectBase_t动态获取道具信息)
补充说明
该项目优化了游戏UI的交互性和视觉效果,通过剪裁区域和动态位置更新实现了高效渲染,适用于实时游戏场景。技术选型注重兼容性和性能,UI设计强调用户友好性,支持扩展到更多层级或多选模式。