ですが、キャラクターが歩くアニメーションしながら移動するという処理を書くところで困っています。
当たり前の事ですが、その処理も自作関数で書きたいと考えてます。
しかし、歩くアニメーションしながら移動させる処理をどのように書けばいいのか分かりません・・。
#include <stdio.h> //C言語
#include <stdlib.h> //C言語
#include <string.h> //文字列
#include <iostream> //C++言語
#include "DxLib.h" //DirectXライブラリ
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 px=150, py=320, p[16];
int i;
//移動
void gpMove()
{
if( Key[ KEY_INPUT_RIGHT ] >= 1 ){
px+=10;
}
if( Key[ KEY_INPUT_DOWN ] >= 1 ){
py+=10;
}
if( Key[ KEY_INPUT_LEFT ] >= 1 ){
px-=10;
}
if( Key[ KEY_INPUT_UP ] >= 1 ){
py-=10;
}
}
//描画
void gpDraw()
{
//ロードしたグラフィックのアニメーション
i=8;
//画像を消して描画
while( ClearDrawScreen()==0 && gpUpdateKey() == 0)
{
LoadGraphScreen(0, 0, "画像/Title.jpg", TRUE);
//BMP画像のメモリの分割読み込み
LoadDivGraph("画像/Player1.bmp", 16, 4, 4, 70, 50, p);
//グラフィックの描画(「DrawGraph」)
DrawGraph(px, py, p[i], TRUE);
//アニメーションパターンナンバーを変更
i++;
//iが画像の11番目なら
if( i == 11)
i=8; //iを8に戻す
//一定時間待つ
WaitTimer( 150 );
}
}
//メイン処理
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE),
DxLib_Init();
// while(裏画面を表画面に反映, メッセージ処理, 画面クリア)
while( ScreenFlip()==0 && ProcessMessage()==0 && gpUpdateKey()==0){
gpMove();
gpDraw();
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
自作関数のgpDraw関数がキャラクターを通常描画させる処理です。
もう一つの自作関数で、gpMove関数がキャラクターを移動させる処理です。
書き方が分からないと言えばいいでしょうか。
ヒントやアドバイスをお願いします。