C++ 快板5,C++;,还有数学
我正在写一个游戏,我决定使用Allegro5和C/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(…)的参
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;
};