999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向對象程序設計方法開發游戲的算法研究

2019-06-29 16:26:55吳強
科學與財富 2019年34期

吳強

摘 要:本文通過介紹面向對象程序設計的方法制作Web小游戲“紙牌對對碰”,研究 JavaScript面向對象的制作方法,使高校相關專業的學生更好的理解Web前端技術。

關鍵詞:JavaScript、Web小游戲、面向對象程序開發、紙牌對對碰

隨著信息技術的發展,越來越多的高校開設了網頁制作,面向對象程序設計是當今最流行的編程方法,JavaScript是Web前端開發的核心技術之一,JavaScript并不是一個面向對象的編程軟件,面向對象的指令并不完善,面向對象的很多概念在JavaScript中無法直接實現,只能使用JavaScript代碼模擬完成,本文通過Web小游戲“紙牌對對碰”的制作,了解JavaScript面向對象程序設計的方法。

紙牌對對碰是一款考驗游戲者記憶力的游戲,點擊牌可以翻牌觀察牌正面的圖形,如果連續點擊了兩張圖形一樣的牌,兩張牌消失,當所有紙牌都被清除時過關。整個程序應該分成布局、翻牌兩個部份。

一、隨機取數

制作游戲首先要考慮游戲布局,考慮共有多少張牌,分幾行幾列顯示,如3行6列共有18張牌,有5種不同的圖案,分別用1至5表示5種不同圖案的編號,并且每種圖案的張數必須是偶數。可以先使用循環將1至5按順序存入數組,然后使用隨機交換的方法打亂牌的順序。

for (i=0;i<=18;i++)

{arr[i]=Math.floor(i/4)+1;}

for (i=0;i<=39;i++) {

j=Math.floor(Math.random()*18); //隨機取數單元的一個下標

t=arr[i]; arr[i]=arr[j];arr[j]=t;} ?//交換兩數組下標變量的值

二、設置布局的CSS樣式

先使用PhotoShop制作牌的背景圖,每張牌的大小為100X150像素,牌的背面及5張牌的圖形順序排列成一行在spider.png文件中。在body標簽中增加一個div為游戲的外框,并設置id為”div0”。

(1)利用CSS設置外框的樣式:

#div0 {

width: 650px;

height: 470px;

background-color: #EFB3B4;

padding: 20px;

margin-right: auto;

}

(2)利用CSS設置牌的樣式:

#div0 div {

width: 100px;

height: 150px;

background-image: url(spider.png);

background-repeat: no-repeat;

position: absolute;

}

三、建立類

1、由面向對象編程的原理,可以爭對牌制作一個類,可以發現每張牌可以抽象出來不同的屬性只有牌的序號和牌花色的編號,在類中創建一個div對象并添加到div0中。

function Pa(xh,ph){

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

document.getElementById("div0").appendChild(this.obj);//將div對象添加到div0中

this.xh=xh;//牌的序號

this.ph=ph;//牌花色的紡號

}

2、根據牌的序號計算出牌的位置,一行顯示6張牌。

this.obj.style.marginLeft=(xh%6*110)+"px";//根據序號算出牌的水平位置

this.obj.style.marginTop=Math.floor(xh/6)*160+"px";//根據序號算出牌的垂直位置

3、在牌上綁定事件,鼠標按下事件翻牌,鼠標松開事件還原,但是要注意事件中的對象是牌中的顯示對象,是牌對象中的一個屬性,要在事件對象中找到牌對象可以在事件對象上增加一個屬性src指向類對象代碼為:”this.obj.src=this;”。

this.obj.onmousedown=function(){this.style.backgroundPosition="-"+(this.src.ph*100)+"px 0px";}

this.obj.onmouseup=function(){this.style.backgroundPosition="0px 0px";}

4、使用循環新建牌對象,建立對象時填入相應的牌的序號(循環變量)和牌號(數組中對應的編號)。

for (var i=0;i<=arr.length-1;i++) ?new pa(i,arr[i]);

四、實現游戲

點擊翻牌時,如果連續兩張牌的圖形一樣時消除兩張圖片,可以定義兩個類屬性Pa.num記錄牌的數量,Pa.old記錄第一點擊的牌。并編制一個刪除對象的方法如下:

this.obj.del=function(){

document.getElementById("div0").removeChild(this);

Pa.num--;

}

并在按下事件中增加代碼如下:

if (Pa.old==null) Pa.old=this;//第一次點擊牌時

else if (Pa.old!=this && Pa.old.src.ph==this.src.ph)

//第二次點擊時,如果牌號相同則清除,如果不同在Pa.old中記錄這次點擊的牌

{

this.del();//刪除當前牌

Pa.old.del();//刪除上次點擊的牌

Pa.old=null;

if (Pa.num==0) alert("過關");//如果所有牌都被清除過關。

}

else Pa.old=this;

通過這個案例分析,使用學生更好的理解并使用JavaScript面向對象編程的方法,更好的理解JavaScript動態布局的方法,進一步提高學生對Web前端技術的學習興趣。

主站蜘蛛池模板: 成人另类稀缺在线观看| 国产美女无遮挡免费视频| 国产在线自揄拍揄视频网站| 成人a免费α片在线视频网站| 亚洲国产一区在线观看| 国产在线欧美| 伊人成人在线视频| 扒开粉嫩的小缝隙喷白浆视频| 无码一区18禁| 成人欧美日韩| 久久99国产综合精品1| 日韩精品无码免费专网站| 久久久精品无码一二三区| 久久人人97超碰人人澡爱香蕉 | 成年看免费观看视频拍拍| 亚洲人成网站日本片| 日本成人精品视频| www精品久久| 免费一级全黄少妇性色生活片| 欧美中文字幕第一页线路一| 黑人巨大精品欧美一区二区区| 精品无码国产自产野外拍在线| 欧美高清国产| 国内黄色精品| 亚洲综合国产一区二区三区| 91亚洲精品国产自在现线| 亚洲色图综合在线| 久久久波多野结衣av一区二区| 国产美女在线免费观看| 国产在线麻豆波多野结衣| 91精选国产大片| 2020国产精品视频| 无码专区国产精品一区| 91视频精品| 亚洲黄色视频在线观看一区| 国产一区成人| 国产浮力第一页永久地址| 亚洲欧美另类中文字幕| 98超碰在线观看| 国产白浆一区二区三区视频在线| 最新国产在线| 夜精品a一区二区三区| 伊在人亚洲香蕉精品播放| 婷婷亚洲视频| 亚洲性视频网站| 国内精品视频区在线2021| 九九九久久国产精品| 国产三级国产精品国产普男人| 精品一区二区三区视频免费观看| 8090成人午夜精品| 久久精品丝袜| 亚洲精品亚洲人成在线| 亚洲精品视频网| 亚洲天堂伊人| 亚洲色图欧美| 国产另类乱子伦精品免费女| 91精品国产自产在线观看| 免费在线观看av| 久久精品国产亚洲麻豆| 色欲色欲久久综合网| 91精品国产福利| 无码精品一区二区久久久| 国产第一色| 免费观看无遮挡www的小视频| 在线精品欧美日韩| 丝袜高跟美脚国产1区| 熟妇丰满人妻| 国产亚洲精| 国产91高跟丝袜| 亚洲精品成人福利在线电影| 国产精品久久久免费视频| 成人亚洲国产| 午夜啪啪福利| 婷婷成人综合| 国产视频欧美| 久久青草免费91线频观看不卡| 自拍偷拍欧美| 亚洲不卡影院| 国产小视频网站| 啪啪啪亚洲无码| 国产一级无码不卡视频| 精品国产一区91在线|