C#应用案例之小球反弹4条代码优化版

准备工作

首先先为窗体设置属性并为属性赋值

this.FormBorderStyle = FormBorderStyle.None;    //窗体的边框样式为无边框
            this.Size = new Size(100,100);      //设置窗体的宽和高
            this.BackColor = Color.Blue;        //窗体的背景颜色为blue蓝色
            this.Location = new Point(0,0);     //窗体的坐标为(0,0)
            this.Opacity = 0.7;                 //窗体的不透明度为0.7

然后将窗体画圆(画圆三部曲)
别忘了在画圆之前先引用画圆的命名空间
在这里插入图片描述

                                            //画圆三部曲
            GraphicsPath path = new GraphicsPath();     //第二部  创建画圆的图形对象
            path.AddEllipse(0,0,this.Width,this.Height);//第三部  开始画圆
            this.Region = new Region(path);             //第一部  将画的圆与窗体进行关联

为小球窗体添加一个timer组件
打开timer1组件

对timer1组件进行编程

在开始之前先赋值一个 x 和 y
在这里插入图片描述
我们是利用控制 left 和 top 的加减来实现对小球的控制控制的在小球运动过程中 left 和 top 的加减情况如图
在这里插入图片描述
由此可以看出第一次运动和第二次运动相比的区别是y的值由+=y变成了-=y
要想令y变为-y 我们可以将y每次都乘以-1 这样 top +=y就变成了 top -=y
第二次运动与第三次运动的道理是一样的只是将变换的对象由y变成了x
所以我们只需要将x每次都乘以-1就可以了
第三次运动到第四次运动是要将-y变成+y 我们也是每次讲-y乘以-1就可以变成+y了所以
第三次运动到第四次运动与第一次到第二次运动的情况是一样的
第四次运动到第一次运动与第二次到第三次运动的情况是一样的
在 if 语句中我们可以加入" || "表示或者的意思
所以代码为

            this.Left += x;
            this.Top += y;
            if (this.Top+this.Height>=Screen.PrimaryScreen.WorkingArea.Height  ||  this.Top<=0)
            {
                y *= -1;
            }
            if (this.Left+this.Width>=Screen.PrimaryScreen.WorkingArea.Width  ||  this.Left<=0)
            {
                x *= -1;
            }

启动调试

猜你喜欢

转载自blog.csdn.net/Layfolk_XK/article/details/105553529