HTML5小游戏——看你有多色

使用了封装了canvas的create.js库来实现的。

最终效果:

工程:

Rect.js

/*
 *  方块类
 */
function Rect(n,color,specialColor){

    createjs.Shape.call(this);

    /**
     * 设置方块的类型
     */
    this.setRectType=function(type){
        this._RectType=type;
        switch(type){
            case 1:
                this.setColor(color);
                break;
            case 2:
                this.setColor(specialColor);
                break;
        }
    }

    /**
     * 获取方块的类型
     */
    this.getRectType=function(){
        return this._RectType;
    }

    /**
     * 设置方块的颜色+绘制方块
     */
    this.setColor=function(colorString){
        this.graphics.beginFill(colorString);
        this.graphics.drawRect(0,0,400/n-5,400/n-5);
        this.graphics.endFill();
    }

    //方块的默认类型是1
    this.setRectType(1);
}

Rect.prototype=new createjs.Shape();

seeColor.js

/**
 * 绘制舞台
 */

var stage=new createjs.Stage("gameView");
var gameView=new createjs.Container();
stage.addChild(gameView);

//var s=new createjs.Shape();
//s.graphics.beginFill("#00FF00");
//s.graphics.drawRect(0,0,100,100);
//s.graphics.endFill();

//gameView.addChild(s);

createjs.Ticker.setFPS(30);
createjs.Ticker.addEventListener("tick",stage);

//特殊的那个方块的容差
var diffDegree=30;
//n*n的矩阵
var n=2;
var maxN=7;

//在随机生成颜色的时候[0,500] [500,255*255*255]这两个区间内的颜色将被排除
var edgeColor=10;

function addRect(){

    //随机颜色
    var randR=Math.floor(Math.random()*255-edgeColor*2)+edgeColor;
    var randG=Math.floor(Math.random()*255-edgeColor*2)+edgeColor;
    var randB=Math.floor(Math.random()*255-edgeColor*2)+edgeColor;

    //特殊方块的颜色
    var specialR=randR-diffDegree>edgeColor?randR-diffDegree:randR+diffDegree;
    var specialG=randG-diffDegree>edgeColor?randG-diffDegree:randG+diffDegree;
    var specialB=randB-diffDegree>edgeColor?randB-diffDegree:randB+diffDegree;

    var color="rgb("+randR+","+randG+","+randB+")";
    var specialColor="rgb("+specialR+","+specialG+","+specialB+")";

    //特殊方块的位置
    var specialX=Math.floor(Math.random()*n);
    var specialY=Math.floor(Math.random()*n);

    //绘制所有方块
    for(var indexX=0;indexX<n;indexX++){
        for(var indexY=0;indexY<n;indexY++){
            var r=new Rect(n,color,specialColor);
            gameView.addChild(r);
            r.x=indexX;
            r.y=indexY;
            if(r.x==specialX && r.y==specialY){
                r.setRectType(2);
            }
            r.x=indexX*(400/n);
            r.y=indexY*(400/n);
            if(r.getRectType()==2){
                //点到特殊方块的时候重绘
                r.addEventListener("click",function(){
                    if(n<maxN){
                        ++n;
                    }
                    gameView.removeAllChildren();
                    addRect();
                });
            }
        }
    }
}

addRect();

index.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>See Color</title>
    </head>
    <body>

        <canvas id="gameView" width="400px" height="400px"></canvas>

<script type="text/javascript" src="js/easeljs-0.8.2.min.js"></script>
<script type="text/javascript" src="js/Rect.js"></script>
<script type="text/javascript" src="js/seeColor.js"></script>
    </body>
</html>

github下载地址:https://github.com/BenDanChen/seeColor

参考资料:

极客学院视频教程地址 http://www.jikexueyuan.com/course/167.html

create.js

英文站 http://createjs.com/

中文站 http://www.createjs.cc/

时间: 2024-08-27 09:31:50

HTML5小游戏——看你有多色的相关文章

突发奇想想学习做一个HTML5小游戏

前言: 最近一期文化馆轮到我分享了,分享了两个,一个是关于童年教科书的回忆,一个是关于免费电子书的.最后我觉得应该会不敌web,只能说是自己在这中间回忆了一下那个只是会学习的年代,那个充满梦想的年代.有人说如果一个人开始回忆童年的时候,那么他开始变老了,不知道是不是这样一个原因,我突然想起了很多以前的老朋友,开始想起了一些童年时期的玩伴.也就想做这样一款简单的游戏,也只是单纯的想回忆一下童年. 计划: 游戏其实很简单,我们把它叫着裤裆棋,又叫什么狗卵坨还是什么的,有些记忆模糊了,反正大致是这样子

js小游戏——看你能坚持多久

点击另存用到的图片. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" > <head

HTML5小游戏-火枪英雄

HTML5小游戏-火枪英雄

21款网页版html5小游戏源码

html5魅族创意的贪食蛇游戏源码下载 html5网页版打砖块小游戏源码下载 html5 3D立体魔方小游戏源码下载 html5网页版飞机躲避游戏源码下载 html5三国人物连连看游戏源码下载 js html5 2048数字游戏源码_2048网页版源码下载 html5盲打高手打飞字游戏下载_网页版英文打飞字游戏源码下载 jQuery flappy bird电脑版小游戏源码下载 网页版html5 3d俄罗斯方块游戏源码下载 jQuery html5迷宫游戏源码下载 html5网页游戏仿flappy

HTML5小游戏-绵羊快跑

用HTML5仿一款灵敏测试的flash小游戏程序 下载地址:http://www.huiyi8.com/divcss/<?php/**Author: Jamin* */if(substr_count($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip')){    ob_start('ob_gzhandler');}?><!DOCTYPE html><html><head><title>绵羊快跑</title>

HTML5小游戏源码收藏

html5魅族创意的贪食蛇游戏源码下载 html5网页版打砖块小游戏源码下载 html5 3D立体魔方小游戏源码下载 html5网页版飞机躲避游戏源码下载 html5三国人物连连看游戏源码下载 js html5 2048数字游戏源码_2048网页版源码下载 html5盲打高手打飞字游戏下载_网页版英文打飞字游戏源码下载 jQuery flappy bird电脑版小游戏源码下载 网页版html5 3d俄罗斯方块游戏源码下载 jQuery html5迷宫游戏源码下载 html5网页游戏仿flappy

HTML5小游戏-简单抽奖小游戏

换了新工作以后,专注前端开发,平常空闲时间也比较多,可以多钻研一下技术,写一下博客.最近在学习canvas,参考网上的slotmachine插件,用canvas实现了一个简单抽奖小游戏.        知识点 canvas绘制背景 canvas绘制图片 canvas绘制边框 canvas事件处理 canvas简单动画制作      步骤 1.准备好图片,首先是机器的外观.以及滚动的奖项图片,我一共准备了6种,奖项图片按照一定的规律命名,这样方便处理   2.准备好canvas画布,设置好基本的C

【ThreeJs】html5小游戏-SearchX

使用框架: 1.Threejs 游戏采用ThreeJs框架,使用它可以快速创建html5 3D应用,网址:http://threejs.org/ 2.threex.dynamictexture.js 可以说是ThreeJs的一个插件,可以动态在物体上显示文字.图片等信息,网址:http://learningthreejs.com/blog/2014/05/02/easy-to-use-dynamic-texture-to-write-text-in-your-3d-object-with-thr

半期考html5小游戏制作

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-