美文网首页程序员让前端飞
小游戏开发 Mario (7) 碰撞

小游戏开发 Mario (7) 碰撞

作者: zidea | 来源:发表于2018-12-31 20:35 被阅读29次

今天先停下来,回看了一下自己发布的 mario 游戏开发分享,发现有些朋友对游戏开发的一些基础知识还不太了解。本周就先分享一下游戏开发中用到一些基本理论。从碰撞检测开始吧。

第一步还是创建一个项目(这里所谓的项目就是一个文件夹),在项目下,新建一个 index.html 和一个 app.js

在 index.html 中,创建一个 canvas (画布)元素。主要的工作都将在画布上,也就是完成我们的碰撞检测。

首先获取 canvas 元素的上下文 context 对象,所谓 context 就是,如果我们要和 canvas 画布打交道,可能会需要一个中间人,context 就是那个中间人。 context 提供许多方法让我们可以在画布上绘制和编辑各种图形。

controller 这个控制器对象,可用于处理用户和界面的交互,这里 getBoundingClientRect 用来获取元素的位置,move 方法主要用于将鼠标在浏览器中坐标转换为 canvas 中的坐标。

接下来我们定义一个 Rectangle 类,Rectangle 提供了绘制方法和用于检测自身与另一个矩形的碰撞检测方法。

在上图中,出现了本节最重要内容,就是 testCollision 中 if 语句中的判断逻辑,这两图可以帮助您更好地理解是我们是如何检测两个矩形碰撞的,当一个矩形在另一个矩形上方未发接触时,应该是一个底边坐标高于另一个矩形的上边坐标。反之就碰撞了。

好我们可以模拟创建一个玩家偏红色的小块和一个绿色固定小块。

loop 可以说是我们程序的主方法,他会调用 requestAnimationFrame 来不断更新画面。这里我们调用检测碰撞方法来检测玩家和tile是否相碰,相碰后为他们添加边框线来表示他们接触碰撞了。

resize 方法用于根据屏幕大小的调整canvas的大小。这部分不是本次分享主要内容,就不多说了

最后添加监听器,今天就到这里,代码很全可以自己试一试

相关文章

  • 小游戏开发 Mario (7) 碰撞

    今天先停下来,回看了一下自己发布的 mario 游戏开发分享,发现有些朋友对游戏开发的一些基础知识还不太了解。本周...

  • 小游戏开发 Mario (8) 碰撞

    继续上次的游戏碰撞检测的主题,上次我们通过方法 testCollision 来检查两个物体是否碰撞,如果发生碰撞就...

  • 小游戏开发 Mario (3)

    在开始新的内容之前,我们先优化一下上一次代码。我们看图中的代码 发现(1)加载图片和(2)加载关卡(level)是...

  • 小游戏开发 Mario (1)

    前言 当下如火如荼的微信小游戏,简单且好玩,自己体验了一下像跳一跳这样的游戏。作为一名开发人员,当然也想自己开发款...

  • 小游戏开发 Mario (6)

    再开始今天新的内容前,我们来修正两个错误。 第一个是我们为重力补上 deltaTime。然后适当地调整 gravi...

  • 小游戏开发 Mario (9)

    上两周主要给大家介绍了游戏中是如何检测游戏角色和游戏角色和障碍物间的碰撞。今天回到 mario 继续写我们 sup...

  • 你必须先成为你自己,爱才有意义

    Mario:“why are you here?” Mario: “why are you g...

  • Mario

    小时候我也认识他~~,长大了渐渐的远离了。

  • Mario

    “我有一条黑狗,它名叫Mario 。每当这黑狗出现,我就感到空虚,生活也慢了下来。它总不期而至的出现在我的面前。黑...

  • Hi

    Hello,mario!

网友评论

    本文标题:小游戏开发 Mario (7) 碰撞

    本文链接:https://www.haomeiwen.com/subject/zwbwlqtx.html