成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JS異步編程五:Jscex制作憤怒的小鳥

開發 前端
Jscex真的能制作憤怒的小鳥?在我沒有接觸Jscex之前,我也不相信!但是只要解決了重力場運動和碰撞的兩大物理問題,Jscex版的憤怒小鳥,那就是囊中之物。

Jscex真的能制作憤怒的小鳥?在我沒有接觸Jscex之前,我也不相信!但是只要解決了重力場運動和碰撞的兩大物理問題,Jscex版的憤怒小鳥,那就是囊中之物。

angrybird

如果關注這個系列的話,在JS異步編程二:自由落體中,模擬了蘋果在重力場下的自由落體運動。

那么我們可以輕松的幫它擴展一個水平方向上的速度.

  1. <script type="text/javascript">  
  2. function Bird(startPos, speed_X, speed_Y, element) {  
  3. this.speed_X = speed_X;  
  4. this.speed_Y = speed_Y;  
  5. this.startPos = startPos;  
  6. this.fly = function () {  
  7. flyAsync(element, startPos, speed_X, speed_Y).start();  
  8. }  
  9. }  
  10. var flyAsync = eval(Jscex.compile("async"function (e, startPos, speed_X, speed_Y) {  
  11. e.style.left = startPos.x;  
  12. e.style.top = startPos.y;  
  13. //vt=v0+at  
  14. //重力加速度  
  15. var a_y = 40;  
  16. var speed_YTemp = speed_Y;  
  17. var time = 0;  
  18. while (Math.abs(speed_Y) <= speed_YTemp) {  
  19. $await(Jscex.Async.sleep(50));  
  20. time = time + 50;  
  21. speed_Y = speed_Y - a_y;  
  22. startPos.y -= (speed_Y * 0.05);  
  23. e.style.top = startPos.y;  
  24. startPos.x += speed_X * 0.05;  
  25. e.style.left = startPos.x;  
  26. }  
  27. }));  
  28. function Button1_onclick() {  
  29. var bird = new Bird({ x: 0, y: 300 }, 400, 700, document.getElementById("birdDiv"));  
  30. bird.fly();  
  31. }  
  32. </script>  
  33. <input id="Button1" type="button" value="發¢射?" onclick="return Button1_onclick()" />  
  34. <div id="birdDiv" style="left: 0px; top: 300px; position: absolute;">  
  35. <img id="bird" src="bird.jpg" alt="" />  
  36. </div>  

可以看得出來,有點生硬,而且位移有點偏差,比如啟始的top:1000,終止的top:1100!主要原因是在結束while (Math.abs(speed_Y) <= speed_YTemp)的之前那***一次

循環帶來的誤差!那么就完善一下while里面的條件,讓它不執行***一次循環。

  1. var flyAsync = eval(Jscex.compile("async"function (e, startPos, speed_X, speed_Y) {  
  2. e.style.left = startPos.x;  
  3. e.style.top = startPos.y;  
  4. //vt=v0+at  
  5. //重力加速度  
  6. var a_y = 40;  
  7. var speed_YTemp = speed_Y;  
  8. var time = 0;  
  9. var maxY = startPos.y  
  10. while (speed_Y > 0 ? (Math.abs(speed_Y) <= speed_YTemp) : (e.offsetTop - (speed_Y - a_y) * 0.05 <= maxY)) {  
  11. $await(Jscex.Async.sleep(50));  
  12. time = time + 50;  
  13. speed_Y = speed_Y - a_y;  
  14. startPos.y -= (speed_Y * 0.05);  
  15. e.style.top = startPos.y;  
  16. startPos.x += speed_X * 0.05;  
  17. e.style.left = startPos.x;  
  18. }  
  19. })); 

***讓小鳥撞擊地面彈起,然后又撞擊地面彈起···一直循環下去

  1. var flyAsync = eval(Jscex.compile("async"function (e, startPos, speed_X, speed_Y) {  
  2. e.style.left = startPos.x;  
  3. e.style.top = startPos.y;  
  4. var maxY = startPos.y;  
  5. //所用公式?:vt=v0+at  
  6. //重力加速度  
  7. var a_y = 40;  
  8. var speed_YTemp = speed_Y;  
  9. var time = 0;  
  10. while (true) {  
  11. $await(Jscex.Async.sleep(1));  
  12. while (speed_Y > 0 ? (Math.abs(speed_Y) <= speed_YTemp) : (e.offsetTop - (speed_Y - a_y) * 0.05 <= maxY)) {  
  13. $await(Jscex.Async.sleep(50));  
  14. time = time + 50;  
  15. speed_Y = speed_Y - a_y;  
  16. startPos.y -= (speed_Y * 0.05);  
  17. e.style.top = startPos.y;  
  18. startPos.x += speed_X * 0.05;  
  19. e.style.left = startPos.x;  
  20. }  
  21. //與地面撞擊,X軸損失一部分速度,Y軸損失一部分速度并且被彈起 
  1. speed_X = speed_X / 2;  
  2. speed_Y = -speed_Y / 3;  
  3. if (speed_X < 6) break;  
  4. }  
  5. })); 

因為撞擊的過程當中,X軸損失一部分速度,Y軸損失一部分速度并且被彈起,當speed_X小于6的時候退出循環。

未完待續啊·····················要去上班了啊······

ps:感興趣的小盆友可以利用CSS3,讓小鳥在空中運動的過程中受到了一定的空氣阻力,導致小鳥旋轉一定角度,小鳥在落地之后,導致小鳥在地上滾動前進,這樣更加逼真的體現了現實中的物體運動。

代碼下載

效果觀看:http://www.cnblogs.com/iamzhanglei/archive/2011/08/24/2151473.html

【編輯推薦】

  1. JS異步編程一:用Jscex畫圓
  2. JS異步編程二:自由落體
  3. JS異步編程三:Jscex無創痕切入jQUI
  4. JS異步編程四:Jscex+jQ打造游戲力度條
  5. 看JavaScript如何實現頁面自適
責任編輯:張偉 來源: 當耐特磚家的博客
相關推薦

2011-11-16 13:22:38

Jscex

2012-06-14 13:40:04

JavaScript

2012-06-14 14:03:19

JavaScript

2012-08-29 09:50:05

憤怒的小鳥免費

2011-09-06 14:26:26

2011-11-10 10:23:56

Jscex

2012-06-14 14:09:58

JavaScript

2011-07-27 14:10:43

javascript

2011-11-17 16:14:25

Jscex

2011-11-11 13:38:39

Jscex

2011-05-04 10:53:46

打印機技巧

2012-08-31 16:58:37

2012-03-23 09:29:51

憤怒的小鳥:太空Windows Pho

2012-03-14 08:54:27

Flash

2014-04-15 15:37:31

憤怒的小鳥信息泄露

2012-12-11 15:33:52

2012-02-29 09:42:25

2012-03-09 17:26:07

憤怒的小鳥憤怒的小鳥太空版

2011-05-23 08:59:36

憤怒的小鳥Rovio

2011-06-16 09:07:24

憤怒的小鳥NFC
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久99深爱久久99精品 | 国产精品久久久久久久久久 | 天天干天天爱天天爽 | 美女在线视频一区二区三区 | 欧美在线a | 99精品国产一区二区青青牛奶 | 亚洲视频在线观看免费 | 99色综合 | 自拍视频国产 | 午夜精品一区二区三区在线播放 | 视频二区 | 天天干天天操天天爽 | 日韩精品一区二区三区免费视频 | 中文字幕在线免费观看 | 91精品久久久久 | www日本在线 | 久久精品国产a三级三级三级 | 日韩三区 | 久久精品99久久 | 一级毛片高清 | 成人精品一区二区 | 天堂中文字幕av | 精品videossex高潮汇编 | 亚洲成人一级 | 亚洲成人精品视频 | 在线亚洲免费 | 一区二区三区久久 | 久久久亚洲一区 | 国产色婷婷久久99精品91 | 亚洲一区二区精品视频在线观看 | 亚洲色图综合网 | 亚洲精品中文在线 | 亚洲综合一区二区三区 | 91精品国产欧美一区二区成人 | 超黄毛片| 丁香六月伊人 | 日本精品一区二区 | 欧美 日韩 国产 成人 在线 91 | 色偷偷888欧美精品久久久 | 中文字幕综合 | 亚洲成人午夜电影 |