創作內容

9 GP

【JavaScript】如何製作純網頁遊戲3

作者:巨龍-埃特│2014-07-05 02:20:29│巴幣:18│人氣:2656

接續上個教學

在教學1的資料夾下新增一個文字文件
更名為"style.css"

在內文中定義棋盤物件的格式


/*棋盤本體
寬高各為544*544px(15*15格子加上邊界一共是17*17格)
*/
.Board{
width:544px;
height:544px;
}

/*棋格
寬高各為32*32px
排列方式為絕對位置(可用x,y座標定義位置)
*/
.Cell{
width:32px;
height:32px;
position:absolute;
}

/*圖片
寬高各為32*32px
*/
img{
width:32px;
height:32px;
}


現在打開index.html
在<head>的下面
插入教學2的Gomoku.js
以及剛剛完成的style.css

寫法如下


<link rel="stylesheet" type="text/css" href="style.css" />
<script language="javascript" src="Gomoku.js"/></script>


接著在<body>下面插入設定為棋盤物件格式的區塊


<div class=Board id="board">
<div class=Cell id="edag1"><img src="board1.png"></div>
<div class=Cell id="edag2"><img src="board2.png"></div>
<div class=Cell id="edag3"><img src="board3.png"></div>
<div class=Cell id="edag4"><img src="board4.png"></div>
<div class=Cell id="edag5"><img src="board5.png"></div>
<div class=Cell id="edag6"><img src="board6.png"></div>
<div class=Cell id="edag7"><img src="board7.png"></div>
<div class=Cell id="edag8"><img src="board8.png"></div>
<div class=Cell id="cell"><img src="cell.png"></div>
</div>


現在已經完成棋盤物件的設定
你可以試著用瀏覽器打開
但因為還沒編寫JS的關係
棋盤並無拼貼
現在打開Gomoku.js

新增兩變數
var piece=[];//儲存棋盤物件
var boardPiece; //儲存棋盤本體

並且將裡面的init()方法改寫成下表


//初始化棋盤物件
function init(){
//取得棋盤本體
boardPiece = document.getElementById("board");
//依序取得棋盤本體內的元件,將之存入piece後並移除
while(boardPiece.firstChild){
//檢查是否為棋盤物件
if (typeof boardPiece.firstChild.id != 'undefined'){
piece.push(boardPiece.firstChild);
}
boardPiece .removeChild(boardPiece.firstChild);
}
}


以及showBoard()方法改下成下表


//進行棋盤拼貼
function showBoard(){
//用來儲存從piece中複製的棋盤元件
var clonePiece;
//以二重迴圈依序拼貼棋盤
for(var y=0; y<17; y++){
for(var x=0; x<17; x++){
//左上邊界
if(x==0 && y==0){
clonePiece= piece[0].cloneNode(true);
//右上邊界
}else if(x==16 && y == 0){
clonePiece = piece[1].cloneNode(true);
//右下邊界
}else if(x==16 && y == 16){
clonePiece = piece[2].cloneNode(true);
//左下邊界
}else if(x==0 && y == 16){
clonePiece = piece[3].cloneNode(true);
//上邊界
}else if(y==0){
clonePiece = piece[4].cloneNode(true);
//右邊界
}else if(x==16){
clonePiece = piece[5].cloneNode(true);
//下邊界
}else if(y==16){
clonePiece = piece[6].cloneNode(true);
//左邊界
}else if(x==0){
clonePiece = piece[7].cloneNode(true);
//棋格
}else{
clonePiece = piece[8].cloneNode(true);
//將棋格以x方向到y方向排列
board[(y-1)*15+(x-1)]=0;
//以棋格名稱作為儲存媒介
clonePiece.name="("+y+"-1)*15+("+x+"-1)";
//設定滑鼠事件
clonePiece.onclick = function(){
//輸出棋格座標位置(y座標*15+x座標)
alert("you click : "+eval(this.name));
}
}
//設定棋格座標
clonePiece.style.left=x*32+"px";
clonePiece.style.top=y*32+"px";
//將棋格加入棋盤本體
boardPiece .appendChild(clonePiece);
}
}
}


現在用瀏覽器打開index.html
你會發現....


這就是棋盤拼貼出來的面貌
感覺還不錯對吧
只是目前還沒寫上五子棋的遊戲規則
但.....嘿!你可以試著點擊棋盤上的棋格
會有一個視窗跳出來告訴你點擊了哪個座標的位置



這個值是(Y座標*15+X座標)
圖中的22
表示點擊位置在Y=1,X=7的棋格
如此一來一切都準備就緒

下個教學就來實際寫五子棋的遊戲內容
只是...今晚我有點累了,也許明後天在繼續
附上一張枕邊人的閃圖


......好夜晚,不上車嗎?
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=2500175
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:程式|編成|html|神奇寶貝|R-15

留言共 3 篇留言

亞空
那圖有濕嗎OWO?

07-05 07:58

巨龍-埃特
何不餵狗?現代人常做的07-05 09:23
Àikhùn龜台文
wow

07-05 09:05

巨龍-埃特
lol07-05 09:23
亞空
找不到_( :3」∠)_

07-05 09:46

我要留言提醒:您尚未登入,請先登入再留言

9喜歡★a0878787878 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【JavaScript】... 後一篇:【JavaScript】...

追蹤私訊切換新版閱覽

作品資料夾

MoeTakoヾ(●゜▽゜●)♡
來一起陪雪糕畫畫喵✧◝(⁰▿⁰)◜✧看更多我要大聲說昨天20:24


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】