int up=0, down=0;
int left=0, right=0;//分别获取四个按键的内容
int speed_x=0, speed_y=0;//x轴速度和y轴速度
if ( GetAsyncKeyState(VK_UP) || GetAsyncKeyState('W') )
up = -1;
if ( GetAsyncKeyState(VK_DOWN) || GetAsyncKeyState('S') )
down = 1;
if ( GetAsyncKeyState(VK_LEFT) || GetAsyncKeyState('A'))
left = -1;
if ( GetAsyncKeyState(VK_RIGHT) || GetAsyncKeyState('D'))
right = 1;
if (up+left < (-1) || down-left >1 || right-up >1 || down+right >1)
{
speed_x = (left+right)*speed*sqrt(0.5);//若同时进行两个方向的移动,速度应该不变
speed_y = (up+down)*speed*sqrt(0.5);
}
else
{
speed_x = (left+right)*speed;
speed_y = (up+down)*speed;
}
if (Player.x+60 < 0 || Player.x+60 > Width)//判断是否超出边界
{
if (speed_x * (Player.x) > 0)//speed_x为负:即向左,而坐标又为负数,则speed_x = 0;
{//speed_x为正:即向右,而左边又为Widtth,则speed_x 也为 0
speed_x = 0;
}
}
if (Player.y+60 < 0 || Player.y+60 > High)
{
if (speed_y * (Player.y) > 0)//同理
{//同理
speed_y = 0;
}
}
Player.x += speed_x;
Player.y += speed_y;
int left=0, right=0;//分别获取四个按键的内容
int speed_x=0, speed_y=0;//x轴速度和y轴速度
if ( GetAsyncKeyState(VK_UP) || GetAsyncKeyState('W') )
up = -1;
if ( GetAsyncKeyState(VK_DOWN) || GetAsyncKeyState('S') )
down = 1;
if ( GetAsyncKeyState(VK_LEFT) || GetAsyncKeyState('A'))
left = -1;
if ( GetAsyncKeyState(VK_RIGHT) || GetAsyncKeyState('D'))
right = 1;
if (up+left < (-1) || down-left >1 || right-up >1 || down+right >1)
{
speed_x = (left+right)*speed*sqrt(0.5);//若同时进行两个方向的移动,速度应该不变
speed_y = (up+down)*speed*sqrt(0.5);
}
else
{
speed_x = (left+right)*speed;
speed_y = (up+down)*speed;
}
if (Player.x+60 < 0 || Player.x+60 > Width)//判断是否超出边界
{
if (speed_x * (Player.x) > 0)//speed_x为负:即向左,而坐标又为负数,则speed_x = 0;
{//speed_x为正:即向右,而左边又为Widtth,则speed_x 也为 0
speed_x = 0;
}
}
if (Player.y+60 < 0 || Player.y+60 > High)
{
if (speed_y * (Player.y) > 0)//同理
{//同理
speed_y = 0;
}
}
Player.x += speed_x;
Player.y += speed_y;