gpt4 book ai didi

c# - 将球卡在棋盘上(乒乓球比赛)

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:41 25 4
gpt4 key购买 nike

这个游戏还没有完成,我已经创建了球击中棋盘的部分,但是玩起来有问题,那就是球卡在棋盘上了。为了更好地理解和理解我在下面附上了一张图片,请观看它并让我知道你对这个错误的看法。

   public partial class PingPong : Form
{
public PingPong()
{
InitializeComponent();
timer1.Enabled = true;
timer1.Interval = 30;
}


int mx = 5;
int my = 5;
private void timer1_Tick(object sender, EventArgs e)
{

if (ball.Bounds.IntersectsWith(boardCenter.Bounds))
{
mx = mx * -1;
my = my * 1;
}
else if (ball.Location.Y >= this.ClientSize.Height - ball.Height)
{
mx = mx * 1;
my = my * -1;
}
else if (ball.Location.Y <= 0)
{
mx = mx * 1;
my = my * -1;
}

else if (ball.Location.X >= this.ClientSize.Width - ball.Width)
{
mx = mx * -1;
my = my * 1;
}


ball.Location = new Point(ball.Location.X + mx, ball.Location.Y + my);

}

private void PingPong_KeyDown(object sender, KeyEventArgs e)
{

if (e.KeyCode == Keys.Up)
{
board.Location = new Point(board.Location.X, board.Location.Y - 4);

}
else if (e.KeyCode == Keys.Down)
{
board.Location = new Point(board.Location.X, board.Location.Y + 4);
}

}

}

enter image description here

最佳答案

在我看来(根据您提供的视频)您的逻辑实际上是正确的,问题看起来是球从后面击中板,因此在窗口左侧之间快速计算碰撞和电路板的背面。

您应该修改您的代码,以便在与板相同的 X 位置计算与窗口左侧的碰撞。例如,如果棋盘 X 位置固定在距屏幕左侧 20 处,则使小球与窗口左侧的碰撞发生在 20 处,这样小球将永远无法到达董事会。 (同样的原理适用于屏幕右侧和第二个板)。

关于c# - 将球卡在棋盘上(乒乓球比赛),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36638424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com