【发布时间】:2016-03-22 00:29:19
【问题描述】:
我在(posX, posY) 和(mouseX, mouseY) 之间有一个向量,我通过allegro 的事件库将鼠标位置作为正整数。从这个向量使用反正切我得到(deltaX, deltaY) 的弧度。然后我将该弧度插入al_draw_rotated_bitmap 函数。我希望位图指向鼠标光标所在的位置,但我遇到的问题是弧度或矢量导致它垂直于光标旋转。
以下是相关代码:
void setRotation(int dx, int dy)
{
float deltax = posX - mouseX;
float deltay = posY - mouseY;
rotation = atan2(deltay, deltax);
}
void Player::draw()
{
al_draw_rotated_bitmap(player, al_get_bitmap_width(player) / 2, al_get_bitmap_height(player) / 2, posX, posY, rotation, 0);
}
int main()
{
while(true)
{
player.setRotation(mouseX, mouseY);
player.draw();
al_flip_display();
}
}
【问题讨论】:
-
如果您能澄清您使用的输入、您预期会发生什么以及实际发生了什么,这可能会有所帮助。
-
@JimLewis 我刚刚编辑了帖子以包含更多细节。