そのままですと長くなってしまうため、問題のところだけをまとめたソースを作りました。
以下の通りです。
--------------------------------------------------
#include "DxLib.h"
#define kDEFAULT_NEAR 0.f
#define kDEFAULT_FAR 10000.f
#define kPLAYER_SPEED 10.0f
char Key[256];
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
if( SetOutApplicationLogValidFlag(FALSE) == -1 ||
ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK ||
DxLib_Init() == -1 ) return -1; //初期化処理
SetDrawScreen( DX_SCREEN_BACK ); //裏画面に設定
// プレイヤー初期化
VECTOR vPos = VGet( 0.0f, 0.0f , 0.0f );
int g_nPlayerHandle = MV1LoadModel( "Data/Model/Player.x" );
// ステージ初期化
int g_nStageHandle = MV1LoadModel( "Data/Model/Stage2.mqo" );
// カメラ初期化
{
VECTOR vEye, vTarget, vUp;
float fNear, fFar;
vEye = VGet( 0,100,-1500 ); // 座標
vTarget = VGet( 0,0,0 ); // 注視点
vUp = VGet( 0,1.0f,0 ); // アップベクトル
SetCameraPositionAndTargetAndUpVec( vEye, vTarget, vUp );
fNear = kDEFAULT_NEAR;
fFar = kDEFAULT_FAR;
SetCameraNearFar( fNear, fFar );
}
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
// 移動制御 ---------------------------------------
if( Key[KEY_INPUT_LEFT] )
vPos.x -= kPLAYER_SPEED;
else if( Key[KEY_INPUT_RIGHT] )
vPos.x += kPLAYER_SPEED;
if( Key[KEY_INPUT_UP] )
vPos.z += kPLAYER_SPEED;
else if( Key[KEY_INPUT_DOWN] )
vPos.z -= kPLAYER_SPEED;
// プレイヤー座標更新
MV1SetPosition( g_nPlayerHandle, vPos ) ;
//-------------------------------------------------
// 描画
MV1DrawModel( g_nStageHandle );
MV1DrawModel( g_nPlayerHandle );
ScreenFlip();//裏画面を表画面に反映
}
DxLib_End();
return 0;
}
--------------------------------------------------
以上です。
よろしくお願いします。