# GreedySnake **Repository Path**: yq233/GreedySnake ## Basic Information - **Project Name**: GreedySnake - **Description**: 基于arkui实现GreedySnake - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-03 - **Last Updated**: 2024-04-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## GreedySnake GreedySnake ## 项目介绍 ​ 基于arkui实现GreedySnake,它通过方向按钮来操控角色的移动。每次角色吃到目标值,角色的长度会增长,并且玩家的分数会增加一点。随后,目标值会消失并重新随机出现在地图的其他位置。玩家需要不断地调整贪吃蛇的移动路径,以避免碰到游戏地图的边界,否则游戏将结束。整个游戏项目包括贪吃蛇角色的移动逻辑、目标值的生成与消失、碰撞检测、得分统计等功能。 ## 开发环境 > [Full-SDK编译和替换指南](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Release/zh-cn/application-dev/quick-start/full-sdk-compile-guide.md) - DevEco Studio 4.0 Release - 1+6T移植openharmony系统 ## **功能模块:** #### UI模块: - 利用自适应占比能力(layoutWeight)精确布局UI各部分,确保在不同屏幕尺寸下的优雅呈现。 - 使用Grid组件设计游戏舞台,可根据用户喜好自定义游戏舞台大小,提供更灵活的游戏体验。 - 利用Select组件提供下拉选择菜单,让用户轻松选择不同难度,增加游戏的可玩性和挑战性。 #### 移动模块: - 记录玩家头部next坐标,判断下一步是否可以继续,并通过定时器实现连续移动,使游戏操作流畅自然。 - 通过替换算法实现玩家身体的流畅移动:保存玩家尾部last坐标,再从尾部last坐标开始依次往前面替换,直到头部now坐标替换成头部next坐标,达成玩家数据移动,增强游戏可玩性。 - 最后渲染数据到UI,将头部next坐标设置成头部样式,将头部now坐标换成身体样式,将尾部last坐标设置为舞台空白样式 #### 得分模块: - 利用@State状态管理实时获取当前分数,当玩家头部next坐标与目标值重合时,触发得分模块,增加游戏的趣味性和挑战性。 - 当玩家重置游戏或游戏结束时,及时重置得分模块,保证游戏数据的准确性和可控性。 #### 碰撞模块: - 设定游戏舞台边界大小范围,当玩家触碰到边界时,立即结束游戏并初始化游戏数据,确保游戏的公平性和规范性。 ## 截图预览 ![1712450582356](https://s2.loli.net/2024/04/07/vLOwUumD59fy6Sr.png)