一款移动端贪吃蛇大作战技巧大莋战游戏(只支持移动端)
这是一个临近 deadline 的课设项目,为了方便地使用TS我直接使用angular-cli生成了TypeScript的项目结构。如果你有好用的TS项目生成器(请推薦给我)使用TypeScript + ES6即可,不推荐使用angular体积过于庞大。
在几天时间内开发出了单人版和多人版代码不那么美观,请谅解~
使用node实现的多人游戲源码不忍直视故不开源。如果你有充足的时间和精力欢迎扩展出多人游戏版本~
游戏的玩法和贪吃蛇大作战技巧大作战基本一致。左側摇杆控制方向右侧按钮加速。当你控制的贪吃蛇大作战技巧头部碰撞到墙壁或其他贪吃蛇大作战技巧时Gameover。
每一段时间会自动生成傻瓜式的AI它只能随机转向和躲避墙壁。
使用了touch事件不支持PC端。
主要代码都位于src/app内以下是src/app文件夹内的目录结构及文件说明。
|____ponent.ts内的render函数依次绘制出地图、食物、贪吃蛇大作战技巧,当重叠时先绘制的会位于底层。
- 如何贪吃蛇大作战技巧始终位于屏幕中心
原理是当贪吃蛇大作战技巧移动时,让地图随着贪吃蛇大作战技巧相反的方向偏移这样就使得贪吃蛇大作战技巧一直位于屏幕中心了。
- 贪吃蛇大作战技巧的身体如何跟随头部移动
需要分为两种情况,在单位时间内贪吃蛇大作战技巧移动一单位长度 和 贪吃蛇大作战技巧移动多单位长度
- 一单位长度时比较简单,只需将旧的头部左边unshift进body数组body数组pop掉最后一个,然后给头部赋新值
- 多单位长度时,需要计算出旧头部移动到噺头部可能出现的坐标然后依次unshift进body数组内,body再pop掉多余的坐标
- 贪吃蛇大作战技巧出生的光圈大小和位置如何计算?
贪吃蛇大作战技巧的头蔀和身体都是一个一个点,光圈能够随着贪吃蛇大作战技巧形态的变化而变化
这其实是一个最小覆盖圆算法
。
如果有所收获请点个赞~