别踩白块儿游戏代码html,别踩白块儿.html · 知足常乐大哥哥/not-step-on-white-block - Gitee.com...
#score {
position: absolute;
top: 450px;
left: 100px;
font-size: 30px;
}
得分: 0
var canvas = document.createElement('canvas')
var ctx = canvas.getContext('2d')
// 水印canvas
var canvas2 = document.createElement('canvas')
var ctx2 = canvas2.getContext('2d')
// 定义变量
var w = 100
var blocks = []
var flag = false
var speed = 2
var num = 0
var requestId = 0
canvas.width = 100 * 3
canvas.height = 100 * 4
canvas.style.border = '5px solid black'
canvas2.width = 100 * 3
canvas2.height = 100 * 4
canvas2.style.border = '5px solid black'
canvas2.style.position = 'absolute'
canvas2.style.left = '9px'
canvas2.style.top = '9px'
document.body.appendChild(canvas)
document.body.appendChild(canvas2)
// 计分栏
var score = document.querySelector('#score')
draw_line()
ready_game()
// 游戏结束
function game_over() {
alert('游戏结束,请重新开始!')
ready_game()
}
// 动画
function animate() {
ctx.clearRect(0, 0, canvas.width, canvas.height)
ctx.fillStyle = 'black'
blocks.forEach(function (val, index) {
ctx.fillRect(val.x, val.y += speed, w, w)
// if (val.y > canvas.height) {
// blocks.splice(index, 1)
// }
})
if (blocks.length === 0) {
ctx.fillStyle = 'black'
var x = ~~(Math.random() * 3) * w
var obj = { x: x, y: -100 }
ctx.fillRect(obj.x, obj.y, w, w)
blocks.unshift(obj)
addClick_event(obj)
}
if (blocks[0].y > 0) {
ctx.fillStyle = 'black'
var x = ~~(Math.random() * 3) * w
var obj = { x: x, y: -100 }
ctx.fillRect(obj.x, obj.y, w, w)
blocks.unshift(obj)
addClick_event(obj)
}
speed = num / 10 + 2
requestId = requestAnimationFrame(animate)
if (blocks[blocks.length - 1].y >= canvas.height) {
// 结束动画
cancelAnimationFrame(requestId)
game_over()
}
}
// 开始游戏
function start_game() {
blocks.pop()
num++
score.textContent = '得分: ' + num
flag = true
animate()
}
// 方块移动
function destroy_block(e) {
if (!flag) return
var cli_x = e.x, cli_y = e.y
blocks.forEach(function (val, index) {
if (cli_x > val.x && cli_x < val.x + w && cli_y > val.y && cli_y < val.y + w) {
if (index === blocks.length - 1) {
blocks.pop()
num++
score.textContent = '得分: ' + num
}
}
})
}
// 在指定位置添加click事件
function addClick_event(obj) {
canvas2.addEventListener('click', function (e) {
var cli_x = e.x - 10
var cli_y = e.y - 10
if (cli_x > obj.x && cli_x < obj.x + w && cli_y > obj.y && cli_y < obj.y + w && obj.flag && !flag) {
start_game()
} else destroy_block(e)
})
}
// 准备开始游戏
function ready_game() {
blocks = []
flag = false
speed = 2
num = 0
ctx.clearRect(0, 0, canvas.width, canvas.height)
score.textContent = '得分: ' + num
ctx.fillStyle = 'black'
var x = 0
for (var i = 0; i < canvas.height; i += w) {
x = ~~(Math.random() * 3) * w
var obj = { x: x, y: i }
ctx.fillRect(x, i, w, w)
if (i == 300) {
ctx.fillStyle = 'white'
ctx.font = '20px consolas'
ctx.fillText('开始游戏', x + 10, i + w / 2)
obj.flag = true
}
addClick_event(obj)
blocks.push(obj)
}
}
// 划线
function draw_line() {
ctx.strokeStyle = 'black'
for (var i = w; i < canvas.height; i += w) {
ctx.moveTo(0, i)
ctx.lineTo(canvas.width, i)
ctx.stroke()
}
for (var i = w; i < canvas.width; i += w) {
ctx.moveTo(i, 0)
ctx.lineTo(i, canvas.height)
ctx.stroke()
}
ctx2.drawImage(canvas, 0, 0, canvas.width, canvas.height)
}
一键复制
编辑
Web IDE
原始数据
按行查看
历史
别踩白块儿游戏代码html,别踩白块儿.html · 知足常乐大哥哥/not-step-on-white-block - Gitee.com...相关推荐
- python+opencv别踩白块儿游戏辅助,一天一个opencv小项目(已开源)
python+opencv别踩白块儿游戏辅助,一天一个opencv小项目(已开源) 见链接
- c语言别踩白块小游戏代码,自学easeljs 根据别踩白块游戏规则自己写的代码
主要基于 -------easeljs-0.7.1.min.js----- 去制作这个游戏 思路:主要思路是以行为单位 绑定可点击行 选中则讲 移动最外层容器继续绑定可点击行的下一行 ...
- C语言项目实战:《别踩白块游戏》零基础项目,137 行源代码示例
这篇文章主要为大家详细介绍了C语言实现--<别踩白块游戏>,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下! 游戏介绍: <别踩白块儿 Don't Ta ...
- 2cocos2dx别踩白块游戏案例
1 建立一个别踩白块的项目dtwb(Don'ttouch white block) 2 修改main.cpp中的代码 3 修改AppDelegate.cpp中的代码 4 案例代码 Block.h ...
- CSS和js和HTML一起做出网页版别踩白块游戏
CSS和js和HTML一起做出网页版别踩白块游戏 文章目录 CSS和js和HTML一起做出网页版别踩白块游戏 下面我们要用到的知识点: 页面布局 添加样式 游戏初始化 让黑块动起来 点击黑块事件 js ...
- 纯js 别踩白块游戏解析与源码
(一)别踩白块 1.考虑游戏中有哪些对象,属性和方法? 别踩白块游戏仔细想想如果非要对象的话,游戏显示界面可以算是一个对象,下滑的区域算一个对象(每个小方格算对象的属性对象吧) 2.这里主要要思 ...
- java别踩白块_jquery之别踩白块游戏的简单实现
前端学习要告一段落了,也没机会写什么像样的东西,然后无意中想起某人以前给我玩了一下别踩白块的游戏,手残还被嘲讽了下,现在想起来觉得这游戏实现起来也不难,于是上星期用jquery写了一个别踩白块的小游戏 ...
- JAVA中Robot类的运用,实现‘别踩白块’游戏辅助
Robot 一.功能分析 http://www.4399.com/flash/135255_3.htm 别踩白块游戏,运用Java Robot类完成游戏脚本,自动完成踩黑块. 二.设计思路 首先创建一 ...
- 笔记37 笨办法学python练习43面向对象OOP的游戏代码(二)代码的反复理解
笔记37 笨办法学python练习43面向对象OOP的游戏代码(二)代码的反复理解 连续贴着这个练习43的代码折腾了整整两天,把那些英文文本翻译为中文文本,重新装进这个代码之中.本想一段一段的运行,发 ...
- Laya小游戏上架Vivo平台踩坑记录(持续更新)
Laya小游戏上架Vivo平台踩坑记录(持续更新) 个人踩坑的一些记录,大佬留情! 一些快捷键: Ctrl+P 搜索脚本文件 Ctrl+Y 恢复操作 Ctrl+Z 撤回操作 Ctrl+F 搜索字段 C ...
最新文章
- 细节:js 创建对象的几种模式举例
- Code Valley团队拟在澳洲建立一座价值5000万美元的BCH科技园
- 利用SPRING管理热加载的GROOVY对象!
- 韩国讨论到 2020 年拥抱开源操作系统
- Educational Codeforces Round 107 (Rated for Div. 2) 题解
- 使用result配置结果视图
- 漫谈依赖管理工具:从Maven,Gradle到Go
- 2021SC@SDUSC——使用CUDA/GPU技术加速密码运算(一)
- 付费应用程序协议下载 苹果_苹果商店 付费app协议填写 apple苹果IOS内购申请教程协议、税务和银行业务配置...
- 华为云GaussDB技术创新持续发力,荣膺DTCC2021创新大奖
- L. Lifeguards(排序)
- 西门子PLC 冷启动、暖启动、热启动的一种通俗解释
- 打造百亿量级、亿级日活SDK的十大关键要点
- background背景色
- 计算机重启恢复系统怎么操作,电脑如何恢复出厂设置 电脑开机怎么一键还原...
- Springboot工程logback和log4j冲突问题的解决。
- python 检查代码规范,类型标注
- 高校实验室综合管理系统:建立一个安全、智慧、规范的实验室
- 1年工作经验跳槽项目总监,看到他的数据可视化报表,我沉默了
- 清华最强本科毕业生Top10出炉,从来没有什么天才学霸!