我有一个功能,用于计算屏幕上射弹的位移。我在windows中的Ruby 2.2环境中编写它。现在我在linux上使用ruby 2.4运行相同的代码并收到此错误:
未定义的方法`/' for Decimal(1596):Decimal(NoMethodError)
我传递参数hpx,pxini等函数,如function Decimal.new(hpx,pxini...)
,其中每个都可以是float或int
require 'decimal'
#...
if tiro.hpx > tiro.pxini
tiro.px += Std_Tiro_Speed * Math.cos(Math.atan((tiro.hpy - tiro.pyini) / (tiro.hpx - tiro.pxini)))
tiro.py += Std_Tiro_Speed * Math.sin(Math.atan((tiro.hpy - tiro.pyini) / (tiro.hpx - tiro.pxini)))
elsif tiro.hpx < tiro.pxini
tiro.px -= Std_Tiro_Speed * Math.cos(Math.atan((tiro.hpy - tiro.pyini) / (tiro.hpx - tiro.pxini)))
tiro.py -= Std_Tiro_Speed * Math.sin(Math.atan((tiro.hpy - tiro.pyini) / (tiro.hpx - tiro.pxini)))
else
if tiro.hpy > tiro.pyini
tiro.py += Std_Tiro_Speed
else
tiro.py -= Std_Tiro_Speed
end
end
在Windows中运行时,代码正常运行并更新了屏幕上的x和y位置,现在,它在第一次调用中失败了。什么可能是错的?