トップページ > 過去ログ > 記事閲覧
画像の変更
名前:もあい 日時: 2011/11/09 01:13

「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; }

Page: 1 |

Re: 画像の変更 ( No.1 )
名前:Will 日時:2011/11/09 09:13

int g_jikiimage[5]; と定義しているのに if(LoadDivGraph("media\\player.bmp", 11,6,2,113,134,g_jikiimage) == -1) return -1; としていては、メモリ破壊しまくりですから何が起こっても仕方が無いですね。 メモリの確保とそのアクセスについてよく確認してください。
Re: 画像の変更 ( No.2 )
名前:もあい 日時:2011/11/09 20:25

なんとかなりました。ありがとうございます。 すいません。めちゃくちゃうっかりしてました。

Page: 1 |