所以我有一个对象“玩家”也是一个图片框。 它使用键左右移动。我希望它只能在图片框(屏幕)内移动,如果它接触到边缘而不能到外面就停止。
这是我的尝试
private void Game_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Right)
{
right = false;
if (screen.Bounds.IntersectsWith(player.Bounds))
{
???
}
}
if (e.KeyCode == Keys.Left)
{
left = false;
}
}
请有人帮忙。提前致谢。
答案 0 :(得分:0)
如果我正确地理解了这个问题,那么这样的事情应该有效。
private void Game_KeyUp(object sender, KeyEventArgs e)
{
int leftChange = 0;
if (e.KeyCode == Keys.Right)
leftChange = 10;
if (e.KeyCode == Keys.Left)
leftChange = -10;
// check right bound
if ((player.Right + leftChange) > screen.Right)
leftChange = (screen.Right - player.Width) - player.Left;
// check left bound
if ((player.Left + leftChange) < screen.Left)
leftChange = screen.Left - player.Left;
// move the player
player.Left += leftChange;
}