如何保持对象在图片框中移动C#

时间:2015-02-15 11:42:47

标签: c# game-physics picturebox bounds

所以我有一个对象“玩家”也是一个图片框。 它使用键左右移动。我希望它只能在图片框(屏幕)内移动,如果它接触到边缘而不能到外面就停止。

这是我的尝试

        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;

        }
    }

请有人帮忙。提前致谢。

1 个答案:

答案 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;
}