问题描述
制作了Flappy Bird类型的游戏。有2个管道,顶部1个,底部1个。我应用了随机函数来更改管道的高度。当高度改变时,它从底部改变。因此,我的代码适用于顶部管道,但不适用于底部管道,因为它进入地下或地面之上。如何解决? (PipeBottom和PipeTop是图片框)
Bird.Top += gravity;
PipeBottom.Left -= pipespeed;
PipeTop.Left -= pipespeed;
scoreBox.Text = "Score: " + score;
Random r = new Random();
int j = r.Next(-100,100);
if (PipeBottom.Left < -100)
{
PipeBottom.Left = 800;
PipeTop.Height -= j;
score++;
}
if (PipeTop.Left < -100)
{
PipeTop.Left = 800;
PipeTop.Height += j;
score++;
}
解决方法
是的,就是这样。
0,0在左上角。放置在位置100,200的控件似乎距标题栏的距离大约是其距窗口左边缘的距离的两倍。如果将高度设置为300,则其底部距离标题栏500像素。如果然后将高度设置为600,则底部将距离标题栏800像素。控件的顶部不动
如果您希望位置100,200处的某物从高度300变到高度400,并且看起来像它已经向窗口顶部移动了100像素,则可以将其高度设置为400 到100,100(移动并增长)
,没关系,我知道了。使用Picturebox.Top从y轴减去我要添加到高度的数量。