使对象锁定为圆圈“跟随”鼠标

时间:2017-05-11 19:08:39

标签: lua mouse love2d pong

我正在做一个圆形乒乓球比赛(那里只有一个球拍,你在一个圆圈中移动,球在圆圈中间产生)

目前,我几乎所有东西都倒了但是我觉得使用键盘移动桨太慢了我找不到任何“中间”值,它不会太快或太慢

我看到了这个游戏的其他一些例子,用鼠标来控制球拍,但我不知道怎么做这样的事情。

这是我对paddle的更新功能(对不起,如果我处理更新的方式很难看):

pad:update(

function(dt,self)
    local mouseX,mouseY=love.mouse.getPosition()
    self.rot=math.atan2((400 - self.x), -(300 - self.y))
    --self.rot=math.atan2((mouseX - self.x), -(mouseY - self.y))
    self.x = circleRadius*math.cos(self.r) + self.orgX;
    self.y = circleRadius*math.sin(self.r) + self.orgY;
    if love.keyboard.isDown("a") then
        self.r=self.r+4*dt
    end
    if love.keyboard.isDown("d") then
        self.r=self.r-4*dt
    end
end,
dt
)

上面的代码在love.update中,并发送一个函数作为pad更新函数的参数,然后调用该函数,为它提供正确的参数,如self和dt。

r基本上是圆圈上桨的位置

1 个答案:

答案 0 :(得分:0)

通过将圆圈(r)上的当前位置设置为鼠标与圆心(在我的情况下是窗口中心为800x600)之间的角度来获得它

self.r=math.atan2((400-mouseX), -(300-mouseY))+math.rad(90)