我正在尝试根据鼠标旋转图像。这个想法是一个太空飞船游戏。飞船的尖端跟随鼠标光标,这取决于飞船旋转角度的光标位置。

我正在使用的Allegro旋转功能:

al_draw_rotated_bitmap(OBJECT_TO_ROTATE,CENTER_X,CENTER_Y,X,Y,DEGREES_TO_ROTATE_IN_RADIANS);


这是宇宙飞船的x和y位置:

spaceship.x
spaceship.y


以及鼠标光标的x和y位置:

game_event.mouse.x
game_event.mouse.y


当确定与鼠标旋转的直角时,只需发送“ DrawSpaceship”功能的角度即可。此功能在主循环中绘制飞船。

Obs:我正在使用C和Allegro5

最佳答案

atan ((spaceship.y - game_event.mouse.y) / (spaceship.x - game_event.mouse.x));


当然可以通过测试避免/ 0

你会需要

#include <math.h>

10-08 02:20