别踩白块JS代码实现

</pre><strong><span style="font-size:48px;">1.思路:</span><span style="font-size:24px; white-space: pre;">	</span><span style="font-size:24px;">1.创建DIV容器;例如:400*400</span><span style="font-size:24px; white-space: pre;">	</span><span style="font-size:24px;">2.创建4行DIV</span><span style="font-size:24px; white-space: pre;">	</span><span style="font-size:24px;">3.4行DIV中,再放4列DIV,float left</span><span style="font-size:24px; white-space: pre;">	</span><span style="font-size:24px;">4.写一个方法,创建4列子DIV,创建一行DIV,把一行四列,插入到容器中</span><span style="font-size:24px; white-space: pre;">	</span><span style="font-size:24px;">5.定时器,没30毫秒增加TOP值</span><span style="font-size:24px; white-space: pre;">	</span><span style="font-size:24px;">6.没往下滑100px时,再创建一行四列,插入在窗口的最前面。</span></strong><pre name="code" class="html">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<title>别踩白块</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="http://blog.csdn.net/u012989536"/>
<style>
	#main {
		width: 400px;
		height: 400px;
		border: 2px solid green;
		margin: 0 auto;
		position: relative;
		overflow: hidden;
	}

	#container {
		width: 100%;
		height: 400px;
		position: relative;
		top:-100px;
		background: white;
	}

	.row {
		width: 100%;
		height: 100px;
	}

	.cell {
		width: 100px;
		height: 100px;
		float:left;
	}

	.black {
		background: black;
	}

	#score {
		text-align: center;
	}
</style>
</head>
    <body>
    	<h1 id="score">0</h1>
    	<div id="main">
    		<div id="container"></div>
    	</div>
    </body>
    <script>
    	var clock = null; // 定时器操作句柄
    	var state = 0; // 0初始化,1进行中, 2 暂停, 3失败
    	var speed = 4;

    	/*
    	* 初始化
    	*/
    	function init() {
    		for(var i=0; i<4; i++) {
    			crow();
    		}

    		$('main').onclick = function (ev) {
    			judge(ev);
    		}
    	}

    	function judge(ev) {
    		if(state == 3) {
    			alert('失败者禁入');
    			return;
    		}
    		if(ev.target.className.indexOf('black') == -1) {

			} else {
				ev.target.className = 'cell';
				ev.target.parentNode.pass = 1;
				score();
    		}
    			//console.log(ev.target);
    	}

    	/*
    	* start() 启动
    	*/
    	function start(){
    		clock = window.setInterval('move()' , 40);
    	}

    	/*
    	* 动画
    	*/
    	function move() {
    		var con = $('container');
    		var top = parseInt(window.getComputedStyle(con , null)['top']);

    		if(speed + top > 0) { //一步会走过头,直接top=0
    			top = 0;
    		} else {
	    		top += speed; //调节每次下降的像素
    		}

    		con.style.top = top + 'px';

    		// 

    		if(top == 0) {
    			crow();
    			con.style.top = '-100px';
    			drow();
    		} else if(top == (-100 + speed)) {
    			//console.log(con.lastChild);
    			var rows = con.childNodes;
    			if( (rows.length == 5) && (rows[rows.length-1].pass !== 1)) {
    				fail();
    			}
    		}
    	}

    	/*
    	* 加速函数
    	*/
    	function jiasu() {
    		speed +=2;
    		if(speed == 20) {
    			alert('你的电脑太卡了');
    		}
    	}

    	/*
    	* 输,结束
    	*/
    	function fail() {
		    clearInterval(clock);
			state = 3;
			alert('结束');
    	}

    	/*
    	* 计分
    	*/
    	function score() {
    		var newscore = parseInt($('score').innerHTML)+1;
    		$('score').innerHTML = newscore;
    		if(newscore % 10 == 0) {
    			jiasu();
    		}
    	}

    	/*
    	* 创建div.row
    	*/
    	function crow(){
    		var con = $('container');
    		var row = cdiv('row');
    		var classes = createSn();

    		for(var i=0; i<4; i++) {
    			row.appendChild(cdiv(classes[i]));
    		}

    		if(con.firstChild == null) {
    			con.appendChild(row);
    		} else {
    			con.insertBefore(row , con.firstChild);
    		}
    	}

    	/*
    	* 删除最后一行
    	*/
    	function drow(){
    		var con = $('container');
    		if(con.childNodes.length == 6) {
	    		con.removeChild(con.lastChild);
    		}
    	}

    	/**
    	* 创建div,className是其类名
    	*/
    	function cdiv(className) {
    		var div = document.createElement('div');
    		div.className = className;
    		return div;
    	}

    	/**
    	* 返回1个数组,随机其中1个单元,值为'cell black',其他3个,皆为cell
    	**/
    	function createSn() {
    		var arr = ['cell','cell','cell','cell'];
    		var i = Math.floor(Math.random()*4);
    		arr[i] = 'cell black';

    		return arr;
    	}

    	/*
    	* 按id获取对象
    	*/
    	function $(id) {
    		return document.getElementById(id);
    	}

    	init();
    	start();

    </script>
</html>

效果展示

时间: 2024-10-25 19:13:09

别踩白块JS代码实现的相关文章

JS实现别踩白块小游戏

最近有朋友找我用JS帮忙仿做一个别踩白块的小游戏程序,但他给的源代码较麻烦,而且没有注释,理解起来很无力,我就以自己的想法自己做了这个小游戏,主要是应用JS对DOM和数组的操作. 程序思路:如图:将游戏区域的CSS设置为相对定位.溢出隐藏;两块“游戏板”上分别排布着24块方格,黑色每行随机产生一个,“游戏板”向下滚动并交替显示,将每个操作板的黑块位置存入数组,每次点击时将数组pop出来进行比对(我觉得亮点在这……). 这里是游戏的GitHub地址,大家可以到里点击中部菜单最右边的的Downloa

JS游戏–别踩白块–教学视频

[布尔教育 PHP就业班 课堂案例 ] 玩游戏,不如自己写游戏! 打开浏览器,打开编辑器(sublime,editplus,notepad都行), 花上2个小时,写个"别踩白块"玩一玩. JS游戏_别踩白块(1) 思路分析.wmv JS游戏_别踩白块(2) 框架搭建.wmv JS游戏_别踩白块(3) 之随机黑白块.wmv JS游戏_别踩白块(4) 方块动起来.wmv JS游戏_别踩白块(5) 方块无缝滚动.wmv JS游戏_别踩白块(6) 得分.wmv JS游戏_别踩白块(7) 犯规处

GameBuilder开发游戏应用系列之100行代码实现别踩白块

在线预览:http://osgames.duapp.com/apprun.html?appid=osgames1-961421749977376 在线编辑:http://osgames.duapp.com/gamebuilder.php?appid=osgames1-961421749977376 微信扫描: 游戏截图: 别踩白块是一款非常流行的游戏,该游戏于2014年4月16日上线App Store.并在全球40多个国家.地区免费游戏榜登顶榜首[4] ,超过一百个国家或地区排名前十 ,5月份荣

jquery之别踩白块游戏的实现

转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5687112.html 前端学习要告一段落了,也没机会写什么像样的东西,然后无意中想起某人以前给我玩了一下别踩白块的游戏,手残还被嘲讽了下,现在想起来觉得这游戏实现起来也不难,于是上星期用jquery写了一个别踩白块的小游戏,就像当初学python的时候一样写了一个2048.然后今天正好抽个时间写个博客纪录下,算是对前一段时间学习的总结,没有玩过的可以去下一个原版的来玩一下,游戏很简单,就是从不断下落的方块中点击黑

第一帖,发个网页版的别踩白块

index.html 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>别踩白块</title> 5 <script type="text/javascript" src="js/jquery.js"></script> 6 <script type="text/javascript" src="js/ini

别踩白块

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="css/game.css"/> </head> <body> <div class="gr

游戏——网页版别踩白块

一 项目简介 主要知识点:JavaScript.HTML.CSS这是一个主要用JS实现的网页版小游戏,游戏规则很简单,通过点击不断下落的黑块来消灭它并获取分数,如果不幸黑块掉落下来或点到了白色区域那么游戏就会终止.游戏截图如下: 二 游戏框架 整个游戏可分为以下几个步骤实现:1. HTML和CSS画出静态的游戏框架:2. DOM结构说明:游戏元素使用嵌套的div元素来实现,是一个4*4的方格地图:最外层容器main(一个) > 次外层容器container(一个) > 行容器row(四行) &

小游戏--别踩白块

有图有真相,先上图再说 照旧贴出代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>别踩白块</title> <style type="text/cs

2015-03-27---cocos2dx别踩白块

今天博主总算沉下心来写了些代码,今天开始写别踩白块,写出来个大概能点的程序了,现在白块能点,也能自动销毁,就是随机数生成算法还是有一点问题,还有没有判断结束,等明天把这些完善完善继续学习cocos2dx,然后,预计过几天开始项目训练. 今天照常学车,而且明天还要去,所以今天当然要早点睡觉啦,我去刷牙,然后明天继续练车,加油啦,哈哈. 等明天如果程序写出来了,把源代码共享出来