如何在指定的位置随机产生类似shape控件这样的小块,如何让shape控件随着画好的曲线走?

[复制链接]
查看11 | 回复4 | 2010-3-10 08:45:36 | 显示全部楼层 |阅读模式
在窗体内加入控件Picture1,Timer1(internal=100),然后复制下面代码,运行即可:Option ExplicitPublic i As Integer, x As Integer, y As IntegerDim Shape1 As ObjectPrivate Sub Form_Load()
x = 10
y = 10
'设置小球移动幅度为10
Timer1.Interval = 10
'移动时间间距为10
Set Shape1 = Me.Controls.Add("VB.shape", "shape1", Picture1)
Shape1.Left = 0
Shape1.Top = 0
Shape1.Width = 615
Shape1.Height = 615
Shape1.Visible = TrueEnd SubPrivate Sub Timer1_Timer()
Shape1.Left = Shape1.Left + x
Shape1.Top = Shape1.Top + y
If Shape1.Left + Shape1.Width > Picture1.Width Or Shape1.LeftPicture1.Height Or Shape1.Top < 0 Then y = -y
'这两行是指如果小球碰到边框了,自动弹回来End Sub
回复

使用道具 举报

千问 | 2010-3-10 08:45:36 | 显示全部楼层
给你一个思路。1、你可以用pset在form画点,每画一个点,就把坐标按顺序记录下来。2、加载一个timer控件,在过程里调整shape控件的top和left的值,让top等于记录下来点的纵坐标,left等于记录点的横坐标,这样就能自动移动了。这个绝对可以达到你要的效果,说起来简单,但是完成代码也是比较麻烦了,自己找点资料做吧。
回复

使用道具 举报

千问 | 2010-3-10 08:45:36 | 显示全部楼层
如果用绘画函数,如Pset、Line等,擦除,重绘的时间很长。建议用可动态加载的Sharp控件或Image控件。生成时,查找最小未用Index,然后加载此Index的控件。用Timer控件,在过程里调整shape控件的top和left的值,
回复

使用道具 举报

千问 | 2010-3-10 08:45:36 | 显示全部楼层
给你看个我写的程序吧,写的是个俄罗斯方块,在对控件的布局,和使用时钟控件的运用都有到,对你或许有帮助,这是我空间的连接地址:http://hi.baidu.com/tcboy5488
回复

使用道具 举报

千问 | 2010-3-10 08:45:36 | 显示全部楼层
百度HI我 我给你讲
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行