我一直试图让图像向指向的方向移动
然而,它只是随机方向移动:(
无法弄清楚为什么......
这是代码:
require 'gosu'
class Game < Gosu::Window
def initialize
super(1280, 720, true)
@image = Gosu::Image.from_text ':', 100
@ang = 1
@x = 640 - @image.width
@y = 360 - @image.height
end
def update
@sngX = (10.0/Math.cos(@ang.to_f)).to_i
@sngY = (10.0/Math.sin(@ang.to_f)).to_i
@n = Gosu::Image.from_text @ang.to_s, 50
end
def draw
@image.draw_rot @x, @y, 0, @ang
@n.draw 0, 0, 0
end
def button_down id
close if id == Gosu::KbEscape
if id == Gosu::KbE
@ang += 10
end
if id == Gosu::KbQ
@ang -= 10
end
if id == Gosu::KbW
@x += @sngX
@y += @sngY
end
end
end
Game.new.show
答案 0 :(得分:1)
它肯定不会随意发生。
我敢打赌问题是数学三角函数期望弧度中的值不是梯度,因此@sngX
和@sngY
被赋予极端结果。
从Ruby文档到Math :: cos:
计算x的余弦值(以弧度表示)。返回-1.0..1.0
范围内的Float
希望你知道如何将毕业生转换成弧度。