index.html:遊戲界面文件javascript
index.css:遊戲樣式文件css
main.js:遊戲主邏輯文件html
support.js:遊戲基本邏輯文件java
showanimation.js:遊戲動畫邏輯文件瀏覽器
你們先把文件按照這個結構建立好,名字本身命名也能夠,可是index.html裏面也要跟着修改。ide
首先在index.html引入樣式文件和邏輯文件:佈局
<link rel="stylesheet" type="text/css" href="css/index.css"><script type="text/javascript" src="js/support.js"></script><script type="text/javascript" src="js/showanimation.js"></script><script type="text/javascript" src="js/main.js"></script><script type="text/javascript" src="js/rem.js"></script>
遊戲界面使用左中右佈局,左邊是遊戲玩法說明區域,中間是遊戲區域,遊戲區域又使用上中下佈局,上面是遊戲標題和分數,中間是遊戲窗口,下面是從新開始按鈕,右邊則是歷史記錄區域。動畫
這裏樣式咱們採用rem佈局,來確保在如何pc端瀏覽器都能正常顯示。網站
因此咱們rem.js文件須要添加內容:spa
(function (doc, win) {var docEl = doc.documentElement; resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = function () {var clientWidth = docEl.clientWidth;if (!clientWidth) return; docEl.style.fontSize = (clientWidth / 77) + 'px'; };if (!doc.addEventListener) return; win.addEventListener(resizeEvt, recalc, false); doc.addEventListener('DOMContentLoaded', recalc, false); })(document, window);
讓咱們開始最簡單的部分,直接上代碼。
index.html:
<div class="readme"><span>玩法說明:</span><p>鍵盤上下左右控制移動,相同格子會累積加起來重疊爲新的格子, 當全部格子均佔有而且不能移動遊戲結束。點擊從新開始遊戲將會重置。</p></div>
index.css:
@CHARSET "UTF-8"; *{padding: 0;margin: 0; } .readme{position:absolute;left: 5%;top:9rem /* 100/25 */;width: 12rem /* 300/25 */; }.readme span{ font-size: 1.28rem /* 32/25 */; text-align:center; color: red; font-weight: 800; display: block; margin-bottom: .8rem /* 20/25 */; }.readme p{ display: block; font-size: 1.2rem /* 30/25 */; text-indent: .8rem /* 20/25 */; color: #000000; }
運行index.html:
遊戲玩法說明區域就完成了。
而後咱們開始作遊戲區域部分,先作上面的遊戲標題和分數。
index.html:
<header><h1>2048</h1><div class="text">分數:<span id="score">0</span> 分 </div></header>
index.css:
header{ display:block; margin:0 auto; width: 25rem /* 400/16 */; text-align:center; } header h1{ font-family:Arial, Helvetica, sans-serif; font-size:3.2rem /* 80/25 */; font-weight:bold; margin-top: .4rem /* 10/25 */; margin-bottom: .4rem /* 10/25 */; }header .text{ font-family:Arial, Helvetica, sans-serif; font-size: .8rem /* 20/25 */; }header .text #score { color: red; }
保存刷新網頁:
這樣遊戲區域上部分就處於佈局中上位置了。
而後就是中間的遊戲窗口,是個4×4的格子,因此咱們用div包裹div來實現就好了。
index.html:
<div id="grid-container"><div class="grid-cell" id="grid-cell-0-0"></div><div class="grid-cell" id="grid-cell-0-1"></div><div class="grid-cell" id="grid-cell-0-2"></div><div class="grid-cell" id="grid-cell-0-3"></div><div class="grid-cell" id="grid-cell-1-0"></div><div class="grid-cell" id="grid-cell-1-1"></div><div class="grid-cell" id="grid-cell-1-2"></div><div class="grid-cell" id="grid-cell-1-3"></div><div class="grid-cell" id="grid-cell-2-0"></div><div class="grid-cell" id="grid-cell-2-1"></div><div class="grid-cell" id="grid-cell-2-2"></div><div class="grid-cell" id="grid-cell-2-3"></div><div class="grid-cell" id="grid-cell-3-0"></div><div class="grid-cell" id="grid-cell-3-1"></div><div class="grid-cell" id="grid-cell-3-2"></div><div class="grid-cell" id="grid-cell-3-3"></div></div>
index.css:
#grid-container{ width:18.4rem /* 460/25 */; height:18.4rem /* 460/25 */; padding:.8rem /* 20/25 */; margin:1.6rem /* 40/25 */ auto; background:#bbada0; border-radius:.4rem /* 10/25 */; position:relative; } .grid-cell{ width:4rem /* 100/25 */; height:4rem /* 100/25 */; border-radius:.24rem /* 6/25 */; background:#ccc0b3; position:absolute; }
保存刷新網頁:
???爲何只顯示了一個呢,按道理應該是十六個都顯示啊。爲何會是這樣的呢,由於全部的div格子所有疊在一塊兒了,下一章我會用js將棋盤初始化,那時候才能看到十六個格子。
接下來就是下面的從新開始按鈕了,我這邊不打算使用button來寫,而用a標籤來直接實現,利用a標籤的href來完成js方法的調用。
index.html:
<a href="javascript:newgame();" id="newgamebutton">從新開始</a>
index.css:
#newgamebutton{ margin: 0 auto; display: block; width:6rem /* 150/25 */; padding:.8rem /* 20/25 */; text-align: center; font-size: .8rem /* 20/25 */; background:#8f7a66; font-family:Arial, Helvetica, sans-serif; color:white; border-radius:.6rem /* 15/25 */; text-decoration:none; cursor: pointer; }#newgamebutton:hover{ background:#9f8b77; }
保存刷新網頁:
從新開始按鈕就作好了, newgame()方法留到後面再編寫。
終於到了最後一個部分了,那就是歷史記錄區域了,這個功能能夠將每次的記錄保存到瀏覽器,只保留前八名,只要不清除網站數據,記錄就不會消失。
index.html:
<div class="history"><div class="title">歷史記錄(前八)</div><div class="score-list"></div></div>
index.css:
.history{ width: 21rem; height: 20rem; position: absolute; top: 9rem; right: 3rem; }.history .title{ font-size: 1.28rem; text-align: center; font-weight: 800; margin-bottom: .8rem /* 20/25 */; color: red; }
先完成最基本的樣式,後面有須要再添加。
這樣咱們的遊戲界面就構建好了!