我在寫遊戲,並決定使用Allegro 5和C/C++。到目前爲止,我已經編寫了代碼中的大部分錯誤,但是我已經涉及到圖形和包含的數學計算,並且我被卡住了。Allegro 5,C++和Math
這裏的短版本:
al_draw_rotated_bitmap(...)
沒有做太多。有時圖像在屏幕上,有些時候則不是。我已驗證所有內容都是通過al_draw_bitmap(...)
進行繪製加載的,並且一切都很好,另外,在繪圖上沒有段錯誤,所以其他所有工作都是如此。
僅供參考,該文件說,這是對的al_draw_rotated_bitmap(...)
參數:
al_draw_rotated_bitmap(ALLEGRO_BITMAP *bitmap, float cx, float cy, float dx, float dy, float angle, int flags)
哪裏cx
是X-中心,cy
是Y中心,dx
是X-目的地,dy
是Y目標,angle
是以弧度旋轉的角度,flags
是告訴Allegro是否應該在位圖上執行+/- 90度旋轉的事情的組合。
我試過很多東西,沒有一個能產生想要的結果。我已經嘗試使d(x,y)相同,不同,將dy設置爲旋轉中心,將cx & cy設置爲位圖中的各個點,後緩衝器,旋轉中心等等。我可能只是在這裏真的很愚蠢,錯過了一些東西,但我一直沒有弄明白。如果有人知道這個功能如何工作,並願意幫助我完成工作,我會很樂意聽取您的建議。謝謝。
2014年4月8日:我被要求張貼代碼相關的功能,這裏有雲:
實際繪圖:
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);
}
這個結構是一個球員的定義是:
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;
};
你能告訴我們你的實際代碼嗎? – Tommy
完成。它在原始文章中。 – PyroAVR