工程课 SpringBoot-3.1. 上课笔记 - AcWing


本文引自Acwing,有部分是自己修改

<=熬夜写笔记不易,点个赞再走吧

声明: 本次项目分为两部分 - 由于篇幅问题第二部分在另一篇题解中

第二部分 - 对战页面的地图和障碍物

1、把所有游戏对象都存下里

2、写成迭代函数 每一帧都执行

3、相对距离 + 剧中

4、游戏画到canvas画布里 + 创建游戏对象

5、绘制地图所要占据的正方形

6、将要绘制地图的部分居中

7、处理格子+ canvas坐标系

8、创建墙的左右部分

9、创建墙的上下部分+取成整像素

10、设置障碍物 + 轴线对称

11、左下角右上角的蛇可能会被盖掉的修改

12、保证连通 Flood Fill算法


要达到的目的

notion image

1、把所有游戏对象都存下里

为了让我们每一秒都将游戏对象刷新一遍,我们需要把所有游戏对象都存下里,存到一个全局变量数组里面,class 定义基类,export 出去,实现每秒刷新六十次,这个函数他可以传一个回调函数,会在浏览器下一帧渲染之前,执行一遍
代码以及成果展示

notion image
notion image

2、写成迭代函数 每一帧都执行

实现函数,如果 step 函数里没有执行过 start 函数就执行,
执行过执行 update,
使用 import 导入时是否需要括号的问题
  • 如果你导入的是一个默认导出(default export),那么在导入时不需要加括号。例如:
    • 如果你导入的是一个命名导出(named export),那么在导入时需要使用大括号(花括号)将导入的名称括起来。例如:
      ,dafault 相当于 public
      notion image
      notion image
      notion image

      3、相对距离 + 剧中

      因为画面要等比例缩放所以
      在这里我们使用相对距离
      在用 css 属性剧中

      notion image
      notion image

      4、游戏画到canvas画布里 + 创建游戏对象

      创建游戏对象 gamemap,创建之前先引入,返回后才能在上面对象用
      等整个组件挂载完后创建整个游戏对象,onMounted
      组件挂载完之后需要执行那些操作,创建 gamemap 对象

      notion image
      notion image

      5、绘制地图所要占据的正方形

      如下图所示
      我们需要通过计算来计算出最小单元的正方形
      并将它绘制出来

      notion image
      notion image
      notion image
      notion image
      notion image

      6、将要绘制地图的部分居中

      用 flex 布局
      再用 css 属性进行居中
      即可达到效果

      notion image
      notion image
      notion image

      7、处理格子+ canvas坐标系

      这一步比较简单
      直接上代码以及成果展示

      notion image
      notion image
      notion image

      8、创建墙的左右部分

      这一步我们分别创建

      notion image
      notion image
      notion image
      notion image
      notion image

      9、创建墙的上下部分+取成整像素

      和上面逻辑类似,创建墙调用,怎么确定顺序
      先创建先 push 先执行 update,先执行 AcGame 的构造函数
      墙是后加入数组的,所以墙覆盖底色

      notion image
      notion image
      notion image
      notion image
      notion image

      10、设置障碍物 + 轴线对称

      为了公平中心轴线对称
      随机一半, 11*11,121 空位
      随机 121 次肯定能找到空位

      notion image
      notion image
      notion image

      11、左下角右上角的蛇可能会被盖掉的修改

      修改代码如下

      notion image
      notion image
      notion image
      notion image
      notion image

      12、保证连通 Flood Fill算法

      用 Flood Fill,
      算法就可以保证连通

      notion image
      notion image


      ▎本文由 简悦 SimpRead 转码。
      Loading...
      目录
      文章列表
      Love & Share 分享热爱
      🐙Java
      🤖科研
      🧱编程四大件
      👨‍💻算法
      🦀Rust
      🐍Python
      🛞Linux
      🐎比赛
      🐼C++
      🌀日常使用