【问题标题】:trigger code after x amount of incrementsx 增量后触发代码
【发布时间】:2020-05-10 01:55:25
【问题描述】:

感谢您为我调查此事。 我面临的问题是: 我正在跟踪变量值,我想在达到某些值后触发代码块。

目前我正在使用 switch 语句,但我正在寻找动态的东西。

我现在的例子:

class className{
  constructor(param){

  this.param = param

  switch(param.x){
    case 25:
      param.y += 0.1;
      break;
    case 50:
      y += 0.1;
      break;
    case 75:
      y += 0.1;
      break;
    }
  }

如您所见,我想在 X 的值增加 25 后运行一段代码 手动编码每个块变得乏味 我希望每次 x 的值增加 25 时运行相同的代码 x 没有限制,并且无限增加 所以我一直在寻找某种无限循环之类的东西 有谁知道我可以在这种特殊情况下使用什么

如果我可以这样改正:

param.x.forEach(25){
  param.y += 0.1;
}

我确实在上面尝试过,但无济于事,它没有用大声笑 请问各位大侠有什么可以帮忙的吗?

【问题讨论】:

  • 不是循环和检查x,难道你不能在数学上将y推导出为y = Math.floor(x / 25) * 0.1吗?
  • 好的,我试过了,但它在我的代码中不起作用
  • 我试图将它作为一个类运行
  • ...正确,因为我做了余数而不是整数除法,应该是 Math.floor(x / 25) * 0.1
  • 等我举个更好的例子,检查更新的问题,刷新一下

标签: javascript html variables game-engine increment


【解决方案1】:

你可以这样计算(x % 25) == 0

var y = 0;
var x = 0;

function trig() {
  x++;
  console.log(x)
  if ((x % 25) == 0) {
    y += 0.1;
    console.log(y, x)
  }
}

setInterval(() => {
  trig()
}, 100)

开课

class className {
  constructor(param) {
    this.param = param
  }
  inc() {
    this.param.x++;
    if ((this.param.x % 25) == 0) {
      this.param.y += 0.1;
    }
  }

  //you could call the inc() function on you click or activity
}

【讨论】:

  • ((x % 25) + 1) * 0.1 === 0.1x % 25 === 0 的一种非常复杂的写法,因为当第二个表达式为真时,第一个表达式为真。但是你对这个结果做了另外两个数学运算。
  • 刚刚尝试破坏我的代码,由于某种原因,在从此类创建对象时,现在该参数未被接受,没有错误,它只是破坏了我的其他代码 - 我仍在修补它工作
  • 好的 - 我终于让它工作了 - 非常感谢好友 - 我只需要弄清楚如何在我的点击事件中调用它
【解决方案2】:

我相信你可以检查 if (x % 25 === 0 ){ ..do stuff }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-28
    • 2016-02-11
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    相关资源
    最近更新 更多