今回のは意外と長くなってしまいましたが、ちょっとしたことでも指摘してもらえるとありがたいです。
いらない処理、短くできるところなどが特に知りたいです。
お願いします。
○挙動
・ランダムボタンで画像がランダムに切り替わる。(画像は100枚)
・画像クリックで画像の表裏が変わる。(偶数が表、奇数が裏)
#include "DxLib.h"
//3大処理
int ProcessLoop(){
if(ProcessMessage()!=0)return -1;
if(ClearDrawScreen()!=0)return -1;
return 0;
}
void Load(int *Handle){
LoadDivGraph( "画像\\型.png" , 100 ,10 , 10 ,128 , 144 , Handle ) ;
}
void GetMouse(int *Mx, int *My, int *Mf){
GetMousePoint( Mx, My );//マウスの座標
if(( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 )//クリック関係
{
if(*Mf!=0||*Mf==3){*Mf=3;return;}
*Mf=1;
}
else if(( GetMouseInput() & MOUSE_INPUT_RIGHT ) != 0 )
{
if(*Mf!=0||*Mf==3){*Mf=3;return;}
*Mf=2;
}
else
{
*Mf=0;
}
}
void GetDrawNum(int Mx,int My,int Mf,int *DrawNum){
if ( Mx>=225 && Mx<=305 && My>=360 && My<=390 && Mf==1 ){
*DrawNum = GetRand(49)*2 ;
}
}
void SetDraw(int Mx,int My,int Mf,int *Gf,int *DrawNum){
if ( Mx>=256 && Mx<=384 && My>=168 && My<=312 && Mf!=0 ){
if(Mf==1&&*Gf==0){
(*DrawNum)++;
(*Gf)++;
}else if(Mf==1&&*Gf==1){
(*DrawNum)--;
(*Gf)--;
}
}
if(*DrawNum<0) (*DrawNum)++;
if(*DrawNum>99) (*DrawNum)--;
}
void Draw(int *Handle,int Mx,int My,int Mf,int Gf,int DrawNum,int Cr){
DrawBox(255,360,305,390,Cr,FALSE); //ランダムボタン
DrawGraph( 320-64 , 240-72 , Handle[DrawNum] , FALSE ) ;//画像
DrawFormatString(10,10,Cr,"%d,%d,%d",Mx,My,Mf); //マウス関係の字
DrawFormatString(10,30,Cr,"%d,%d",Gf,DrawNum); //画像関係の字
}
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE);
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK ) == -1)return -1;
int Handle[100],Gf,DrawNum;//画像関係
Gf=0;
DrawNum=0;
int Mx,My,Mf;//マウス関係
Mf=0;
int Cr=GetColor(255,255,255);
Load(Handle);
while(ProcessLoop()==0){
GetMouse(&Mx,&My,&Mf);
GetDrawNum(Mx,My,Mf,&DrawNum);
SetDraw(Mx,My,Mf,&Gf,&DrawNum);
Draw(Handle,Mx,My,Mf,Gf,DrawNum,Cr);
ScreenFlip();
}
DxLib_End();
return 0;
}