#include <math.h>
#include "DxLib.h"
#define PI 3.1415926
int Key[256]; // キーが押されているフレーム数を格納する
int gpUpdateKey(){
char tmpKey[256]; // 現在のキーの入力状態を格納する
GetHitKeyStateAll( tmpKey ); // 全てのキーの入力状態を得る
for( int i=0; i<256; i++ ){
if( tmpKey[i] != 0 ){ // i番のキーコードに対応するキーが押されていたら
Key[i]++; // 加算
} else { // 押されていなければ
Key[i] = 0; // 0にする
}
}
return 0;
}
int ProcessLoop(){
if(ScreenFlip()!=0)return -1;
if(ProcessMessage()!=0)return -1;
if(ClearDrawScreen()!=0)return -1;
if(gpUpdateKey()!=0)return-1;
return 0;
}
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定
double D_x=320,D_y=240,x=320,y=240,angle=0,speed=1,angle_tmp=0,chspeed=3;//初期値デフォ x,y tmp x,y
int ini_state=1;
while(ProcessLoop()==0){
switch(ini_state){
case 1:
int Handle[3],b_ground,barrel[100]; // 画像格納用ハンドル
LoadDivGraph( "画像/弾01.png", 3, 3, 1, 14, 16, Handle ); // 3つに画像を分割してロード
b_ground = LoadGraph("画像/エフェクト/メニュー背景.png");
ini_state=2;//case文で初回にだけ読み込みたいファイルをwhile文の中に埋め込む。
break;
case 2:
//計算フェーズ
x += cos( angle ) * speed; // x座標を更新
y += sin( angle ) * speed; // y座標を更新
if( Key[KEY_INPUT_D]!=0) angle_tmp -=1.0/(PI*2.0);
if( Key[KEY_INPUT_A]!=0) angle_tmp +=1.0/(PI*2.0);//弾の発射角度
//
if( Key[KEY_INPUT_LEFT]!=0) D_x-=chspeed;
if( Key[KEY_INPUT_RIGHT]!=0)D_x+=chspeed;
//発射地点の座標角度
if( Key[KEY_INPUT_Z] == 1 ){//zが押されていたら変数の中身を変更
x = D_x; //初期座標にセット
y = D_y;
speed = 1;
angle=angle_tmp;
}
//描画フェーズ
DrawRotaGraph( 320, 240, 1.0, 0, b_ground, TRUE );//背景を描画
DrawRotaGraph( x, y, 1.0, angle+PI/2, Handle[0], TRUE );//弾を描画
DrawRotaGraph( D_x, D_y, 1.0, angle_tmp+PI/2, Handle[0], TRUE );//弾発射位置を描画
/*描画は新しいものを古い物の上から描画していく*/
break;
default:
printfDx("不明なfunc_state\n");
break;
}
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
描画の行が指定されたのですが、解決方法が思い浮かびません。
描画する座標を渡したいだけなので切り捨ててもまったく結果も変わらないと思うのですが、どうしても気になります。
どうしたらいいですか?
1>.\main.cpp(84) : warning C4244: '引数' : 'double' から 'int' への変換です。データが失われる可能性があります。
1>.\main.cpp(84) : warning C4244: '引数' : 'double' から 'int' への変換です。データが失われる可能性があります。
1>.\main.cpp(85) : warning C4244: '引数' : 'double' から 'int' への変換です。データが失われる可能性があります。
1>.\main.cpp(85) : warning C4244: '引数' : 'double' から 'int' への変換です。データが失われる可能性があります。