TypeScript实战 -- 贪吃蛇游戏(1)--项目简介与具体实现、实现食物类和计分板类

本文介绍了一个使用TypeScript编写的贪吃蛇游戏项目,包括游戏目的、界面设计和核心类的分析。重点讨论了Food类和Scoreboard类的实现,Food类负责食物位置的随机生成,而Scoreboard类则管理积分和等级的更新。文章还提供了测试代码以验证功能的正确性。
摘要由CSDN通过智能技术生成

TypeScript实战 – 贪吃蛇(1)

目的

使用typescript以及面向对象的方式编写简易版贪吃蛇的项目,实现:蛇自主移动,吃到食物检测并增加身体长度,食物随机生成,计分板,撞墙检测,键盘事件检测等基本功能。

界面

在这里插入图片描述
在这里插入图片描述

分析

总体来说,整个游戏中所含的类可以分为四个:蛇(Snake),食物(Food),计分板(Scoreboard),游戏控制器(GameController)。

  • Snake:获取与设置蛇身体部分的位置,增加长度,处理撞墙,检测是否吃到自己,禁止掉头
  • Food:获取与设置食物位置,随机改变位置
  • Scoreboard:获取积分和等级,增加积分,增加等级
  • GameController:控制游戏开始和结束,吃到食物检测,蛇移动,调用其他各对象的方法完成游戏的逻辑。

还需要一个HTML作为界面展示,具体typescript简单项目搭建,webpack配置可以看我另外一个文章讲了如何从0开始搭建简单的webpack编译ts的项目

HTML整体结构与样式不多赘述

注意的地方就是:因为每次吃到食物后,增加一段,增加的是蛇容器里面的子元素,所以我们对于蛇的样式需要加在蛇的子元素上,而蛇容器不必加样式和定位

HTML:

<html>
<head>
  <title>贪吃蛇</title>
</head>
<body>
  <div class="snake_postion">
    <div class="snake_body">
      <div class="snake_body_screen">
        <!-- 设置蛇 -->
        <div class="snake">
          <div></div>
        </div>
        <!-- 设置食物 -->
        <div class="food"></div>
      </div>
      <div class="snake_body_score_level">
        <div class="snake_body_item">level:
          <span class="level">0</span>
        
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值