バグ様、TRUTH様、お返事ありがとうございます。
アドバイスを参考にし、どうにかアニメーション描画を完成させる事ができました(感謝!)。
その後、WinMain関数内で、選択画面を作り、エンターキーが押された時点でアニメーション描画関数(Opening();)を呼び出そうとしたのですが、
以下のコードで問題は無いでしょうか?
メッセージ処理と画面クリアを二度、用いているのですが。。。
#include "DxLib.h"
//グローバル
int Opening( void );//プロトタイプ宣言
int x = 0 , y = 240 , i = 0 ;
int g_image[ 11 ] ;//画像を分割して配列要素に保存
char KeyBuf[ 256 ] ;//入力を取得する
int Opening( void )//オープニング関数
{
SetDrawScreen( DX_SCREEN_BACK );//裏画面処理
while( ProcessMessage()==0 && ClearDrawScreen()==0 ){ //*ココ
//アニメーション描画
DrawGraph( x , y , g_image , TRUE ) ;//画像を描画
i++;
if ( i == 11 ) i = 0 ;//iが11(配列の要素数)になった時点で0に戻す
ScreenFlip();//表画面に反映
}
WaitKey();
DxLib_End();
return 0;
}
int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP , LPSTR lpC , int nC ){
ChangeWindowMode(TRUE);//ウィンドウサイズの変更
if( DxLib_Init() == -1 ) return -1;
LoadDivGraph( "player01.bmp" , 11 , 11 , 1 , 64 , 64 , g_image );//画像を分割して読み込み
SetDrawScreen( DX_SCREEN_BACK );//裏画面処理
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( KeyBuf ) && !KeyBuf[KEY_INPUT_ESCAPE]){
int cr_1 = GetColor( 255 , 255 , 255 );//色を取得
SetFontSize( 40 ) ; //サイズを40に変更
SetFontThickness( 1 ) ; //太さを1に変更
ChangeFont( "HGS創英角ポップ体" ) ; //HGS創英角ポップ体に変更
ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE );//アンチエイリアス&エッジ付きフォントに変更
DrawString(220,50,"GAME", cr_1 );
SetFontSize( 12 ) ; //サイズを12に変更
SetFontThickness( 2 ) ; //太さを2に変更
DrawString( 220 , y , "■" , cr_1 );
DrawString( 250 , 240 , "NewGame" , cr_1 );//文字列を描画
DrawString( 250 , 260 , "LoadGame" , cr_1 );//文字列を描画
if( KeyBuf[ KEY_INPUT_DOWN ] == 1 ){//下キーが押されていたら、
y += 20 ;//矢印を下に動かす
if( y == 280 ) y = 240 ;//yが280に達しようとしたとき、yを初期値に戻す
}
if( KeyBuf[ KEY_INPUT_RETURN ] == 1 ){
ClearDrawScreen();//画面を初期化
Opening();//ココで呼び出す
}
ScreenFlip();//表画面に反映
}
WaitKey();
DxLib_End();
return 0;
}
動作はするのですが、文法上、どうなのかな? と気になってしまい。。