小编Nuk*_*uky的帖子

如何基于增量时间计算跳跃?

我正在尝试使用JavaScript(无引擎)制作一个小游戏,并且希望摆脱基于帧的动画。

我成功添加了水平运动的增量时间(以60或144fps正常工作)。

但是我不能让它与跳跃一起工作,高度(或力量)并不总是相同的,我也不知道为什么。

我已经尝试过了(仍然有完全相同的问题):

  • 在以下时间通过Delta时间update()x += Math.round(dx * dt)
  • 更改Date.now()performance.now()
  • 不四舍五入 DeltaY
  • 锁定跳高

我做了一个简化的示例,其中包含2种跳跃类型,高度锁定跳跃和常规跳跃(IDK称为它)。两者都有相同的问题。

const canvas  = document.getElementById('canvas'),
      ctx     = canvas.getContext('2d'),
      canvas2 = document.getElementById('canvas2'),
      ctx2    = canvas2.getContext('2d');



// CLASS PLAYER ------------------------

class Actor {
  constructor(color, ctx, j) {
    this.c     = ctx
  
    this.w     = 20
    this.h     = 40
    this.x     = canvas.width /2 - this.w/2
    this.y     = canvas.height/2 - this.h/2
    this.color = color

    // Delta
    this.dy = 0

    // Movement
    this.gravity   =  25/1000
    this.maxSpeed  = 600/1000 …
Run Code Online (Sandbox Code Playgroud)

javascript math physics canvas

5
推荐指数
1
解决办法
139
查看次数

标签 统计

canvas ×1

javascript ×1

math ×1

physics ×1