「14歳からはじめるC言語わくわくゲームプログラミング教室」という参考書で勉強しているのですが、自分で書いたプレイヤーを使ってみようと思って、しゃがみ動作を追加してみようと思ったのですが、なぜかしゃがみ時に画像のコマが写ったり、写らなかったりします。理由が全然わかりません。わかる人どうか教えてください。お願いします。
#include "myhelper.h"
#include "mymain.h"
//自キャラのデータ
Point2D g_jikipos = {40,400}; //自キャラの座標
Vector g_jikivector = {0,0}; //自キャラのベクトル
BOOL g_direction = DIRECTION_RIGHT; //自キャラの向き
BOOL g_nowsit = FALSE; //現在ジャンプ中か否か
//画像ハンドル
int g_jikiimage[5];
void MyMain(){
Vector curvec1 = {0,0};
int key = GetJoypadInputState(DX_INPUT_KEY_PAD1 );
if(key & PAD_INPUT_LEFT){
curvec1 = AddVector( curvec1,LEFTMOVEC);
g_direction = DIRECTION_LEFT;
}
if(key & PAD_INPUT_RIGHT){
curvec1 = AddVector( curvec1,RIGHTMOVEC);
g_direction = DIRECTION_RIGHT;
}
if(key & PAD_INPUT_DOWN){
g_nowsit = TRUE;
}else{
g_nowsit = FALSE;
}
//地面との当たり判定
BOOL ontheground = FALSE; //着地フラグ
if(g_jikipos.y >399){
ontheground = TRUE;
g_jikivector.x = 0;
g_jikivector.y = 0;
}
if(key & PAD_INPUT_A){
curvec1 = AddVector( curvec1,JUMPMOVEC);
}
//自キャラ座標の計算
if(ontheground == TRUE ){
//接地時
g_jikivector = AddVector(g_jikivector,curvec1);
}else{
//ジャンプ中
g_jikivector = AddVectorInFrameTime(g_jikivector, GRAVITY);
}
g_jikipos = AddVectorInFrameTime(g_jikipos,g_jikivector);
//自キャラの描画
if(g_nowsit == FALSE){
if(fabs(curvec1.x) > ZEROVALUE ){
//歩く
DrawAnimation(g_jikipos.x,g_jikipos.y,1,0,g_direction,
&g_jikiimage[1],4,10);
}else{
//停止状態
DrawAnimation(g_jikipos.x,g_jikipos.y,1,0,g_direction,
&g_jikiimage[0],1,10);
}
}else{
//しゃがみ状態
DrawAnimation(g_jikipos.x,g_jikipos.y,1,0,g_direction,
&g_jikiimage[8],1,10);
}
}
//色々なファイルの読み込み
int LoadFiles(){
//画像ファイルの読み込み
if(LoadDivGraph("media\\player.bmp",
11,6,2,113,134,g_jikiimage) == -1) return -1;
return 1;
}