2、向左,或者向右,让小球往空隙的缺口跳动。
3、当小球跳动到空隙缺口,就会往下掉落。
4、每次掉落一层,就会得1分,掉落层数越多,得分越多。
分类: 电脑/网络 >>程序设计 >>其他编程语言解析:
希望你能把问题说得详细一些,怎样叫自由运动?是随机运动?还是受某些力(如重力)的影响,是否有惯性?
下面一段程序是从我以前的一个练习程序中提取的,有一些改动,以满足题目。
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)