typedef struct
{
double x,y;
int move1;
double hp;
int shift;
}BODY_PLAYER_t;
BODY_PLAYER_t Player;
void playermove()
{
if(Key[KEY_INPUT_UP]==1)
{
Player.move1=Player.move1*3;
}
if(Key[KEY_INPUT_RIGHT]==1)
{
Player.move1=Player.move1*5;
}
if(Key[KEY_INPUT_LEFT]==1)
{
Player.move1=Player.move1*7;
}
if(Key[KEY_INPUT_DOWN]==1)
{
Player.move1=Player.move1*11;
}
if(Key[KEY_INPUT_LSHIFT]==1)
{
Player.move1=Player.move1*13;
Player.shift=1;
}
//判定
if(Player.move1==3)
{
if(Player.y>0)
Player.y-=4.0f;
}
if(Player.move1==3*5)
{
if(Player.x<630)
Player.x+=2.8f;
if(Player.y>0)
Player.y-=2.8f;
}
if(Player.move1==3*7)
{
if(Player.x>10)
Player.x-=2.8f;
if(Player.y>0)
Player.y-=2.8f;
}
if(Player.move1==7)
{
if(Player.x>10)
Player.x-=4.0f;
}
if(Player.move1==5)
{
if(Player.x<630)
Player.x+=4.0f;
}
if(Player.move1==11)
{
if(Player.y<470)
Player.y+=4.0f;
}
if(Player.move1==7*11)
{
if(Player.x>10)
Player.x-=2.8f;
if(Player.y<470)
Player.y+=2.8f;
}
if(Player.move1==5*11)
{
if(Player.x<630)
Player.x+=2.8f;
if(Player.y<470)
Player.y+=2.8f;
}
//低速
if(Player.move1==3*13)
{
if(Player.y>0)
Player.y-=2.0f;
}
if(Player.move1==3*5*13)
{
if(Player.x<630)
Player.x+=1.4f;
if(Player.y>0)
Player.y-=1.4f;
}
if(Player.move1==3*7*13)
{
if(Player.x>10)
Player.x-=1.4f;
if(Player.y>0)
Player.y-=1.4f;
}
if(Player.move1==7*13)
{
if(Player.x>10)
Player.x-=2.0f;
}
if(Player.move1==5*13)
{
if(Player.x<630)
Player.x+=2.0f;
}
if(Player.move1==11*13)
{
if(Player.y<470)
Player.y+=2.0f;
}
if(Player.move1==7*11)
{
if(Player.x>10)
Player.x-=1.4f;
if(Player.y<470)
Player.y+=1.4f;
}
if(Player.move1==5*11*13)
{
if(Player.x<630)
Player.x+=1.4f;
if(Player.y<470)
Player.y+=1.4f;
}
//低速
Player.move1=1;
}
左下>左上>右上>右下
となってしまいます。
右にいくときはx座標のプラスが足りない気がします。
どこが間違っているのかご教授ねがいたいです。