考试题 求大侠帮忙
老师没给具体内容 我只能形容一下,还望各位好心帮着做做
共两道题,一个是左红右兰两个气球,要求竖直上升,最右边有两个时钟图标作为控制
另一题是黑暗的背景下,有许多像小星星似的东西闪烁。
好像用到了图形操作那章知识
只要差不多能运行就行,谢谢大家了
问题点数:50、回复次数:4Top
1 楼AKillGodKillBuddha(神挡杀神 佛挡杀佛)回复于 2006-06-01 18:56:50 得分 0
????Top
2 楼rypgood(失魂)回复于 2006-06-01 19:54:14 得分 0
第一个很简单啊
画两个图片框,装上气球图片,然后在时钟那里设置属性,interval到底要多快由它决定,你自己设置,里面的程序很简单
private sub timer1_timer()
picture1.top=picture1.top-100
end sub
其他的就照猫画虎了
第二题我就不会了
不过我这里有一个是别人的东西,你可以看一下
Option Explicit
Private Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Type Star
X As Long
Y As Long
Speed As Long
Size As Long
Color As Long
End Type
Dim Stars(49) As Star
Const MaxSize As Long = 5
Const MaxSpeed As Long = 25
Private Sub Form_Click()
End
End Sub
Private Sub Form_Load()
Dim i As Long
Randomize
'产生50个星星
For i = LBound(Stars) To UBound(Stars)
Stars(i).X = Me.ScaleWidth * Rnd + 1
Stars(i).Y = Me.ScaleHeight * Rnd + 1
'星星大小
Stars(i).Size = MaxSize * Rnd + 1
'星星速度
Stars(i).Speed = MaxSpeed * Rnd + 1
'星星颜色
Stars(i).Color = RGB(Rnd * 255 + 1, Rnd * 255 + 1, Rnd * 255 + 1)
Next i
End Sub
Private Sub Timer1_Timer()
Dim i As Long
'清屏
BitBlt Me.hdc, 0, 0, Me.ScaleWidth, Me.ScaleHeight, 0, 0, 0, vbBlackness
For i = 0 To UBound(Stars)
'移动星星
Stars(i).Y = (Stars(i).Y Mod Me.ScaleHeight) + Stars(i).Speed
'判断星星是否已出了窗口
If Stars(i).Y > Me.ScaleHeight Then
Stars(i).X = Me.ScaleWidth * Rnd + 1
Stars(i).Speed = MaxSpeed * Rnd + 1
End If
Me.FillColor = Stars(i).Color
Me.ForeColor = Stars(i).Color
'画星星
Ellipse Me.hdc, Stars(i).X, Stars(i).Y, Stars(i).X + Stars(i).Size, Stars(i).Y + Stars(i).Size
Next i
Me.Refresh
End SubTop
3 楼EexeNet(Eexe.Net)回复于 2006-06-01 20:11:29 得分 0
1、画图你就自己事了喔。。
-------------------
Private Sub Form_Load()
Timer1.Interval = 60
End Sub
Private Sub Timer1_Timer()
Shape1.Top = Shape1.Top - 100
Shape2.Top = Shape2.Top - 100
If Shape1.Top < 20 Then
Shape1.Top = 10000
Shape2.Top = 10000
End If
End Sub
-------------------------------------------
第二道:
画上label1 ,timer1
---------------------------------------------------------
Private Sub Form_Load()
Me.BackColor = h000000 '
Label1.BackStyle = 0 '去背景色
End Sub
Private Sub Timer1_Timer()
Label1.FontSize = Int((50 * Rnd) + 1) '大小变化
Label1.Caption = "这里放上星号,因为这里用星号是发不出的"
Label1.ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) '色彩变化
End Sub
--------------------------------------Top
4 楼bwldwb6(多情无晴)回复于 2006-06-01 23:05:27 得分 0
程序竟然都出来了,我说说大概思想吧,
第一个改变两图形的坐标,改变的程序用时钟空间来控制
第二个象你说的闪烁我觉得直接改变是否可见的属性就行了,当然为了好看象楼上说的可以改变颜色属性Top




