js實現方塊彈珠游戲


下載地址:https://files.cnblogs.com/files/liumaowu/%E5%BC%B9%E4%B8%80%E5%BC%B9%E6%89%93%E6%96%B9%E5%9D%97%E6%B8%B8%E6%88%8F.zip

最近迷上了微信上的小程序——方塊彈珠,真巨TM好玩,然后因為學習到Java EE,老師重新講了html css js,發現js可以十分方便的操作html中的元素,於是萌生了自己實現一個小游戲的想法。游戲效果如下:

優點:

游戲的基本功能都有實現; 

可以在func.js前幾行的speed賦值隨意設置小球速度;

把代碼往記事本里面一粘,保存下文件格式就可以運行,不需要編譯器,最大的素材是一張背景圖片,不要這背景圖片的畫就幾KB;因為代碼寫的亂怕自己后來看不懂,所以注釋相當多。

 

缺點:

js函數沒有按照功能分層到不同文件中,其實剛開始我還想寫在html文件中的,結果發現越寫越多才獨立出來,但翻着還是很煩;

js函數耦合度高,功能不單一;

用canvas繪制的瞄准線延遲很高,所以去掉了鼠標圖標;

只有加一球和方塊,沒有三角形(因為懶);

方形的四個角碰撞用到的幾何計算貌似是高中難度的了,反正在草稿紙上畫了二十多分鍾坐標系沒算出來,最后用了比較糊弄人的方法;

速度設置過高,小球會出界一點點,貌似無法避免,因為速度已經調到了1px每ms的單位,想提高速度不能降低循環的時間間隔,只能增加像素大小,導致判斷下一步小球位置的時候不會正好等於設置的邊界。

 

遇到的幾個值得提一嘴的問題:

 1.如何使每次出現的新的方塊位置不重疊。這其實就是取幾個不重復的隨機數的問題。而且產生的方塊的個數也是隨機的,但最好不要占滿一行,所以這個問題可以理解為,如何每次產生一到五個不重復的,小於350的且能被50整除的數(因為方塊寬度是50px)。

我采用的方法是:先設置一個數組arr={1,2,3,4,5,6,7},因為一行能放7個方塊,所以這7個數字代表可以出現方塊的7個位置,然后用for循環循環五次,每次產生一個0~6的隨機整數,比如第一次的隨機數ramdom=4,那么比較 if(arr[4]==random){ arr[4]=-1;//設置新方塊}else{//不做任何操作 },這樣第二次循環的時候,如果隨機數還是4,那么else中沒有任何操作,這次循環就被跳過了,如果不為4的話,就會產生其他位置的新的方塊,這樣每次至少會出現一個方塊,最多出現五個方塊,而且位置隨機。

2.四個角的碰撞真的挺難算得,我覺得 我用半天應該能算出來,但我直接讓它按照原路返回了,但我縮小了碰撞的區域。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM