以前よりお世話になっておりますiceです。
今DXライブラリで、RPG(2次元ドットタイプ)を制作しているのですが
PCとNPCが重なるときに
NPCより上に居るときはPCが隠れる
NPCより下に居るときはPCが見える
というふうにしたいのですが、どうすればいいでしょうか。
以下はPCの移動、NPCの描画で使用してるソースです。
void playercontrol1() { DrawGraph( (int)pl[1].x , (int)pl[1].y , pl[1].img , TRUE ) ;//キャラの描画 dash=1; if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_C ) { dash=2; } if(pl[1].kou==0) if(pl[1].kou>=0) { if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_UP && GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_LEFT ) pl[1].kou=8; if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_UP && GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_RIGHT ) pl[1].kou=2; if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_DOWN && GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_LEFT ) pl[1].kou=6; if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_DOWN && GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_RIGHT ) pl[1].kou=4; if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_UP && ( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_RIGHT ) == 0 && ( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_LEFT ) == 0 ) pl[1].kou=1; if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_DOWN && ( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_RIGHT ) == 0 && ( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_LEFT ) == 0 ) pl[1].kou=5; if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_LEFT && ( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_UP ) == 0 && ( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_DOWN ) == 0 ) pl[1].kou=7; if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_RIGHT && ( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_UP ) == 0 && ( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_DOWN ) == 0 ) pl[1].kou=3; if(( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_UP ) == 0 &&( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_RIGHT ) == 0 &&( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_DOWN ) == 0 &&( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) & PAD_INPUT_LEFT ) == 0 ) pl[1].kou=0; } } void npc() { DrawGraph( (int)en[1].x , (int)en[1].y , en[1].img , TRUE ) ;//NPCの描画 if( pl[1].kou==1 ) en[1].y+=2.5*dash; if( pl[1].kou==2 ) en[1].y+=2.5*dash,en[1].x-=2.5*dash; if( pl[1].kou==3 ) en[1].x-=2.5*dash; if( pl[1].kou==4 ) en[1].y-=2.5*dash,en[1].x-=2.5*dash; if( pl[1].kou==5 ) en[1].y-=2.5*dash; if( pl[1].kou==6 ) en[1].y-=3*dash,en[1].x+=2.5*dash; if( pl[1].kou==7 ) en[1].x+=2.5*dash; if( pl[1].kou==8 ) en[1].y+=2.5*dash,en[1].x+=2.5*dash; }背景スクロールタイプなのでこのようなソースになってます。
簡略化できるところとかあれば加えてご教授お願いします。
またNPCを複数出したい際に同じソースを何度も書かなくて良いようにする方法はありますでしょうか。
以上よろしくお願いします。