TS项目练习:贪吃蛇小游戏(二)

2. 项目界面的搭建

贪吃蛇的界面设计稿如下:

image

代码展示:

  • index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>贪吃蛇</title>
</head>
<body>
<!-- 创建游戏的主容器 -->
<div id="main">
<!-- 游戏舞台(蛇的移动区) -->
<div id="stage">
<!-- 设置蛇 -->
<div id="snake">
<!-- 蛇的内部div表示蛇的各部分 -->
<div></div>
</div>
<!-- 设置食物 -->
<div id="food">
<!-- 设置4个小格子 -->
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</div>
<!-- 游戏的计分区域 -->
<div id="score-panel">
<div>
得分:<span id="score">0</span>
</div>
<div>
等级:<span id="level">1</span>
</div>
</div>
</div>
</body>
</html>

样式设计

  • index.less
// 设置变量
@bg-color :#b7d4a8;

// 清除浏览器默认样式
*{
margin: 0;
padding: 0;
box-sizing: border-box;//边界padding等融合到盒子总大小中去
}

// 设置全局字体
body{
font: bold 20px "Courier";
}

// 设置主窗口样式
#main{
width: 360px;
height: 420px;
background-color: @bg-color;
margin:100px auto;
border: 10px solid #000;
border-radius: 40px;

// 布局弹性盒模型
display: flex;
// 设置主轴方向(竖轴)
flex-flow: column;
// 设置侧轴对齐方式
align-items: center;
// 设置主轴对齐方式
justify-content: space-around;

// 游戏舞台样式
#stage{
width: 304px;
height: 304px;
border: 2px solid #000;
// 子绝父相:开启相对定位(参照物)
position:relative;

// 设置蛇的样式
#snake{
&>div{
width: 10px;
height: 10px;
background-color: #000;
// 设置蛇的缝隙
border: 1px solid @bg-color;
// 子绝父相:开启绝对定位(蛇的移动)
position: absolute;
}
}

// 设置食物样式
#food{
// 食物的大小与蛇保持一致
width: 10px;
height: 10px;
position: absolute;//子绝父相

left: 40px;
top: 100px;

// 开启弹性盒
display: flex;
// 设置横轴为主轴,wrap表示会自动换行
flex-flow: row wrap;

// 设置主轴和侧轴的空白空间分配到元素之间
justify-content: space-between;
align-content: space-between;

&>div{
width: 4px;
height: 4px;
background-color: black;

// 使四个div旋转45度
transform: rotate(45deg);
}
}
}

// 游戏计分盘
#score-panel{
width: 300px;
display: flex;
// 设置主轴对齐方式
justify-content: space-between;
}
}

结果展示:

image