C++ 快板5,C++;,还有数学

C++ 快板5,C++;,还有数学,c++,math,allegro,allegro5,C++,Math,Allegro,Allegro5,我正在写一个游戏,我决定使用Allegro5和C/C++。到目前为止,我已经解决了代码中的大部分错误,但我已经解决了包含的图形和数学计算,我被卡住了 以下是简短的版本: al\u-draw\u-rotated\u位图(…)没什么作用。有时图像出现在屏幕上,有时则不是。我已经验证了所有东西都是通过使用al_draw_bitmap(…)绘图加载的,而且一切都很好,另外,绘图上没有分段错误,所以其他所有东西都可以工作 仅供参考,文档中对al\u draw\u rotated\u bitmap(…)的参

我正在写一个游戏,我决定使用Allegro5和C/C++。到目前为止,我已经解决了代码中的大部分错误,但我已经解决了包含的图形和数学计算,我被卡住了

以下是简短的版本:

al\u-draw\u-rotated\u位图(…)
没什么作用。有时图像出现在屏幕上,有时则不是。我已经验证了所有东西都是通过使用
al_draw_bitmap(…)
绘图加载的,而且一切都很好,另外,绘图上没有分段错误,所以其他所有东西都可以工作

仅供参考,文档中对
al\u draw\u rotated\u bitmap(…)
的参数说明如下:

al\u-draw\u-rotated\u位图(ALLEGRO\u位图*位图、浮点cx、浮点cy、浮点dx、浮点dy、浮点角度、int标志)

其中,
cx
是X-中心,
cy
是Y-中心,
dx
是X-目的地,
dy
是Y-目的地,
angle
是以弧度为单位旋转的角度,
flags
是告诉Allegro是否应该在位图上执行+/-90度旋转的组合

我尝试过很多事情,但没有一件能达到预期的效果。我尝试过使c&d(x,y)相同,不同,将dx和dy设置为旋转中心,将cx和cy设置为位图中的各个点,在backbuffer中,在旋转中心上,等等。我可能只是非常非常非常愚蠢,在这里遗漏了一些东西,但我一直没有弄清楚。如果有人知道这个函数是如何工作的,并且愿意帮助我使它工作,我将非常高兴得到你的建议。多谢各位

2014-04-08:我被要求发布相关功能的代码,如下所示:

实际图纸:

void renderPlayer(Player player)     {
cout << player.x << " " << player.y << endl;
float angle = 0;
al_draw_rotated_bitmap(player.tex, 200, 200, 0, 0, angle, NULL);
}

好吧,我不知道为什么这以前不起作用。。。 其工作方式如下:

al\u-draw\u-rotated\u位图(ALLEGRO\u-bitmap*yourbmp、int-bitmap\u-coord\u-x、int-bitmap\u-coord\u-y、int-screen\u-coord\u-x、int-screen\u-coord\u-y、浮点角度(弧度)、int-flags)


那对我很好!这仍然让我困惑,为什么一开始它不起作用。。。我怀疑这是我的代码中的其他内容。

您能给我们看一下您的实际代码吗?完成。它在原来的帖子里。
struct Player   {
float x;
float y;
float r;
float t;
int radius;
int sizex;
int sizey;
int health;
int speed;
ALLEGRO_BITMAP *tex;
Weapon weapon;
};