色盲游戏

HTML部分:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>色盲游戏</title>
</head>
<body>
<canvas id="gameView" width="400px" height="400px">
</canvas>
<script src="js/easeljs-0.7.1.min.js"></script>
<script src="js/Rect.js"></script>
<script src="js/app.js"></script>
</body>
</html>

主要是用canvas来画图。

JS部分:

/*app.js
*这里是先弄好一个容器gameView

var stage = new createjs.Stage("gameView");
createjs.Ticker.setFPS(30);//FPS:每秒钟填充图像的帧数
createjs.Ticker.addEventListener("tick", stage);
var gameView = new createjs.Container();
stage.addChild(gameView);

先尝试画一个正方形:

//这里实现了绘制一个红色正方形
var stage = new createjs.Stage("gameView");
var gameView = new createjs.Container();
stage.addChild(gameView);
var s = new createjs.Shape();
s.graphics.beginFill("#ff0000");
s.graphics.drawRect(0, 0, 100, 100);
s.graphics.endFill();

gameView.addChild(s);
createjs.Ticker.setFPS(30);//FPS:每秒钟填充图像的帧数
createjs.Ticker.addEventListener("tick", stage);

效果:

131931_Dssg_1990458.png

然后接下来就是继续做那个色盲游戏:

  1. 先设置正方形,分别是目标方块和其余方块:

function Rect (n, color, RectColor) {//n:有n平方个正方形,color:其余方块,RectColor:目标方块
	createjs.Shape.call(this);
	this.setRectType = function (type) {
		this._RectType = type;
		switch (type) {
			case 1:
				this.setColor(color);
				break;
			case 2:
				this.setColor(RectColor);//要点击的颜色
				break;
		}
	}
	this.setColor = function (colorString) {
		this.graphics.beginFill(colorString);
		this.graphics.drawRect(0, 0, 400/n-5, 400/n-5);
	}
	this.getRectType = function () {
		return this._RectType;
	}
	this.setRectType(1);
}

Rect.prototype = new createjs.Shape();

2.如何绘制在canvas里

var n = 2;//初始为2平方个(即4个)方块
function addRect () {
	//var cl = Math.random()*1000000;//随机一种颜色,但是要转换成Int类型
	var cl = parseInt(Math.random()*1000000);
	var color = "#" + cl;
	var rcl = parseInt(cl + 1000);
	var rectColor = "#" +rcl;
	var x = parseInt(Math.random()*n);//随机出现的位置
	var y = parseInt(Math.random()*n);
	for (var indexX = 0; indexX < n; indexX++) {
		for (var indexY = 0; indexY < n; indexY++) {
			var r = new Rect(n, color, rectColor);
			//var r = new Rect(n, color);
			gameView.addChild(r);
			r.x = indexX;
			r.y = indexY;
			if (r.x == x && r.y == y) {
				r.setRectType(2);
			}
			r.x = indexX * (400/n);
			r.y = indexY * (400/n);
			if (r.getRectType() == 2 ) {
				r.addEventListener("click", function () {
					if (n < 15) {
						++n;//边上出现到第16个就不再增加方块数量
					}
					gameView.removeAllChildren();//每点击目标方块,先把原来的所有图层都删去
					addRect();//然后再添加新图层,然后一直死循环下去。。。
				})
			}
		}
	}
}
addRect();



转载于:https://my.oschina.net/defore/blog/299254

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值