找回密码
 加入
搜索
楼主: afan

[效率算法] 心跳的感觉[控件移动]

 火... [复制链接]
 楼主| 发表于 2010-4-20 23:49:11 | 显示全部楼层
回复 30# C.L


    皮球型弹跳够自然了~ 我那个是气球~ 呵呵
发表于 2010-4-21 00:21:50 | 显示全部楼层
回复 31# afan
气球只是质量小一点,我那里可以改质量,然后调整一下加速度,你看看下面这段象不象气球:

  1. Dim $P = RegRead('HKLM\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir')
  2. Dim $Ico = $P & '\Aut2Exe\Icons\strawberry.ico'
  3. GUICreate('test', 350, 130)
  4. $cIco = GUICtrlCreateIcon($Ico, -1, 100, 100)
  5. GUISetState()

  6. While 1
  7.         $nMsg = GUIGetMsg()
  8.         Switch $nMsg
  9.                         Case -3
  10.                                         Exit
  11.                         Case $cIco
  12.                                 IcoMove ()       
  13.         EndSwitch
  14. WEnd

  15. Func IcoMove()
  16.                 For $y=500 To 1 Step -25
  17.                         Circle ($y)
  18.                 Next
  19. EndFunc   ;==>IcoMove

  20. Func Circle ($times)
  21.         Local $v=0,$t,$s,$h=0,$g=9.8,$a=$times
  22.         For $t=1 To $times
  23.                 $v=Round (0.01*$a/$t,2)
  24.                 $s=$v*$t
  25.                 $a=$a-$g
  26.                 $h+=$s
  27.                 If $h <= 0 Then ExitLoop
  28.                 ControlMove('test', '', $cIco, Default, 100-$h)
  29.                 Sleep (30)
  30.         Next
  31.         $v=0
  32.         $a=0
  33.         $h=100
  34.         For $t=1 To $times
  35.                 $v=Round (0.01*$a/$t,2)               
  36.                 $s=$v*$t
  37.                 $a=$a+$g
  38.                 $h+=$s
  39.                 If $h >= 100 Then ExitLoop
  40.                 ControlMove('test', '', $cIco, Default, $h)
  41.                 Sleep (30)
  42.         Next       
  43. EndFunc
  44.                
复制代码

评分

参与人数 2威望 +10 金钱 +22 贡献 +5 收起 理由
lynfr8 + 22 + 5 很棒的见解
afan + 10

查看全部评分

 楼主| 发表于 2010-4-21 00:26:05 | 显示全部楼层
回复  afan
气球只是质量小一点,我那里可以改质量,然后调整一下加速度,你看看下面这段象不象气球:
C.L 发表于 2010-4-21 00:21



    果真,效果非常自然,学习了~
发表于 2010-4-21 07:06:04 | 显示全部楼层
学习高手们的技术.
发表于 2010-4-21 08:55:52 | 显示全部楼层
虽然插不上手,但afan的贴子一定是要顶一下的。
发表于 2010-4-21 09:08:00 | 显示全部楼层
本帖最后由 水木子 于 2010-4-21 12:30 编辑

我在想当球落地的时候稍微改变球的形状,是不是更真实些呢!
发表于 2010-4-21 12:24:15 | 显示全部楼层
我在想当球落地的时候稍微改变球的形状,是不是会真实呢!
水木子 发表于 2010-4-21 09:08



    我也很想知道.
发表于 2010-4-21 12:30:07 | 显示全部楼层
有意思,不错啊
 楼主| 发表于 2010-4-21 13:12:55 | 显示全部楼层
我在想当球落地的时候稍微改变球的形状,是不是更真实些呢!
水木子 发表于 2010-4-21 09:08



    那个只怕用flash方便很多吧(我不会做flash... gif的效果也不好),要不就得做多个ico图标...
发表于 2010-4-21 15:11:56 | 显示全部楼层
呵呵,学习了....
发表于 2010-4-21 17:21:06 | 显示全部楼层
牛人们,都这么熬夜,身体才是革命的本钱啊!学习AU3,可别忘了本钱!
发表于 2010-4-22 00:37:14 | 显示全部楼层
乱七八糟的一段代码
  1. Dim $P = RegRead('HKLM\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir')
  2. Dim $Ico = $P & '\Aut2Exe\Icons\strawberry.ico'
  3. GUICreate('test', 400, 640)
  4. $cIco = GUICtrlCreateIcon($Ico, -1, 10, 10)
  5. $dIco = GUICtrlCreateIcon($Ico, -1, 250, 10)
  6. GUISetState()

  7. While 1
  8.     $nMsg = GUIGetMsg()
  9.     Switch $nMsg
  10.         Case -3
  11.                         Exit
  12.                 Case $cIco
  13.                         heart_1()
  14.                 Case $dIco
  15.                         heart_2()
  16.         EndSwitch
  17. WEnd

  18. Func heart_1()
  19.         For $i = 0 To 60
  20.                 GUICtrlSetPos($cIco, 10 + $i * 3, 10 + 4.9 * 0.03 * ($i + 1) ^ 2)
  21.                 Sleep(30)
  22.         Next
  23.         Sleep(20)
  24.         For $i = 60 To 0 Step -1
  25.                 GUICtrlSetPos($cIco, 10 + $i * 3, 10 + 4.9 * 0.03 * ($i + 1) ^ 2)
  26.                 Sleep(30)               
  27.         Next
  28. EndFunc

  29. Func heart_2()
  30.         Dim $H[22] = [0, 0, 15, 30, 41, 52, 62, 70, 77, 83, 88, 92, 95, 97, 99, 101, 102, 103, 104, 104, 104, 104]
  31.         For $j = 1 To 21
  32.                 If mod($j, 2) <> 0 Then
  33.                         Sleep(Round(200/$j))
  34.                         For $i = $H[$j] To 105
  35.                                 Sleep(10)
  36.                                 GUICtrlSetPos($dIco, 250, 10 + 4.9 * 0.01 * ($i + 1) ^ 2)
  37.                         Next
  38.                 Else
  39.                         For $i = 105 To $H[$j] Step -1
  40.                                 Sleep(10)
  41.                                 GUICtrlSetPos($dIco, 250, 10 + 4.9 * 0.01 * ($i + 1) ^ 2)
  42.                         Next
  43.                 EndIf
  44.         Next
  45. EndFunc       
复制代码

评分

参与人数 1金钱 +40 收起 理由
afan + 40 学习了

查看全部评分

发表于 2010-4-22 08:55:49 | 显示全部楼层
很有意思,看看。
发表于 2010-4-22 13:02:44 | 显示全部楼层
呵呵呵呵呵呵呵呵呵嗬嗬嗬嗬

评分

参与人数 1金钱 -30 收起 理由
pusofalse -30 恶意灌水,扣分警告!

查看全部评分

发表于 2010-4-22 13:02:58 | 显示全部楼层
呵呵呵呵呵呵呵呵呵呵呵额呵呵

评分

参与人数 1金钱 -30 收起 理由
pusofalse -30 恶意灌水,扣分警告!

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2026-9-25 10:16 , Processed in 0.072014 second(s), 16 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表