[VB.NET]反弹球
反弹球
实例说明 在本实例中,我们制作一个反弹球的应用程序,当球到达边缘后,则自动弹回。程序运行结果如图85-1所示。 图85-1 运行结果 技术要点 l Timer控件 l 改变图形位置 l 判断是否到达边界 实现过程 ■ 新建项目 打开Visual Studio.NET,选择"新建项目",在项目类型窗口中选择"Visual Basic项目",在模板窗口中,选择"Windows应用程序",在名称域中输入"RebouncePic",然后选择保存路径。单击"确认"。 ■ 添加控件 向窗体上添加一个Timer控件、一个Button控件和一个Picture控件。 ■ 设置属性 对窗体和窗体上的控件设置属性,如表85-1所示。 表85-1 窗体/属性的属性值 窗体/控件 属性 值 Form1 Text 反弹球 Timer1 Interval 1 Picture1 Name PicBall Image C:/windwos/ball.bmp Button Text 开始演示 ■ 添加代码 Dim Motion As Short Private Sub Command1_Click(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles Command1.Click If Command1.Text = "开始演示" Then Command1.Text = "停止演示" Timer1.Enabled = True Else Command1.Text = "开始演示" Timer1.Enabled = False End If End Sub Private Sub CtlMoveDemo() Select Case Motion Case 1 picBall.SetBounds(picBall.Left - 2,picBall.Top - 2,Windows.Forms.BoundsSpecified.X Or Windows.Forms.BoundsSpecified.Y) ' 如果图形到达左边界,则向右移动 If VB6.PixelsToTwipsX(picBall.Left) <= 0 Then Motion = 2 '如果图形到达上边界,则向下移动 ElseIf VB6.PixelsToTwipsY(picBall.Top) <= 0 Then Motion = 4 End If Case 2 picBall.SetBounds(picBall.Left + 2,Windows.Forms.BoundsSpecified.X Or Windows.Forms.BoundsSpecified.Y) '如果图形到达右边界,则向左移动 If picBall.Left >= (Form1.DefInstance.Width - picBall.Width) Then Motion = 1 '如果图形到达上边界,则向下移动 ElseIf picBall.Top <= 0 Then Motion = 3 End If Case 3 picBall.SetBounds(picBall.Left + 2,picBall.Top + 2,Windows.Forms.BoundsSpecified.X Or Windows.Forms.BoundsSpecified.Y) If picBall.Left >= (Form1.DefInstance.Width - picBall.Width) Then Motion = 4 ElseIf picBall.Top >= (Form1.DefInstance.Height - picBall.Height) - 20 Then Motion = 2 End If Case 4 picBall.SetBounds(picBall.Left - 2,Windows.Forms.BoundsSpecified.X Or Windows.Forms.BoundsSpecified.Y) If picBall.Left <= 0 Then Motion = 3 ElseIf picBall.Top >= (Form1.DefInstance.Height - picBall.Height) - 20 Then Motion = 1 End If End Select End Sub Private Sub Form1_Load(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles MyBase.Load Timer1.Enabled = False Motion = 1 End Sub Private Sub Timer1_Tick(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles Timer1.Tick CtlMoveDemo() End Sub ■ 运行程序 单击菜单"调试|启动" 或单击图标运行程序。 小结 本实例通过使用Timer控件来不断更改Picture控件的位置,当到达边界后,立刻变换方向。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |