vb编程,编写程序使小球沿着窗体四边滚动

vb编程,编写程序使小球沿着窗体四边滚动,第1张

在窗体中放入一个Shape1和一个Timer1,编程如下:

Private Sub Form_Load()

Shape1.FillStyle = 0

Shape1.FillColor = vbRed

Shape1.Shape = 3

Shape1.Move 0, 0, 450, 450

Timer1.Interval = 30

Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer()

Static mx As Integer, my As Integer

Dim cx As Single, cy As Single

cx = Shape1.Left

cy = Shape1.Top

If (cx = 0 And cy <= 0) Or (mx = 0 And my = 0) Then

    mx = 30

    my = 0

    cx = 0

    cy = 0

ElseIf cx >= Me.ScaleWidth - Shape1.Width And cy = 0 Then

    mx = 0

    my = 30

    cx = Me.ScaleWidth - Shape1.Width

    cy = 0

ElseIf cx = Me.ScaleWidth - Shape1.Width And cy >= Me.ScaleHeight - Shape1.Height Then

    滑雹森mx = -30

   信亩 my = 0

    cx = Me.ScaleWidth - Shape1.Width

    cy = Me.ScaleHeight - Shape1.Height

ElseIf cx <= 0 And cy = Me.ScaleHeight - Shape1.Height Then

    mx = 0

    my = -30

    cx = 0

  肆首  cy = Me.ScaleHeight - Shape1.Height

End If

Shape1.Move cx + mx, cy + my

End Sub

很简单的嘛,

就是一个图片框(P1)加一个图像框,一个文本框,一个按控件,一个时钟啦

是利用它们的左右距离参数正耐的。

可以拆清友不用他的题目,他的题目太简单了,就是一个图片的可见和旅槐不可见,

我们可以让时间改变小球位置来实现的

比如时钟的,P1.HEIGHT=P1.HEIGHT+X

其中X可以为图像框的高度允许的任意值

时钟那么简单就不用说了吧

分类: 电脑/网络 >>程序设计 >>其他编程语言

解析:

希望你能把问题说得详细一些,怎样叫自由运动?是随机运动?还是受某些力(如重力)的影响,是否有惯性?

下面一段程序是从我以前的一个练习程序中提取的,有一些改动,以满足题目。

Private Cosnt LIMIT_TOP = ?

Private Cosnt LIMIT_BUTTOM = ?

Private Cosnt LIMIT_LEFT = ?

Private Cosnt LIMIT_RIGHT = ?

'设置运动范围

Private PI = 3.14159 '定义Pi(求三角函数用弧度作单位,所以需要Pi)

Private Const MOVE_SPEED = 10 '设置移动速度

Private Const TURN_SPEED = 4 '设置转弯速度

Private Const MOVE_STEPS = 9 '设置每走9步转一次小弯

Private Const TURN_STEPS = 50 '设置每走50步改变一次转弯方向

Private Sub Timer1_Timer()

Static Direct As Long, n As Long, Turn As Long

'Direct 运动方向;n 计数,每走n步饥如稿改变一次转弯方向,它的使用使得运动看起来比较平滑; Turn转弯方向

n = n + 1

If n = TURN_STEPS Then

n = 0

Randomize

Turn = TURN_SPEED * (Int(Rnd * 3) - 1)

End If

'每走50步随机产烂孝生转弯的方向

If n Mod MOVE_STEPS = 0 Then

Direct = Direct + Turn

If Direct <0 Then Direct = Direct + 2*PI

If Direct >2*PI Then Direct = Direct - 2*PI '换算,使角度始终在函数定义域内

End If

'每走9步软一次小弯

Call Sphere.Move (Sphere.Left + Cos(Dire ) * MOVE_SPEED, Sphere.Top - Sin(Dire) * MOVE_SPEED)

'移动小球

If Sphere.Top <LIMIT_TOP Then

Dire = 1.5*PI

ElseIf Sphere.Top >LIMIT_BOTTOM Then

Dire = 0.5*PI

ElseIf Sphere.Left <LIMIT_LEFT Then

Dire = 0

ElseIf Sphere.Left >LIMIT_RIGHT Then

Dire = PI

End If

'判断小球是否到达边界,如到达边界,则改变方向橡丛

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12239357.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存