做了一个蝴蝶飞舞的程序,请斧正
vb吧
全部回复
仅看楼主
level 8
tbzp666 楼主
做了一个蝴蝶飞舞的程序,从左下角飞到右上角,再从右上角飞到左下角,但总感觉别扭,请斧正
问题有四:
1)蝴蝶的初始位置设置
2)蝴蝶飞到右上角会消失,得等一会才出现,左下角也是一样
如何设置蝴蝶飞到右上角,马上返回,时钟控件的interval设置均为1000
3)使用时钟控件过多,能减少到一个时钟控件么?如果用多层选择结构,那就算了
4)能给两张同一蝴蝶图片,一张合拢,一张张开。多张更好。我找了好久没有找到素材
程序见下楼
2024年05月10日 00点05分 1
level 8
tbzp666 楼主
Private Sub Form_Load()
Me.Width = 10000: Me.Height = 9000
With Image1
.Width = Me.Width / 10
.Height = Me.Height / 10
.Top = Me.ScaleHeight - .Height
.Left = 0
End With
Timer2.Enabled = True '↗
Timer3.Enabled = False '↙
End Sub
Private Sub Timer1_Timer() '切换图片
Static Pick As Boolean
If Pick = False Then
Image1.Picture = LoadPicture(App.Path & "\Images\001.jpg")
Pick = True
Else
Image1.Picture = LoadPicture(App.Path & "\Images\002.jpg")
Pick = False
End If
End Sub
Private Sub Timer2_Timer() '↗
If Image1.Top < 0 Then
Timer2.Enabled = False
Timer3.Enabled = True
Else
With Image1
.Left = .Left + .Width
.Top = .Top - .Height
End With
End If
End Sub
Private Sub Timer3_Timer() '↙
If Image1.Top + Image1.Height > Me.Height Then
Timer2.Enabled = True
Timer3.Enabled = False
Else
With Image1
.Left = .Left - .Width
.Top = .Top + .Height
End With
End If
End Sub
2024年05月10日 00点05分 2
level 13
不用要用Me.Height这是窗体的高度(包括标题栏和边框,一般情况下这两个区域你都是操作不了的,这个深入后就知道了,分NC非客户区和客户区的,一般绘图都是在客户区,如果要自己做窗体皮肤则NC区也要重绘),得用Me.ScaleHeight这才是客户区的高度
Timer控件的Interval可以随时改,改1的话(精度在15毫秒左右,不是1毫秒)
一个Timer控件都是可以控制动画的,放一个外部变量来控制,在Timer事件里判断外部变量的值来确定怎么飞、往哪飞。
你还须深入学习,这个你自己弄懂才是最好的,别人帮不了你
2024年05月10日 02点05分 3
height、width和scaleheight,scalewidth我总是分不清楚用哪个?以前看过解释,后者是把它看做某一长度,是这样么
2024年05月10日 07点05分
@tbzp666 Scale是放控件的区域,叫客户区,Height的除了客户区还有标题栏和边框的高度也加进去了
2024年05月10日 12点05分
@tbzp666 最好用spy++工具测试,以便了解scaleheight、height的区别,vb scale默认是twips缇,要除以15才能得到像素
2024年05月10日 12点05分
吧务
level 14
楼上大佬都说差不多了,我补一点:
一秒移动一次不太流畅,而且要合拢张开切换Interval肯定不能1000;
一个Timer足够,变量控制图片切换、方向,Move一句就替代四行,Left Top也没必要先加再减来回变
2024年05月10日 05点05分 5
move怎么变呢?何时变这个条件怎么设(用多层选择?)?
2024年05月10日 07点05分
level 9
这个以前有人问过,可以吧内搜索“求大佬帮写个蝴蝶飞舞的代码”。
附上图片
2024年05月11日 00点05分 6
[大拇指][大拇指]
2024年05月11日 01点05分
level 7
根据这个道理,可不可以做一个人在走动啊?四张图片可以吧?
2024年05月24日 16点05分 8
当然可以,四张图片不够吧,一般4方向(必要时用8方向),每方向行走动作2-4帧(左右脚切换),8张要的吧,否则移动时像僵尸,
2024年05月25日 00点05分
四个方向是什么意思?就是前后左右每个方向拍两个图片?
2024年05月25日 04点05分
@门户工作室 意思是做个能动的图,看起来比较连贯
2024年05月25日 05点05分
@门户工作室 4方向,前后左右,早期的FC小霸王游戏中的角色都是4方向的,加上行走动作2帧的样子,就看起来动作流畅了。2000年的传奇角色是8方向的,可以斜着走,和正常人行走基本一致(看那时候的火爆程度就知道了)
2024年05月25日 05点05分
1