VB程序代码编写的疑问
设置小球在屏幕内做弹性碰撞,当小球碰到屏幕边沿时会自动反弹.我按照书上的提示,编下如下程序,可是为什么当小球向下运动时碰到屏幕边沿时没有反弹,而是往下沉了好多才反弹呢?我...
设置小球在屏幕内做弹性碰撞,当小球碰到屏幕边沿时会自动反弹.我按照书上的提示,编下如下程序,可是为什么当小球向下运动时碰到屏幕边沿时没有反弹,而是往下沉了好多才反弹呢?我是初学者,请高手指点指点.
添加一个shape1,圆形,为小球
添加一个timer1
代码如下:
dim x as integer
dim y as integer
private sub frm_load()
randomize
x=rnd*100
y=rnd*100
end sub
private sub time1_timer()
shape1.left=shape1.left+x
shape1.top=shape1.top+y
if shape1.top+shape1.height>me.height then y=-y
if shape1.top<0 then y=-y
if shape1.left+shape1.width>me.width then x=-x
if shape1.left<0 then x=-x
end sub
我把me.height 改为 Me.ScaleHeight
Me.Width 改为 Me.ScaleWidth 了,
小球终于不超边反弹了,可是为什么很多时候还没有到达边沿就反弹了呢? 展开
添加一个shape1,圆形,为小球
添加一个timer1
代码如下:
dim x as integer
dim y as integer
private sub frm_load()
randomize
x=rnd*100
y=rnd*100
end sub
private sub time1_timer()
shape1.left=shape1.left+x
shape1.top=shape1.top+y
if shape1.top+shape1.height>me.height then y=-y
if shape1.top<0 then y=-y
if shape1.left+shape1.width>me.width then x=-x
if shape1.left<0 then x=-x
end sub
我把me.height 改为 Me.ScaleHeight
Me.Width 改为 Me.ScaleWidth 了,
小球终于不超边反弹了,可是为什么很多时候还没有到达边沿就反弹了呢? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询