先にやりたい事を言っておきますね。
・スペースキーを押されたらch.2のフラグを立てる
・↑が押されたらch.1の画像を2分割した2番目を壁画したい。
今できていないのはch1のキーフラグでスペースを押すとch2のフラグが立てられない。
壁画の変更のしかたがわからない。
この二つです。
ソースは
#include "DxLib.h" typedef struct{ int x,y,img,zahyou,san_flag; }ch_t; int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ int image[2]; char Key[256]; ch_t ch1,ch2; if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //ウィンドウ化と初期化処理 ch1.x =0; ch1.y =0; ch2.x =0; ch2.y =0; ch1.san_flag=0; ch1.zahyou=4; ch2.san_flag=0; ch2.zahyou=4; SetDrawScreen( DX_SCREEN_BACK ) ; //描画先を裏画面に設定 { ClearDrawScreen(); // 裏画面のデータを全て削除 LoadDivGraph( "abcd.png" , 2 , 2 , 1 , 32 , 32 , image );//画像を分割してimage配列に保存 ScreenFlip() ; // 裏画面データを表\u30011 画面へ反映 } while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){ //↑メッセージ処理 ↑画面をクリア ↑キーボード入力状態取得 ↑ESCが押されると終了 if(ch1.x%32==0 && ch1.y%32==0){ ch1.san_flag=1; //歩くフラグを立てる。 if ( Key[ KEY_INPUT_UP ] == 1 ) //上ボタンが押されたら ch1.zahyou=0; //上向きフラグを立てる else if( Key[ KEY_INPUT_LEFT ] == 1 ) //左ボタンが押されたら ch1.zahyou=1; //左向きフラグを立てる else if( Key[ KEY_INPUT_DOWN ] == 1 ) //下ボタンが押されたら ch1.zahyou=2; //下向きフラグを立てる else if( Key[ KEY_INPUT_RIGHT] == 1 ) //右ボタンが押されたら ch1.zahyou=3;//右向きフラグを立てる else if( Key[ KEY_INPUT_SPACE] == 1 )// スペースキー ch1.zahyou=4; else //何のボタンも押されてなかったら ch1.san_flag=0; //向かないフラグを立てる } if(ch1.san_flag==1){ if (ch1.zahyou==0) ch1.y--; else if (ch1.zahyou==1) ch1.x--; else if (ch1.zahyou==2) ch1.y++; else if (ch1.zahyou==3) ch1.x++; else if (ch1.zahyou==4) if(ch2.x%32==0 && ch2.y%32==0){ ch1.san_flag=1; //歩くフラグを立てる。 if ( Key[ KEY_INPUT_UP ] == 1 ) //上ボタンが押されたら ch2.zahyou=0; //上向きフラグを立てる else if( Key[ KEY_INPUT_LEFT ] == 1 ) //左ボタンが押されたら ch2.zahyou=1; //左向きフラグを立てる else if( Key[ KEY_INPUT_DOWN ] == 1 ) //下ボタンが押されたら ch2.zahyou=2; //下向きフラグを立てる else if( Key[ KEY_INPUT_RIGHT] == 1 ) //右ボタンが押されたら ch2.zahyou=3;//右向きフラグを立てる else //何のボタンも押されてなかったら ch1.san_flag=0; //向かないフラグを立てる } } if(ch2.san_flag==1){ if (ch2.zahyou==0) ch2.y--; else if (ch2.zahyou==1) ch2.x--; else if (ch2.zahyou==2) ch2.y++; else if (ch2.zahyou==3) ch2.x++; } ch1.img=image[(ch1.x%32+ch1.y%32)/32 + ch1.zahyou*0]; ch2.img=image[(ch2.x%32+ch2.y%32)/32 + ch2.zahyou*0]; LoadGraphScreen( 0 , 0 , "000.bmp" , FALSE ) ; DrawGraph( ch1.x , ch1.y , ch1.img , TRUE ) ; DrawGraph( ch2.x , ch2.y , ch1.img , TRUE ) ; ScreenFlip(); } DxLib_End(); return 0; }考え方やヒントだけでもいいので教えてください。
よろしくお願いします。