jscex真的能製作憤怒的小鳥?在我沒有接觸jscex之前,我也不相信!但是只要解決了重力場運動和碰撞的兩大物理問題,jscex版的憤怒小鳥,那就是囊中之物。
如果關注這個系列的話,在js非同步程式設計二:自由落體中,模擬了蘋果在重力場下的自由落體運動。
那麼我們可以輕鬆的幫它擴充套件乙個水平方向上的速度.
"button1"type="button"value="發¢射 "οnclick="returnbutton1_onclick()"/>可以看得出來,有點生硬,而且位移有點偏差,比如啟始的top:1000,終止的top:1100!主要原因是在結束while (math.abs(speed_y) <= speed_ytemp)的之前那最後一次
迴圈帶來的誤差!那麼就完善一下while裡面的條件,讓它不執行最後一次迴圈。
varflyasync=eval(jscex.compile("async",function(e,startpos,speed_x,speed_y)}));
最後讓小鳥撞擊地面彈起,然後又撞擊地面彈起···一直迴圈下去
varflyasync=eval(jscex.compile("async",function(e,startpos,speed_x,speed_y)//與地面撞擊,x軸損失一部分速度,y軸損失一部分速度並且被彈起
speed_x=speed_x/2;speed_y=-speed_y/3;
if(speed_x<6)break;
} }));
因為撞擊的過程當中,x軸損失一部分速度,y軸損失一部分速度並且被彈起,當speed_x小於6的時候退出迴圈。
未完待續啊·····················要去上班了啊······
ps:感興趣的小盆友可以利用css3,讓小鳥在空中運動的過程中受到了一定的空氣阻力,導致小鳥旋轉一定角度,小鳥在落地之後,導致小鳥在地上滾動前進,這樣更加逼真的體現了現實中的物體運動。
效果**:
您可能感興趣的文章:
使用node.js開發前端打包程式_0
JS的非同步程式設計
generator非同步方案 async await語法糖 let url1 url1 url2 url2 ajax function getdata url,data error function err let url1 url1 url2 url2 getdata url1 then res ...
JS非同步程式設計之Generator
前言 es6 中提出乙個叫生成器 generator 的概念,執行生成器函式,會返回迭代器物件 iterator 這個迭代器物件可以遍歷函式內部的每乙個狀態。function helloworldgenerator 通過執行生成器返回迭代器物件 var helloworlditerator hell...
JS 同步與非同步程式設計
js是單執行緒的,js就是個傻子,腦子一根筋,做著當前的這件事情,沒有完成之前絕不會做下一件事情 同步上一件事情沒有完成,繼續處理上一件事情,只有上一件事情完成了,才會做另一件事情 js中大部分都是同步程式設計的 for var i 0 i 10000 i console.log ok 迴圈結束了 ...