亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Web小游戲?qū)ο笞詣由善鞯乃惴ǖ难芯?/h1>
        2021-11-12 15:08:58吳強(qiáng)
        安防科技 2021年1期

        吳強(qiáng)

        摘要:彈彈球小游戲深受大眾所喜愛,本文詳細(xì)的介紹在網(wǎng)絡(luò)平臺下,使用JavaScript腳本語言實現(xiàn)“連連看”游戲中核心算法——對象自動生成器。

        關(guān)鍵詞:web 小游戲;彈彈球;JavaScript;對象自動生成器

        隨著游戲的飛速發(fā)展,基于移動端的網(wǎng)絡(luò)游戲成為了人們娛樂的一種重要方式,彈彈球類的小游戲出現(xiàn)了很多,深受大眾的喜愛。

        一、關(guān)鍵問題

        “彈彈球”是一個平面游戲,小球在地圖中自動移動,小球超出地圖自動刪除,碰到障礙物反彈,用戶水平控制擋板阻止小球飛出,當(dāng)小球碰到不同類型的磚塊有不同類型的獎勵,其中一種獎勵是生成新的小球,以不同的方向飛行,這時就有多個小球同時在地圖中飛行。自動生成小球中一個重要的問題,面向?qū)ο蟮木幊谭绞墙鉀Q些問題的方法之一

        二、小球類

        在建立小球類時,首先要要考慮設(shè)置小球?qū)ο蟮膶傩院头椒ā?/p>

        1、對象的屬性,小球?qū)ο蟮闹饕獙傩杂衳,y軸的坐標(biāo)、運(yùn)動速度與運(yùn)動角度。

        function Ball(x,y,speed,angle){

        this.x=x;//設(shè)置x坐標(biāo)

        this.y=y;//設(shè)置y坐標(biāo)

        this.speed=speed;//設(shè)置速度

        this.angle=angle;//設(shè)置運(yùn)動方向

        }

        2、在地圖中建立小球?qū)ο?,首先將地圖對象給到變量“map”中,在map中增加小球?qū)ο?,并,在這里重要的是由類建立的小球?qū)ο蠛偷貓D中顯示的小球不是一個對象,因此要建立兩個對象的互相聯(lián)系,可以在小球?qū)ο笾性黾右粋€屬性“obj”指向地圖中的小球,地圖中的小球增加一個屬性“src”屬性指向小球?qū)ο蟆T陬愔性黾哟a事下:

        this.obj=document.createElement("div");//建立對象

        this.obj.className=”ball”;//設(shè)置CSS

        map.appendChild(this.obj);//增加對象至地圖中

        this.obj.src=this;//設(shè)置標(biāo)簽對象src屬性為球?qū)ο?/p>

        3、地圖中的小球的位置,可以根據(jù)小球的x和y屬性來改變小球的位置,并調(diào)用函數(shù)。

        this.xy=function(){//設(shè)置對象的位置

        this.obj.style.left=parseInt(this.x)+”px”;

        this.obj.style.top=parseInt(this.y)+”px”;

        }

        this.xy();

        4、創(chuàng)建在地圖中移動小球?qū)ο蟮姆椒?,在JavaScript做動畫的常用方法之一是使用定時事件來完成移動的效果,在小球類中時用考慮一次移動,可以通過對象的運(yùn)動速度和角度的屬性來計算出小球每次的位移量,并判斷其超出地圖片下面的邊界刪除對象,方法如下:

        this.move=function(){//移動對象

        this.x+=this.speed*Math.cos(this.angle/180*Math.PI);

        this.y+=this.speed*Math.sin(this.angle/180*Math.PI);

        this.xy();

        if (this.y>map.offsetHeight) this.remove();//超界刪除對象

        }

        5、刪除對象方法,刪除地圖中的對象同時,刪除小球?qū)ο笈c之的鏈接。

        this.remove=function(){map.removeChild(this.obj);this.obj=””;}

        6、在主時鐘設(shè)置小球運(yùn)動,地圖中小球數(shù)量不是固定的,它會隨時發(fā)生變化,因此在每次運(yùn)動時都要重新對地圖中的小球進(jìn)行遍歷,每個球都要做相應(yīng)的運(yùn)動。

        window.setInterval(“masterClock()”,1000/30);

        var masterClock=function(){

        var ballAll=document.querySelectorAll(“.map .ball”);

        console.log(ballAll.length);

        for (var k=0;k<=ballAll.length-1;k++){

        ballAll.item(k).src.move();

        }

        }

        三、建立對象

        建立小球?qū)ο髸r,根據(jù)不同的情況輸入相應(yīng)的屬性,代碼如下:

        new Ball(300,100,5,198);

        四、結(jié)束語

        以上是本文解決了游戲中關(guān)鍵問題對象自動生成器,要完成此游戲還要制作球與磚塊的碰撞反彈效果,相關(guān)圖片的排版布局、倒計時、得分、地圖、音效等增加游戲的可玩性。

        大陆极品少妇内射aaaaa| 成熟丰满熟妇高潮xxxxx| 99久久国产综合精品麻豆 | 九九热在线视频观看这里只有精品| 91亚洲无码在线观看| 禁止免费无码网站| 青青草手机在线免费视频| 91精品人妻一区二区三区久久久 | 无码人妻丰满熟妇精品区| 最新精品国偷自产在线婷婷| 最新永久免费AV网站| 日韩日本国产一区二区| 人妻少妇精品专区性色anvn| 男女肉粗暴进来动态图| 国产女人水真多18毛片18精品 | 波多野结衣视频网址| 亚洲国产福利成人一区二区| 极品美女销魂一区二区三| 久久精品国产成人午夜福利| 美女射精视频在线观看| 国产自拍成人免费视频| 欧美熟妇另类久久久久久不卡 | 精品国产日韩无 影视| 国产女主播福利一区二区| 国产女同va一区二区三区| 亚洲成熟丰满熟妇高潮xxxxx| 永久免费av无码入口国语片| 国产做无码视频在线观看浪潮| 国内精品国产三级国产av另类| 少妇极品熟妇人妻高清| 国产一区二区亚洲一区| 中国老熟女露脸老女人| 亚洲av精品一区二区三区| 真实单亲乱l仑对白视频| 国产中文制服丝袜另类| 中文字幕精品亚洲无线码二区| 免费观看在线视频播放| 亚洲国产精品久久久av| 久久久亚洲欧洲日产国码αv | 日韩精品无码久久久久久 | 久久亚洲第一视频黄色|