三角関数を使って任意の角度に画像を移動させるプログラムが正しいのか知りたい
dxライブラリを使ったゲーム数学なのですが、30度の方向に動かかすプログラムなのですがこれは正しいのでしょうか? 質問なのですが
1,プログラム上の角度0度は右で時計回りに角度が増えていく、でよろしいのでしょうか?
2,特定の角度で玉が飛んでいくといったプログラムを作る際に sin(PI / 6)といった組み方をしていますが0.0174533(1度のラジアン) * 30 といった書き方は違うのでしょうか?
作品を作ってるわけではないので具体例が知りたいです。
int pos_x = (640 / 2) - (48 / 2);
int pos_y = 380;
int WINAPI WinMain(HINSTANCE hInstanve, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(true), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK);
color = GetColor(0, 255, 0);
hResource = LoadGraph("Resource.png");
hBall = LoadGraph("Ball.png");
hCharacter[16] = { 0 };
int hBlock = LoadGraph("Block.png");
LoadDivGraph("char.png", 16, 4, 4, 32, 32, hCharacter);
int color = GetColor(255,255,255);
x = pos_x;
y = pos_y;
int xx = pos_x;
int yy = pos_y;
double angle = PI * 2 / 8;
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0 && gpUpdateKey() == 0) {
DrawGraph(x,y,hBlock,TRUE);
// DrawGraph(xx, yy, hBlock, TRUE);
*/
DrawGraph(pos_x, pos_y, hBlock, TRUE);//ここです
pos_x += 2 * cos(PI / 6);//ここです。
pos_y -= 2 * sin(PI / 6);//ここです
// xx += 2 * cos(PI / 8);
// yy -= 2 * sin(PI / 8);
DrawFormatString(0,0,color,"pos_x:%d",pos_x);
DrawFormatString(0,15, color,"pos_y:%d", pos_y);
// WaitTimer(20);
if (CheckHitKey(KEY_INPUT_ESCAPE) == 1 || CheckHitKey(KEY_INPUT_RETURN) == 1) {
return -1;
}
//Graphic_Draw();
}
WaitKey();
return 0;
}