TypeScript 面向对象实现的贪吃蛇小游戏

1. 游戏效果

[→ 点击此处预览效果 ←]

  • 方向键控制蛇的移动方向
  • 蛇吃到食物后,身体多出一格,分数+1,食物重新刷新位置
  • 最大等级为 8 级,每 2 分升一级,升级后蛇的移动速度增加
  • 若蛇撞到边界撞到自己,则游戏结束
  • 刷新页面后游戏重新开始

2. 实现方法

贪吃蛇小游戏用 TypeScript 编写,HTML 骨架和 CSS 样式部分比较简单,很多方法都可以实现效果,这里就说一说 TS 的实现思路。

因为小游戏比较简单,所以没用使用webpack等打包,直接写将 TS 编译后的 JS 文件引入页面。TS 部分运用了面向对象的编程思想,首先需要创建四个类,分别是食物类Food、蛇类Snake、计分面板类ScorePanel、游戏控制类GameControl,分别给他们编写相应的属性和方法:

属性方法
食物类Food绑定页面表示食物的红色方块即可获取食物 X、Y 坐标
修改食物的位置,即随机生成一个新的食物
蛇类Snake分别绑定页面的蛇容器、蛇身子、蛇头部分获取蛇头 X、Y 坐标
设置蛇头 X、Y 坐标
增加蛇身子
蛇身体移动
判断蛇是否撞自己
计分面板类ScorePanel分数
等级
绑定页面表示分数、等级的部分
加分
升级
游戏控制类GameControl绑定SnakeFoodScorePanel
是否存活的变量(布尔值)
按键方向
游戏初始化
判断键盘按下
蛇移动
判断蛇是否吃到食物

首先游戏控制类进行游戏初始化,通过定时器不断调用蛇移动方法。期间要判断用户按下的按键进行改变方向,判断蛇是否撞到自己、撞墙,判断蛇是否吃到食物,若吃到食物则加分、增加身体、刷新食物位置。根据分数判断是否升级。

3. 仓库地址

源代码已上传至:

  1. [Github]
  2. [Gitee]

欢迎在[我的博客]上访问!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火星飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值