寻找金馆长canvas小游戏


<!DOCTYPE html>


<html>


<head>
<meta charset="UTF-8">
<title></title>
<style>
* {
margin: 0;
padding: 0;
}

canvas {
display: block;
border: 1px solid black;
margin: 0 auto;
}
</style>
</head>


<body>
<canvas id="canvas" width="640"></canvas>
</body>


<script type="text/javascript">
//制图环境
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext('2d');


var flag = 0;
var All = null;


All = new AllCanvas(0, 0, 4, 1, 1);


function AllCanvas(x, y, padding, lineX, listY) {
this.x = x;
this.y = y;
this.padding = padding;
this.lineX = lineX;
this.listY = listY;
}


function CreateObj(flag) {
// debugger;
this.img = oldImg;
this.x = 0;
this.y = 0;
this.flag = flag ? flag : this.__proto__.flag;
this.width = canvas.width / All.lineX;
this.height = canvas.height / All.listY;
this.draw = function() {
ctx.drawImage(this.img, this.x, this.y, this.width, this.height);
}
}


CreateObj.prototype = {
flag: false
}


var oldImg = new Image();
oldImg.src = 'img/20171228122922059-6208.png';


var newImg = new Image();
newImg.src = 'img/532202764966532363.jpg';
var newImgX = 0,
newImgY = 0;
window.onload = function() {


for(var i = 0; i < All.lineX; i++) {
for(var j = 0; j < All.listY; j++) {
var obj = new CreateObj();
obj.img = newImg;
obj.x = All.x + obj.width * j;
obj.y = All.y + obj.height * i;
obj.draw();
}
}


function judeg() {
if(flag != 0) {
var random = parseInt(Math.random() * (All.lineX * All.listY));
var m = 0;
All = new AllCanvas(0, 0, 4, 1 + flag, 1 + flag);
var x1 = (random) % All.lineX;
var y1 = parseInt(random / All.listY);


for(var i = 0; i < All.lineX; i++) {
for(var j = 0; j < All.listY; j++) {
// debugger;
m++;
var obj = new CreateObj();
if(m == random + 1) {
obj.img = newImg;
obj.newImgx = x1 * obj.width;
obj.newImgy = y1 * obj.height;
newImgX = obj.newImgx;
newImgY = obj.newImgy;
} else {
obj.img = oldImg;
}
obj.x = All.x + obj.width * j;
obj.y = All.y + obj.height * i;
obj.draw();
}
}
}
}


canvas.onclick = function(ev) {
var evt = ev || window.event;


var relativeCanvasX = evt.clientX - canvas.offsetLeft;
var relativeCanvasY = evt.clientY - canvas.offsetTop;
console.log(relativeCanvasX);
console.log(relativeCanvasY);


if(newImgX < relativeCanvasX && relativeCanvasX < newImgX + obj.width / All.lineX && newImgY < relativeCanvasY && relativeCanvasY < newImgY + obj.height / All.lineX) {
ctx.clearRect(0, 0, 640, canvas.height)
flag += 1;
judeg();
console.log(flag);
if(flag >= 20) {
flag = 20;
}
} else {
judeg();
}
}
}


initCanvasHeight();


window.onresize = function() {
initCanvasHeight();
}


function initCanvasHeight() {
//获取可视窗口的高
var bodyHeight = document.documentElement.clientHeight || document.body.clientHeight;
//设置canvas的宽、高
if(bodyHeight <= 722) {
bodyHeight = 722;
}
canvas.height = bodyHeight - 2;
}
</script>


</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值