av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

JS異步編程五:Jscex制作憤怒的小鳥(niǎo)

Jscex真的能制作憤怒的小鳥(niǎo)?在我沒(méi)有接觸Jscex之前,我也不相信!但是只要解決了重力場(chǎng)運(yùn)動(dòng)和碰撞的兩大物理問(wèn)題,Jscex版的憤怒小鳥(niǎo),那就是囊中之物。

阿克陶網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司從2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司

如果關(guān)注這個(gè)系列的話,在JS異步編程二:自由落體中,模擬了蘋果在重力場(chǎng)下的自由落體運(yùn)動(dòng)。

那么我們可以輕松的幫它擴(kuò)展一個(gè)水平方向上的速度.

 
 
 
 
  1.  
  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.  
  33.  
  34.  
  35.  
 

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

循環(huán)帶來(lái)的誤差!那么就完善一下while里面的條件,讓它不執(zhí)行***一次循環(huán)。

 
 
 
 
  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. })); 

***讓小鳥(niǎo)撞擊地面彈起,然后又撞擊地面彈起···一直循環(huán)下去

 
 
 
 
  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. })); 

因?yàn)樽矒舻倪^(guò)程當(dāng)中,X軸損失一部分速度,Y軸損失一部分速度并且被彈起,當(dāng)speed_X小于6的時(shí)候退出循環(huán)。

未完待續(xù)啊·····················要去上班了啊······

ps:感興趣的小盆友可以利用CSS3,讓小鳥(niǎo)在空中運(yùn)動(dòng)的過(guò)程中受到了一定的空氣阻力,導(dǎo)致小鳥(niǎo)旋轉(zhuǎn)一定角度,小鳥(niǎo)在落地之后,導(dǎo)致小鳥(niǎo)在地上滾動(dòng)前進(jìn),這樣更加逼真的體現(xiàn)了現(xiàn)實(shí)中的物體運(yùn)動(dòng)。

代碼下載

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


分享標(biāo)題:JS異步編程五:Jscex制作憤怒的小鳥(niǎo)
本文路徑:http://uogjgqi.cn/article/cdpspoh.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流