寻找金馆长canvas小游戏
2017-07-26 21:53
204 查看
<!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>
<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>
相关文章推荐
- 一个简单的基于canvas小游戏
- 分享一个比较简单的canvas+js 飞翔的小鸟小游戏
- Canvas基础7--小游戏练习--解题游戏
- javacscript+canvas小游戏-左右手锻炼大法。。
- javascript+canvas实现Go To The Moon小游戏
- javascript+canvas实现小游戏-贪吃蛇
- 使用canvas绘制见缝插针小游戏Hello_yihao的博客
- 见缝插针 一个canvas小游戏
- 基于Canvas的小游戏游戏
- 【JS】js学习笔记之用canvas制作打砖块小游戏(未完成)
- HTML5 Canvas 射击类小游戏 平滑的移动 思路
- Canvas学习,利用业余时间写了个小游戏,俄罗斯方块
- 5、Cocos2dx 3.0小游戏开发的例子寻找测试三个简单的介绍和总结
- 『教程』微信小游戏开发(教程+Demo+跳坑)canvas
- 如何开发一个简单的HTML5 Canvas 小游戏
- Canvas 类库ZRender开发的接水果的小游戏
- Canvas小游戏里,删除过期或者死亡元素技巧
- [原] html5 canvas 贪吃蛇小游戏~~
- 尝试用canvas写小游戏
- 【开源】微信小程序、小游戏以及 Web 通用 Canvas 渲染引擎 - Cax