小游戏别踩白块_html/css_WEB-ITnose
有图有真相,先上图再说
照旧贴出代码
<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>别踩白块</title> <style type="text/css"> html, body { height: 100%; font-size: 62.5%; } body, div, ul, li { padding: 0; margin: 0; } section { width: 100%; height: 100%; position: relative; } #container { position: absolute; top: -276px; padding: 0 20px; width: 100%; height: 1460px; background: #eee; } .row { margin-top: 30px; overflow: hidden; list-style: none; display: flex; } .col { flex: 1; margin-right: 3%; margin-bottom: 5px; height: 20rem; border-radius: 5px; border: 1px solid gray; box-shadow: 5px 5px 5px gray; background: #fff; } .col:last-child { margin: 0 5px 5px 0; } footer { position: fixed; bottom: 0; height: 28%; width: 100%; text-align: center; font: bold 5rem/100px "microsoft yahei"; background: gray; } .action { width: 300px; height: 100px; font-size: inherit; } .black { background: #000; } </style></head><body> <section> <div id="container"></div> </section> <footer> <button class="action" onclick="star()">Action</button> <div class="level">第<span id="chapter">1</span>关</div> <div class="score">您的总分是:<span id="num">0</span></div> </footer> <script> //设置定时器操作句柄 var clock = null; //设置游戏状态 0:游戏进行中 1:游戏暂停 2:游戏失败 var state = 0; //设置游戏速度,默认速度为2 var speed = 2; //根据id获取元素 function $(id) { return document.getElementById(id); } //创建div function createDiv(className) { var div = document.createElement("div"); div.className = className; return div; } //创建row function createRow() { var con = $("container"); var row = createDiv("row"); var classes = createBlank(); for (var i = 0; i < 4; i++) { row.appendChild(createDiv(classes[i])); } //判断container内是否有子元素 if (con.firstChild == null) { con.appendChild(row); } else { con.insertBefore(row, con.firstChild) } } //创建随机黑块 function createBlank() { var arr = ['col', 'col', 'col', 'col']; var i = Math.floor(Math.random() * 4); arr[i] = 'col black'; return arr; } //向下滑动动画 function move() { var con = $("container"); var top = parseInt(window.getComputedStyle(con, null)["top"]); if (speed + top > 0) { //如果一步走过头,则强制top等于零 top = 0; } else { top += speed; } con.style.top = top + "px"; //如果最上的块完全掉下来时top==0,此时需在这行上追加一行 if (top == 0) { createRow(); con.style.top = "-23rem"; var rows = con.children; if ((rows.length == 5) && (rows[rows.length - 1].pass != 1)) { fail(); } else { deleteRow(); } } } //加速函数 function accelerate() { speed += 2; if (speed == 20) { alert("饶了我吧,你的电脑太卡了!"); } } //删除最后一行 function deleteRow() { var con = $("container"); con.removeChild(con.lastChild); } //动画开始 function star() { clock = window.setInterval('move()', 10); } //点击黑块颜色变白 $("container").onclick = function(event) { judge(event); } //判断是成功还是失败 function judge(event) { if (state == 2) { alert("游戏失败,请重新开始!"); gameInit(); return; } if (event.target.className.indexOf("black") == -1) { fail(); } else { event.target.className = "col"; event.target.parentNode.pass = 1; score(); } } //游戏失败或结束 function fail() { clearInterval(clock); state = 2; alert("游戏失败,请重新开始!"); var con = $("container"); con.style.top = "-276px"; gameInit(); } //游戏初始化 function gameInit() { var con = $("container"); var childNum = con.children.length; for (var i = 0; i < childNum; i++) { deleteRow(); } init(); $('num').innerHTML = 0; state = 0; } //页面初始化 function init() { for (var i = 0; i < 4; i++) { createRow(); } } //计分 function score() { var newScore = parseInt($('num').innerHTML) + 1; var newChpater = parseInt($('chapter').innerHTML) + 1 $('num').innerHTML = newScore; if (newScore % 20 == 0) { $("chapter").innerHTML = newChpater; accelerate(); } } init(); </script></body></html>
玩了几次,感觉还不错!其实早就想做这个游戏了,苦于没思路。现参考网上教程,终于解决了。
希望大家可以试着玩玩,若有BUG,请留言。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex

기사는 HTML5 크로스 브라우저 호환성을 보장하기위한 모범 사례에 대해 논의하고 기능 감지, 점진적 향상 및 테스트 방법에 중점을 둡니다.

이 기사는 모바일 장치의 반응 형 웹 디자인에 필수적인 Viewport Meta Tag에 대해 설명합니다. 적절한 사용이 최적의 컨텐츠 스케일링 및 사용자 상호 작용을 보장하는 방법을 설명하는 반면, 오용은 설계 및 접근성 문제로 이어질 수 있습니다.

이 기사는 html5 & lt; time & gt; 시맨틱 날짜/시간 표현 요소. 인간이 읽을 수있는 텍스트와 함께 기계 가독성 (ISO 8601 형식)에 대한 DateTime 속성의 중요성을 강조하여 Accessibilit를 향상시킵니다.

이 기사에서는 브라우저에서 직접 사용자 입력을 검증하기 위해 필요한, Pattern, Min, Max 및 Length 한계와 같은 HTML5 양식 검증 속성을 사용하는 것에 대해 설명합니다.

이 기사는 & lt; iframe & gt; 외부 컨텐츠를 웹 페이지, 공통 용도, 보안 위험 및 객체 태그 및 API와 같은 대안을 포함시키는 태그의 목적.
