先にやりたい事を言っておきますね。
・スペースキーを押されたら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;
}
考え方やヒントだけでもいいので教えてください。よろしくお願いします。