精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JavaScript異步編程之Jscex制作憤怒的小鳥

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

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

51CTO推薦專題:JavaScript異步編程

 

angrybird

 

如果關注這個系列的話,在javascript異步編程之Jscex模擬重力場與google蘋果logo的比較中,模擬了蘋果在重力場下的自由落體運動。

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

  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_Yspeed_YTemp = speed_Y;  
  17. var time = 0;  
  18. while (Math.abs(speed_Y) <= speed_YTemp) {  
  19. $await(Jscex.Async.sleep(50));  
  20. timetime = time + 50;  
  21. speed_Yspeed_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_Yspeed_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. timetime = time + 50;  
  13. speed_Yspeed_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_Yspeed_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. timetime = time + 50;  
  15. speed_Yspeed_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軸損失一部分速度并且被彈起  
  22.  speed_Xspeed_X = speed_X / 2;  
  23. speed_Y = -speed_Y / 3;  
  24. if (speed_X < 6) break;  
  25. }  
  26. })); 

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

黃色小鳥:體型較小,重量較輕,殊效為加快,應用進步擊弱,應用掉隊擊中等。進擊木頭較強,進擊玻璃與混凝土很弱。

 

 

對,沒有錯,它就這這篇文章的主角!

需求解析:沖鋒陷陣鳥,在不點擊加快的景象下,和紅色小鳥樣,當點擊了加快按鈕,X軸標的目標速度變成本來的3倍,Y軸標的目標變成本來的3倍,

沖鋒狀況下速度不受重力影響。

原理圖:

 

 

沖鋒鳥代碼實現:

  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.             document.getElementById("hdTag").value = 1;  
  12.             e.style.left = startPos.x;  
  13.             e.style.top = startPos.y;  
  14.             var maxY = startPos.y;  
  15.             //重?力|加ó速ù度è  
  16.             var a_y = 40;  
  17.             var speed_Yspeed_YTemp = speed_Y;  
  18.             var speed_Xspeed_XTemp = speed_X;  
  19.             var time = 0;  
  20.             var addTag = 1;  
  21.             while (true) {  
  22.                 $await(Jscex.Async.sleep(1));  
  23.                 while ((e.offsetTop - (speed_Y - a_y) * 0.05 <= maxY)) {  
  24.                     if (document.getElementById("hdTag").value == 1) {  
  25.                         $await(Jscex.Async.sleep(50));  
  26.                         timetime = time + 50;  
  27.                         speed_Yspeed_Y = speed_Y - a_y;  
  28.                         startPos.y -= (speed_Y * 0.05);  
  29.                         startPos.x += speed_X * 0.05;  
  30.                         e.style.top = startPos.y + "px";  
  31.                         e.style.left = startPos.x + "px";  
  32.                     }  
  33.                     else {  
  34.                     //沖?鋒?狀′態?  
  35.                         $await(Jscex.Async.sleep(50));  
  36.                         timetime = time + 50;  
  37.                         if (addTag == 1) {  
  38.                             addTag = 0;  
  39.                             //速ù度è翻-倍?  
  40.                             speed_Y = 3 * speed_Y;  
  41.                             speed_X = 3 * speed_X;  
  42.                         }  
  43.                         startPos.y -= (speed_Y * 0.05);  
  44.                         startPos.x += speed_X * 0.05;  
  45.                         e.style.top = startPos.y + "px";  
  46.                         e.style.left = startPos.x + "px";  
  47.                     }  
  48.                 }  
  49.                 if (addTag == 0) {  
  50.                     addTag = 1; break;  
  51.                 }  
  52.                 //與?地?面?撞2擊÷,?X軸á損e失§一?部?分?速ù度è,?Y軸á損e失§一?部?分?速ù度è并¢且ò被?彈ˉ起e  
  53.                 document.getElementById("hdTag").value = 1;  
  54.                 speed_Xspeed_X = speed_X / 2;  
  55.                 speed_Y = -speed_Y / 3;  
  56.                 if (speed_X < 6) break;  
  57.             }  
  58.         }));  
  59.           
  60.         function Button1_onclick() {  
  61.             var bird = new Bird({ x: 0, y: 500 }, 400, 700, document.getElementById("birdDiv"));           
  62.             bird.fly();  
  63.  
  64.         }  
  65.         function Button2_onclick() {  
  66.             document.getElementById("hdTag").value = 0;  
  67.         }  
  68.     </script> 
  69.     <div > 
  70.     <input id="hdTag" value="1" type="hidden" /> 
  71.      <input id="Button1" type="button" value="發¢射?" onclick="return Button1_onclick()" /> 
  72.     <input id="Button2" type="button" value="加ó速ù" onclick="return Button2_onclick()" /> 
  73.          
  74.         <div id="birdDiv" style="left: 0px; top: 500px; position: absolute; width: 20px;  
  75.             height: 30px;z-index:10;"> 
  76.             <img src="yellowbird.png" alt=""/> 
  77.         </div> 
  78.          
  79.     </div> 

最新的Jscex 庫,請上https://github.com/JeffreyZhao/jscex或者http://www.sndacode.com/projects/jscex/wiki下載吧····

代碼下載

原文:http://www.cnblogs.com/iamzhanglei/archive/2011/08/24/2151473.html

【系列文章】

  1. 什么是JavaScript異步編程
  2. JavaScript異步編程之Jscex無創痕切入jQueryUI
  3. JavaScript異步編程之用Jscex畫圓
  4. Jscex+jQuery UI打造游戲力度條
  5. Jscex模擬重力場與google蘋果logo的比較
責任編輯:陳貽新 來源: 趙磊的博客
相關推薦

2012-06-14 14:42:42

JavaScript

2011-11-10 10:23:56

Jscex

2011-11-17 16:14:25

Jscex

2011-11-11 13:38:39

Jscex

2011-07-27 14:10:43

javascript

2012-08-29 09:50:05

憤怒的小鳥免費

2011-09-06 14:26:26

2012-06-14 13:40:04

JavaScript

2016-10-21 11:04:07

JavaScript異步編程原理解析

2012-06-14 14:03:19

JavaScript

2011-05-04 10:53:46

打印機技巧

2014-04-15 15:37:31

憤怒的小鳥信息泄露

2012-03-23 09:29:51

憤怒的小鳥:太空Windows Pho

2012-08-31 16:58:37

2012-03-14 08:54:27

Flash

2012-12-11 15:33:52

2011-06-16 09:07:24

憤怒的小鳥NFC

2012-02-29 09:42:25

2012-03-09 17:26:07

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

2011-05-23 08:59:36

憤怒的小鳥Rovio
點贊
收藏

51CTO技術棧公眾號

精品国产aaa| 大地资源网在线观看免费官网| 日产精品久久久久久久| 啄木系列成人av电影| 色噜噜狠狠色综合欧洲selulu| 亚洲欧美电影在线观看| 午夜精品小视频| 午夜影院日韩| 日韩视频欧美视频| 国产美女视频免费观看下载软件| 成人影院av| 中文字幕一区二区三区蜜月| 国产麻豆日韩| 在线免费观看高清视频| 亚洲性色视频| 影音先锋日韩有码| 国产伦精品一区三区精东| 视频一区在线免费看| 亚洲一卡二卡三卡四卡五卡| 日韩av影视| 亚洲精品久久久久久无码色欲四季| 噜噜噜久久亚洲精品国产品小说| 久久成年人视频| 韩国女同性做爰三级| 伊人www22综合色| 欧美视频在线一区二区三区| 国产 日韩 亚洲 欧美| 日本成人网址| 国产亚洲成aⅴ人片在线观看| 99视频在线播放| 一级片aaaa| 丝袜美腿亚洲综合| 91高清视频免费观看| 国产极品国产极品| 欧美第一精品| 国产亚洲欧洲黄色| 在线免费看黄视频| 制服丝袜在线一区| 欧美野外wwwxxx| 国产精品无人区| 欧美精品一区二区三区久久| 黄色片网站免费在线观看| 卡一卡二国产精品 | 免费看特级毛片| 国产精品亚洲二区| 亚洲精品大尺度| 中文字幕55页| 久久9999免费视频| 欧美久久一二三四区| 91插插插插插插插插| 日韩精选视频| 色噜噜夜夜夜综合网| 中文字幕日本最新乱码视频| 大菠萝精品导航| 亚洲国产美女搞黄色| 可以在线看黄的网站| 国产在线高潮| 亚洲男人天堂av| 视频一区二区视频| v天堂福利视频在线观看| 亚洲欧美日本韩国| wwwwww欧美| 97人澡人人添人人爽欧美| 亚洲一区二区精品视频| 黄色大片中文字幕| 625成人欧美午夜电影| 黄色精品在线看| 日本免费一级视频| 日韩欧美精品电影| 欧美日韩精品一二三区| 亚洲高清在线不卡| 欧一区二区三区| 精品国内二区三区| 成人免费av片| 欧美视频网址| 久久中文字幕在线| 久一视频在线观看| 在线视频精品| 国产精品美女av| 国产精品嫩草影院桃色| 国产成人在线视频播放| 久久大片网站| av资源网在线观看| 亚洲美女淫视频| 美女日批免费视频| 性色av无码久久一区二区三区| a黄色片在线观看| 亚洲国产一区二区在线播放| 日韩精品xxxx| jizz久久久久久| 欧美一级夜夜爽| free性中国hd国语露脸| 色喇叭免费久久综合| 久久av.com| 狠狠人妻久久久久久综合| 老司机精品视频在线| 成人av电影免费| 日本一区高清| 自拍偷拍亚洲激情| 欧美 日韩 国产一区| 伊人久久一区| 日韩av在线看| 久久久久久久麻豆| 久久xxxx精品视频| 亚洲自拍偷拍色片视频| 日本精品专区| 一区二区三区成人在线视频| 天天影视综合色| 天堂av一区| 尤物99国产成人精品视频| 欧美精品入口蜜桃| 美女视频黄久久| 国严精品久久久久久亚洲影视 | 精品午夜av| 亚洲美女中文字幕| 精品人妻在线播放| 久久福利视频一区二区| 九色一区二区| a毛片在线看免费观看| 91极品视觉盛宴| 国产精品尤物福利片在线观看| 黄色精品视频在线观看| 亚洲国内自拍| 91亚洲va在线va天堂va国| 色网站在线免费观看| 玉米视频成人免费看| 欧美在线aaa| 午夜a一级毛片亚洲欧洲| 久久av资源网站| 91成人一区二区三区| 久久免费午夜影院| 给我免费播放片在线观看| 精品午夜视频| 久久亚洲一区二区三区四区五区高| 97人妻一区二区精品视频| 不卡高清视频专区| 人人妻人人澡人人爽欧美一区双| 亚洲网站三级| 日韩有码视频在线| 自拍偷拍色综合| 国产视频911| 一本大道熟女人妻中文字幕在线| 久草在线综合| 性色av一区二区三区| 风流老熟女一区二区三区| 伊人色综合久久天天人手人婷| www.亚洲自拍| 午夜日韩视频| 99se婷婷在线视频观看| av免费在线网站| 日韩视频一区在线观看| 欧美成人精品欧美一级| 国产成人av资源| 国产黄色激情视频| 国产精品国产| 欧美孕妇毛茸茸xxxx| 日韩美女一级视频| 日韩欧美在线中文字幕| 国产伦精品一区二区三区妓女| 亚洲青色在线| 久久综合九色综合久99| **欧美日韩在线观看| 亚洲色图在线观看| 真实新婚偷拍xxxxx| ...xxx性欧美| 日本wwwxx| 亚洲人成高清| 欧洲一区二区在线观看| 中文字幕系列一区| 久久久精品日本| 国精产品乱码一区一区三区四区| 五月天精品一区二区三区| 国内自拍欧美激情| 在线观看免费国产视频| 久久综合一区二区| 91极品视频在线观看| 亚洲综合色网| 国产偷国产偷亚洲高清97cao| 午夜影院一区| 中文字幕国产精品| 精品黑人一区二区三区在线观看| 亚洲成人av在线电影| 91网站免费视频| 精久久久久久久久久久| 日韩亚洲欧美视频| 国产真实有声精品录音| 91精品在线播放| 超级白嫩亚洲国产第一| 国产一区二区三区视频| 精品女同一区二区三区| 色哟哟欧美精品| avtt天堂在线| 久久嫩草精品久久久精品| 91精产国品一二三产区别沈先生| 精品福利av| 亚洲精品在线免费看| av综合网页| 国产精品美女久久久免费 | 欧美www在线| 无码精品黑人一区二区三区| 欧美日韩免费观看一区二区三区| 久久久久久国产精品免费播放| 久久久精品黄色| 久久久九九九热| 欧美专区18| 国产专区在线视频| 欧美一级精品| 韩国一区二区三区美女美女秀| 日本一区二区三区中文字幕| 97超级碰在线看视频免费在线看| 日本高清视频在线观看| 亚洲另类图片色| 亚洲国产精品久久久久爰性色| 欧美影院午夜播放| 天天操天天摸天天干| 亚洲美女视频在线| 国产在线免费av| 91在线免费视频观看| 手机在线播放av| 裸体在线国模精品偷拍| 国产男女在线观看| 亚洲视频狠狠| 男人j进女人j| 色88久久久久高潮综合影院| 免费看污久久久| 国内精品偷拍| 99免费在线观看视频| 台湾天天综合人成在线| 国产精品福利网站| 91video| 欧美日韩中文一区二区| 2022国产精品| 日韩欧美专区| 国产精品精品一区二区三区午夜版| 波多野在线观看| 欧美裸体xxxx极品少妇| 久久bbxx| 久久久精品国产亚洲| 日本在线天堂| www日韩中文字幕在线看| 成人性生交大片免费看午夜| 亚洲视频国产视频| 欧美另类自拍| 亚洲免费av片| 你懂的在线免费观看| 国产丝袜高跟一区| 日本不卡免费播放| 日韩毛片在线观看| 西西人体44www大胆无码| 亚洲激情成人网| 亚州av在线播放| 日韩成人性视频| 日本亚洲一区| 亚洲欧美在线第一页| 久久久资源网| 亚洲亚裔videos黑人hd| yw在线观看| 久久精品国产2020观看福利| 免费黄色在线看| 久久视频在线直播| 在线看女人毛片| 久久免费福利视频| 国产激情在线播放| 国产成人高潮免费观看精品| 国产精品亚洲一区二区三区在线观看| 国产精品激情av电影在线观看 | 91精品久久久久久| 国产精品国产三级在线观看| 91国产在线免费观看| 操欧美女人视频| 久久精品丝袜高跟鞋| 国产精品免费不| 在线视频亚洲自拍| 黄色亚洲在线| 国产麻花豆剧传媒精品mv在线| 日本欧美久久久久免费播放网| 九九热免费在线观看| 国产91精品久久久久久久网曝门| 成人在线视频免费播放| 国产日韩欧美高清在线| 国产福利视频网站| 亚洲第一久久影院| 日韩精品一区二区亚洲av观看| 欧美精品1区2区| 农村少妇久久久久久久| 一区二区三区视频观看| 在线免费av导航| 国产精品99久久久久久www| 国产精品一级在线观看| 韩国成人一区| 香蕉精品视频在线观看| 亚洲小说欧美激情另类| 91精品久久久久久久久久久久| 中文字幕一区二区视频| 日韩字幕在线观看| 欧美少妇一区二区| 免费av网站在线播放| 国产亚洲欧美aaaa| 成人在线高清免费| 国产精品欧美日韩一区二区| 51亚洲精品| 亚洲一区二区四区| 国产午夜精品一区二区三区欧美 | 日韩成人av网站| 欧美伊人影院| 我看黄色一级片| 99视频热这里只有精品免费| 黄色精品视频在线观看| 欧美午夜美女看片| 亚洲欧美黄色片| 中文字幕亚洲无线码在线一区| 国内精彩免费自拍视频在线观看网址 | 国产精品国产自产拍高清av水多 | 欧美变态tickling挠脚心| 国产精品免费观看| 午夜免费日韩视频| 精品视频一区二区三区| 五月婷婷一区| 亚洲女同在线| 国产精品一区二区无码对白| 国产精品久久久久久久久久久免费看| 日韩欧美a级片| 日韩无一区二区| 色大18成网站www在线观看| 欧美一区二区三区精品电影| 91午夜精品| 黄色小视频大全| 久久99精品久久久久久动态图| 亚洲性猛交xxxx乱大交| 欧美性猛交xxxxx免费看| 蜜臀久久99精品久久久| 久久99精品久久久久久琪琪| **精品中文字幕一区二区三区| 午夜精品一区二区三区四区| 免费在线欧美黄色| 国产精品无码电影| 亚洲福利电影网| 亚洲黄色在线播放| 欧美裸体男粗大视频在线观看| 国产电影一区| 三级网在线观看| 国产在线精品一区二区不卡了| 免费成人美女女在线观看| 欧美日韩三级一区二区| 97超碰人人在线| 国产精品中文久久久久久久| 俺要去色综合狠狠| 91国内精品野花午夜精品| 一本一道精品欧美中文字幕| 尤物九九久久国产精品的特点| 欧美gay囗交囗交| 青娱乐一区二区| 免费看日韩精品| 欧美成人久久久免费播放| 欧美剧情电影在线观看完整版免费励志电影 | 蜜桃视频成人| 国产美女诱惑一区二区| 午夜理伦三级做爰电影| 在线观看日韩电影| 自拍视频在线网| 国产日韩欧美在线观看| 亚洲国产精品成人| 男女性杂交内射妇女bbwxz| 香港成人在线视频| 日本v片在线免费观看| 国产精品激情av在线播放| 日韩欧美伦理| 国产不卡的av| 亚洲成av人影院在线观看网| 性xxxxbbbb| 国产精品丝袜一区二区三区| 午夜精品毛片| 国产一区二区片| 91美女片黄在线| 在线免费看91| 色综合天天综合网国产成人网| 欧美wwwsss9999| 国产精品天天av精麻传媒| 国产精品欧美精品| 亚洲第一免费视频| 欧美亚洲成人xxx| 日本不卡二三区| 国内精品免费视频| 色久综合一二码| 91精选在线| 久久婷婷开心| 狠狠色丁香婷婷综合| 国语对白一区二区| 一本久久综合亚洲鲁鲁| 日本免费一区二区三区视频| 国产日韩一区二区在线| 亚洲另类春色国产| 你懂的在线播放| 亚洲wwwav| 三级一区在线视频先锋| 免费在线视频观看| 一本一道久久a久久精品逆3p| 日韩黄色av| 中文久久久久久| 亚洲r级在线视频|