回归前端学习第22天-实现俄罗斯方块小游戏5(实现单机版1——结合HTML、CSS、JS来搭建界面)

news/2024/10/21 6:01:56/

实现单机版俄罗斯方块小游戏,搭建页面

  • 实现静态基础页面

实现静态基础页面

HTML:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>俄罗斯方块5</title><link rel="stylesheet" href="./css/css.css"><!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script> -->
</head><body><div class="game" id="game"></div><div class="next" id="next"></div><div class="info"><div>已用时:<span id="time">0</span>s</div><div>已得分:<span id="score">0</span>分</div></div><script src="./js/script.js"></script>
</body></html>

CSS:

/* 20行10列,20*20的小块 */
.game {width: 200px;height: 400px;background-color: #F2FAFF;border-left: 1px solid blue;border-right: 1px solid blue;border-bottom: 1px solid blue;position: absolute;top: 10px;left: 10px;
}.next {width: 80px;height: 80px;background-color: F2FAFF;position: absolute;top: 10px;left: 250px;border: 1px solid blue;
}.info {position: absolute;top: 100px;left: 250px;
}

在这里插入图片描述
加入JS,实现页面显示(开始前设置成背景色,正在落下来的时候是粉色,落地后是灰色)

var nextData = [[2, 2, 0, 0],[0, 2, 2, 0],[0, 0, 0, 0],[0, 0, 0, 0]
];var gameData = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 2, 1, 0, 0, 0],[0, 0, 0, 2, 2, 2, 1, 0, 0, 0],[0, 0, 1, 1, 1, 1, 1, 0, 0, 0],
];var nextDivs = [];
var gameDivs = [];
// initGame()创建div,并将其保存的givDiv里面
var initGame = function () {for (var i = 0; i < gameData.length; i++) {var gameDiv = [];for (var j = 0; j < gameData[0].length; j++) {var newNode = document.createElement('div');newNode.className = 'none';newNode.style.top = (i * 20) + 'px';newNode.style.left = (j * 20) + 'px';// 建立一维数组document.getElementById('game').appendChild(newNode);gameDiv.push(newNode);}// 把一维数组放到多维数组中gameDivs.push(gameDiv);}
}
var initNext = function () {for (var i = 0; i < nextData.length; i++) {var nextDiv = [];for (var j = 0; j < nextData[0].length; j++) {var newNode = document.createElement('div');newNode.className = 'none';newNode.style.top = (i * 20) + 'px';newNode.style.left = (j * 20) + 'px';// 建立一维数组document.getElementById('next').appendChild(newNode);// 把一维数组放到多维数组中nextDiv.push(newNode);}nextDivs.push(nextDiv);}
}var refreshGame = function () {for (var i = 0; i < gameData.length; i++) {for (var j = 0; j < gameData[0].length; j++) {if (gameData[i][j] == 0) {gameDivs[i][j].className = 'none';} else if (gameData[i][j] == 1) {gameDivs[i][j].className = 'done';} else if (gameData[i][j] == 2) {gameDivs[i][j].className = 'current';}}}
}var refreshNext = function () {for (var i = 0; i < nextData.length; i++) {for (var j = 0; j < nextData[0].length; j++) {if (nextData[i][j] == 0) {nextDivs[i][j].className = 'none';} else if (nextData[i][j] == 1) {nextDivs[i][j].className = 'done';} else if (nextData[i][j] == 2) {nextDivs[i][j].className = 'current';}}}
}initGame();
initNext();
refreshGame();
refreshNext();

并在CSS中添加样式

/* 开始前 */
.none {width: 20px;height: 20px;position: absolute;box-sizing: border-box;background-color: #F2FAFF;
}/* 用户显示 */
.current {width: 20px;height: 20px;position: absolute;box-sizing: border-box;background-color: pink;border: 1px solid red;
}/* 落下来后 */
.done {width: 20px;height: 20px;position: absolute;box-sizing: border-box;background-color: gray;border: 1px solid black;
}

在这里插入图片描述


http://www.ppmy.cn/news/475455.html

相关文章

十二、俄罗斯方块代码拆分

将主要代码进行拆分如下&#xff1a; bf_button.py 上一章中提到的不用图片自己制作的按钮控件 globals.py 一些全局变量 matrix.py 自己定义的矩阵类 controls.py 游戏界面上的一些控件元素 block_manage.py 各类方块的定义和游戏方块的管理 players.py 各类玩家的定义 single…

单机版火拼俄罗斯方块源程序

发表日期&#xff1a;2005年11月12日 已经有3587位读者读过此文 /*这是我在参考别人的的俄罗斯方块的基础上&#xff0c;写的一个单机版火拼俄罗斯方块源程序&#xff0c;*//*如果有须要下载可到www.jxnczyp.ys168.com中的个人小程序中下载己编译好的程序*//*如果想自己…

基于java的俄罗斯方块小游戏设计(含源文件)

欢迎添加微信互相交流学习哦&#xff01; 项目源码&#xff1a;https://gitee.com/oklongmm/biye 题 目 小游戏开发 摘 要 俄罗斯方块是我们最常见的游戏之一&#xff0c;该游戏出现过在掌上游戏机、家用游戏机、手机游戏和电脑游戏中&#xff0c;因此俄罗斯方…

Qt做的俄罗斯方块游戏

最近一直在用Qt折腾一个简单的俄罗斯方块游戏&#xff0c;期间断断续续经过将近一个月的折腾&#xff0c;终于完成啦&#xff0c;挂在这里&#xff0c;供大家评阅&#xff0c;第一次做游戏&#xff0c;肯定会有很多的不足之处&#xff0c;希望大家指正。 其实做这个游戏主要是…

回归前端学习第26天-实现俄罗斯方块小游戏9(实现单机版,一个计时带干扰的单机版俄罗斯方块小游戏完成)

最终完善单机版俄罗斯方块小游戏&#xff0c;增加干扰功能——每10秒增加一行 增加干扰功能game.js中加入addBotLine函数local.js中加入 增加干扰功能 game.js中加入addBotLine函数 // 底部增加行var addBotLine function (lines) {for (var i0; i<gameData.length - lin…

JSP版俄罗斯发方块+用户积分排行榜

一、游戏截图 二、查看所有成绩 三、技术原理&#xff1a; 学习过程是循序渐进的&#xff1a; 1.俄罗斯方块第1版&#xff1a;能移动&#xff0c;能接收按键&#xff0c;刷新画面。 https://blog.csdn.net/weixin_42644456/article/details/103080277 2.俄罗斯方块第2版&am…

阿里云1分钟部署经典小游戏(2048,Flappy Bird,俄罗斯方块,超级马里奥)

简介 场景指导您通过Serverless应用引擎SAE实现开箱即用、快速部署经典小游戏&#xff0c;包括2048、俄罗斯方块、超级马里奥和Flappy Bird。 必读实验说明&#xff08;总结&#xff0c;云产品需收费&#xff09; SLB起充100 可提现 按照操作文档&#xff0c;完成所有任务&…

H5 游戏 俄罗斯方块 双人互动游戏

最近在慕课网上看到了一个课程是关于俄罗斯方块的。用到了socket.io 做双屏互动的游戏。正好最近在看websocket所以就把整个课程看完了&#xff0c;感觉很有意思&#xff0c;这里用一篇文章仔细的分析下这个游戏的制作思路。 实际在操作的时候&#xff0c;对方游戏区域会同步对…