afan
发表于 2010-4-20 23:49:11
回复 30# C.L
皮球型弹跳够自然了~ 我那个是气球~ 呵呵
C.L
发表于 2010-4-21 00:21:50
回复 31# afan
气球只是质量小一点,我那里可以改质量,然后调整一下加速度,你看看下面这段象不象气球:
Dim $P = RegRead('HKLM\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir')
Dim $Ico = $P & '\Aut2Exe\Icons\strawberry.ico'
GUICreate('test', 350, 130)
$cIco = GUICtrlCreateIcon($Ico, -1, 100, 100)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $cIco
IcoMove ()
EndSwitch
WEnd
Func IcoMove()
For $y=500 To 1 Step -25
Circle ($y)
Next
EndFunc ;==>IcoMove
Func Circle ($times)
Local $v=0,$t,$s,$h=0,$g=9.8,$a=$times
For $t=1 To $times
$v=Round (0.01*$a/$t,2)
$s=$v*$t
$a=$a-$g
$h+=$s
If $h <= 0 Then ExitLoop
ControlMove('test', '', $cIco, Default, 100-$h)
Sleep (30)
Next
$v=0
$a=0
$h=100
For $t=1 To $times
$v=Round (0.01*$a/$t,2)
$s=$v*$t
$a=$a+$g
$h+=$s
If $h >= 100 Then ExitLoop
ControlMove('test', '', $cIco, Default, $h)
Sleep (30)
Next
EndFunc
afan
发表于 2010-4-21 00:26:05
回复afan
气球只是质量小一点,我那里可以改质量,然后调整一下加速度,你看看下面这段象不象气球:
C.L 发表于 2010-4-21 00:21 http://www.autoitx.com/images/common/back.gif
果真,效果非常自然,学习了~
lxz
发表于 2010-4-21 07:06:04
学习高手们的技术.
waxy
发表于 2010-4-21 08:55:52
虽然插不上手,但afan的贴子一定是要顶一下的。
水木子
发表于 2010-4-21 09:08:00
本帖最后由 水木子 于 2010-4-21 12:30 编辑
我在想当球落地的时候稍微改变球的形状,是不是更真实些呢!
lxz
发表于 2010-4-21 12:24:15
我在想当球落地的时候稍微改变球的形状,是不是会真实呢!
水木子 发表于 2010-4-21 09:08 http://www.autoitx.com/images/common/back.gif
我也很想知道.
wasd
发表于 2010-4-21 12:30:07
有意思,不错啊
afan
发表于 2010-4-21 13:12:55
我在想当球落地的时候稍微改变球的形状,是不是更真实些呢!
水木子 发表于 2010-4-21 09:08 http://www.autoitx.com/images/common/back.gif
那个只怕用flash方便很多吧(我不会做flash... gif的效果也不好),要不就得做多个ico图标...
superpangya
发表于 2010-4-21 15:11:56
呵呵,学习了....
xwlzx
发表于 2010-4-21 17:21:06
牛人们,都这么熬夜,身体才是革命的本钱啊!学习AU3,可别忘了本钱!
298311657
发表于 2010-4-22 00:37:14
乱七八糟的一段代码Dim $P = RegRead('HKLM\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir')
Dim $Ico = $P & '\Aut2Exe\Icons\strawberry.ico'
GUICreate('test', 400, 640)
$cIco = GUICtrlCreateIcon($Ico, -1, 10, 10)
$dIco = GUICtrlCreateIcon($Ico, -1, 250, 10)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $cIco
heart_1()
Case $dIco
heart_2()
EndSwitch
WEnd
Func heart_1()
For $i = 0 To 60
GUICtrlSetPos($cIco, 10 + $i * 3, 10 + 4.9 * 0.03 * ($i + 1) ^ 2)
Sleep(30)
Next
Sleep(20)
For $i = 60 To 0 Step -1
GUICtrlSetPos($cIco, 10 + $i * 3, 10 + 4.9 * 0.03 * ($i + 1) ^ 2)
Sleep(30)
Next
EndFunc
Func heart_2()
Dim $H =
For $j = 1 To 21
If mod($j, 2) <> 0 Then
Sleep(Round(200/$j))
For $i = $H[$j] To 105
Sleep(10)
GUICtrlSetPos($dIco, 250, 10 + 4.9 * 0.01 * ($i + 1) ^ 2)
Next
Else
For $i = 105 To $H[$j] Step -1
Sleep(10)
GUICtrlSetPos($dIco, 250, 10 + 4.9 * 0.01 * ($i + 1) ^ 2)
Next
EndIf
Next
EndFunc
lokiey
发表于 2010-4-22 08:55:49
很有意思,看看。
dddwd
发表于 2010-4-22 13:02:44
呵呵呵呵呵呵呵呵呵嗬嗬嗬嗬
dddwd
发表于 2010-4-22 13:02:58
呵呵呵呵呵呵呵呵呵呵呵额呵呵