亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

抓住神經貓的學習與實踐

2024-04-27 15:11:24
字體:
來源:轉載
供稿:網友

最近學習了一款html小游戲叫抓住神經貓:

利用了createjs  api以及簡單的游戲邏輯完成的

頁面部分:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>圍住神經貓</title>    <script src="https://code.createjs.com/easeljs-0.7.1.min.js"></script>    <script src="../js/circle.js"></script></head><body><center><canvas width="800px" height="800px" id="gameView"></canvas></center><script src="../js/myCat.js"></script><button onclick="javascript:window.location.reload()">再來一次</button></body></html>圓類:
/** * Created by gjq on 2017/2/7. */function circle(){    createjs.Shape.call(this);    this.setCircleType = function(type){        this._circleType = type;        switch (type){            case circle.TYPE_UNSELECTED:                this.setColor("#CCCCCC");                break;            case circle.TYPE_SELECTED:                this.setColor("#FF6600");                break;            case circle.TYPE_CAT:                this.setColor("#112233");                break;        }    }    /*設置圓的顏色*/    this.setColor = function (colorString){        this.graphics.beginFill(colorString);        this.graphics.drawCircle(0,0,25);        this.graphics.endFill();    }    this.getCircleType = function(){        return this._circleType;    }    this.setCircleType(1);}circle.PRototype = new createjs.Shape();circle.TYPE_UNSELECTED = 1;circle.TYPE_SELECTED = 2;circle.TYPE_CAT = 3;邏輯部分js

/** * Created by gjq on 2017/2/7. */var stage = new createjs.Stage("gameView");createjs.Ticker.setFPS(100);//設置幀數createjs.Ticker.addEventListener("tick",stage);//添加監聽事件/*創建圓*/var gameView = new createjs.Container();stage.addChild(gameView);gameView.x = 30;gameView.y = 30;var circleArr = [[],[],[],[],[],[],[],[],[]];var currentCat;var MOVE_NONE = -1, MOVE_LEFT = 0, MOVE_UP_LEFT = 1, MOVE_UP_RIGHT = 2, MOVE_RIGHT = 3, MOVE_DOWN_RIGHT = 4, MOVE_DOWN_LEFT = 5;function getMoveDir(cat) {//方向    var distanceMap = [];    //left    var can = true;    for (var x = cat.indexX; x >= 0; x--) {        if (circleArr[x][cat.indexY].getCircleType() == circle.TYPE_SELECTED) {            can = false;            distanceMap[MOVE_LEFT] = cat.indexX - x;//左邊可以動區域            break;        }    }    if (can) {        return MOVE_LEFT;    }    //left up    can = true;    var x = cat.indexX, y = cat.indexY;    while (true) {        if (circleArr[x][y].getCircleType() == circle.TYPE_SELECTED) {            can = false;            distanceMap[MOVE_UP_LEFT] = can.indexY - y;            break;        }        if (y % 2 == 0) {            x--;        }        y--;        if (y < 0 || x < 0) {//出界            break;        }    }    if (can) {        return MOVE_UP_LEFT;    }    //right up    can = true;    x = cat.indexX;    y = cat.indexY;    while (true) {        if (circleArr[x][y].getCircleType() == circle.TYPE_SELECTED) {            can = false;            distanceMap[MOVE_UP_RIGHT] = can.indexY - y;            break;        }        if (y % 2 == 1) {//單雙行            x++;        }        y--;        if (y < 0 || x > 8) {//出界            break;        }    }    if (can) {        return MOVE_UP_RIGHT;    }    //right    can = true;    for (var x = cat.indexX; x < 9; x++) {        if (circleArr[x][cat.indexY].getCircleType() == circle.TYPE_SELECTED) {            can = false;            distanceMap[MOVE_RIGHT] = x - cat.indexX;            break;        }    }    if (can) {        //  alert(cat.indexX);        return MOVE_RIGHT;    }    //right down    can = true;    x = cat.indexX;    y = cat.indexY;    while (true) {        if (circleArr[x][y].getCircleType() == circle.TYPE_SELECTED) {            can = false;            distanceMap[MOVE_DOWN_RIGHT] = cat.indexY;            break;        }        if (y % 2 == 1) {            x++;        }        y++;        if (y > 8 || x > 8) {            break;        }    }    if (can) {        return MOVE_DOWN_RIGHT;    }    //left down    can = true;    x = cat.indexX;    y = cat.indexY;    while (true) {        if (circleArr[x][y].getCircleType() == circle.TYPE_SELECTED) {            can = false;            distanceMap[MOVE_DOWN_LEFT] = y - cat.indexY;            break;        }        if (y % 2 == 0) {            x--;        }        y++;        if (y > 8 || x < 0) {            break;        }    }    if (can) {        return MOVE_DOWN_LEFT;    }    /*處理6個方向都有東西的情況*/    var maxDir = -1,maxValue = -1;    for(var dir = 0;dir<distanceMap.length;dir++){        if(distanceMap[dir]>maxValue){//還有路可走            maxValue = distanceMap[dir];            maxDir = dir;        }    }    if(maxValue>1){        return maxDir;    }else{        return MOVE_NONE;    }}function circleClicked(e) {    if (e.target.getCircleType() == circle.TYPE_UNSELECTED) {//空的點        e.target.setCircleType(circle.TYPE_SELECTED);    }else{        return;//不再運行,等待下次點擊    }    if (currentCat.indexX == 0 || currentCat.indexX == 8 || currentCat.indexY == 0 || currentCat.indexY == 8) {//邊界        alert("你輸了貓跑了.");        window.location.reload();        return;    }    var dir = getMoveDir(currentCat);    switch (dir) {        case MOVE_LEFT:            currentCat.setCircleType(circle.TYPE_UNSELECTED);            currentCat = circleArr[currentCat.indexX - 1][currentCat.indexY];            currentCat.setCircleType(circle.TYPE_CAT);            break;        case MOVE_UP_LEFT:            currentCat.setCircleType(circle.TYPE_UNSELECTED);            currentCat = circleArr[currentCat.indexY%2?currentCat.indexX:currentCat.indexX - 1][currentCat.indexY-1];            currentCat.setCircleType(circle.TYPE_CAT);            break;        case MOVE_UP_RIGHT:            currentCat.setCircleType(circle.TYPE_UNSELECTED);            currentCat = circleArr[currentCat.indexY%2?currentCat.indexX+1:currentCat.indexX][currentCat.indexY-1];            currentCat.setCircleType(circle.TYPE_CAT);            break;        case MOVE_RIGHT:            currentCat.setCircleType(circle.TYPE_UNSELECTED);            currentCat = circleArr[currentCat.indexX+1][currentCat.indexY];            currentCat.setCircleType(circle.TYPE_CAT);            break;        case MOVE_DOWN_RIGHT:            currentCat.setCircleType(circle.TYPE_UNSELECTED);            currentCat = circleArr[currentCat.indexY%2?currentCat.indexX+1:currentCat.indexX][currentCat.indexY+1];            currentCat.setCircleType(circle.TYPE_CAT);            break;        case MOVE_DOWN_LEFT:            currentCat.setCircleType(circle.TYPE_UNSELECTED);            currentCat = circleArr[currentCat.indexY%2?currentCat.indexX:currentCat.indexX-1][currentCat.indexY+1];            currentCat.setCircleType(circle.TYPE_CAT);            break;        default :            alert("你贏了,抓住了貓.");            window.location.reload();    }   /*簡單貓    var leftCircle = circleArr[currentCat.indexX - 1][currentCat.indexY];//左    var rightCircle = circleArr[currentCat.indexX + 1][currentCat.indexY];//右    var leftTopCircle = circleArr[currentCat.indexX - 1][currentCat.indexY - 1];//左上    var rightTopCircle = circleArr[currentCat.indexX][currentCat.indexY - 1];//右上    var leftBottomCircle = circleArr[currentCat.indexX-1][currentCat.indexY + 1];//左下    var rightBottomCircle = circleArr[currentCat.indexX][currentCat.indexY + 1];//右下    if(leftCircle.getCircleType() == 1){        leftCircle.setCircleType(3);        currentCat.setCircleType(1);        currentCat = leftCircle;    }else if(rightCircle.getCircleType() == 1){        rightCircle.setCircleType(3);        currentCat.setCircleType(1);        currentCat = rightCircle;    }else if(leftTopCircle.getCircleType() == 1){        leftTopCircle.setCircleType(3);        currentCat.setCircleType(1);        currentCat = leftTopCircle;    }else if(rightTopCircle.getCircleType() == 1){        rightTopCircle.setCircleType(3);        currentCat.setCircleType(1);        currentCat = rightTopCircle;    }else if(leftBottomCircle.getCircleType() == 1){        leftBottomCircle.setCircleType(3);        currentCat.setCircleType(1);        currentCat = leftBottomCircle;    }else if(rightBottomCircle.getCircleType() == 1){        rightBottomCircle.setCircleType(3);        currentCat.setCircleType(1);        currentCat = rightBottomCircle;    }else{        alert("你贏了,游戲結束");    }*/}function addCircles(){    for(var indexY = 0;indexY < 9;indexY++){        for(var indexX = 0;indexX < 9;indexX++) {            var c = new circle();            gameView.addChild(c);            circleArr[indexX][indexY] = c;            c.indexX = indexX;            c.indexY = indexY;            c.x = indexY%2?indexX*55+25:indexX * 55;            c.y = indexY * 55;            /*繪制貓*/            if(indexX===4&&indexY===4){                c.setCircleType(circle.TYPE_CAT);                currentCat = c;            }else if(Math.random()<0.1){                c.setCircleType(circle.TYPE_SELECTED);            }            c.addEventListener("click",circleClicked);        }    }}addCircles();


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品国亚洲| 国产69久久精品成人看| 亚洲欧美自拍一区| 欧美在线视频观看免费网站| 久久久免费精品| www.日韩系列| 91中文在线视频| 91亚洲国产成人精品性色| 色偷偷av亚洲男人的天堂| 国产精国产精品| 久久成人av网站| 久久成人这里只有精品| 欧洲成人午夜免费大片| 亚洲精品久久久久中文字幕欢迎你| 久久人人爽国产| 欧美午夜精品久久久久久浪潮| 国产91色在线|| 国产成人精品在线播放| 狠狠操狠狠色综合网| 国产999视频| 亚洲影院高清在线| 国产精品久久久久久久午夜| 亚洲欧美精品一区| 亚洲va欧美va国产综合剧情| 日韩视频免费观看| 欧美最顶级的aⅴ艳星| 亚洲一区二区三区四区在线播放| 国产欧美日韩最新| 国产精品无码专区在线观看| 久久伊人精品天天| 午夜精品久久久久久久久久久久久| 成人在线播放av| 欧美中在线观看| 亚洲人精选亚洲人成在线| 色噜噜狠狠狠综合曰曰曰88av| 97视频在线观看视频免费视频| 亚洲va欧美va在线观看| 欧美男插女视频| 欧美精品激情在线观看| 成人免费黄色网| 亚洲精品中文字幕女同| 欧美大尺度电影在线观看| 一区二区三区精品99久久| 国产精品精品久久久久久| 中国china体内裑精亚洲片| 国产精品网站大全| 国产在线精品成人一区二区三区| 久久香蕉频线观| 久久精品国产一区| 日韩成人激情在线| 国产精品九九九| 欧美洲成人男女午夜视频| 亚洲高清免费观看高清完整版| 亚洲乱亚洲乱妇无码| 亚洲xxxxx电影| 日韩国产激情在线| 日韩精品视频观看| 97香蕉超级碰碰久久免费软件| 久久精品久久久久久国产 免费| 日韩精品免费电影| 国产精品久久久久久久久免费看| 欧美激情在线观看视频| 日韩高清av一区二区三区| 日韩免费观看高清| 久久99久久99精品中文字幕| 国产日韩欧美日韩大片| 亚洲一区二区三区四区视频| 91精品视频免费看| 久久久综合免费视频| 国产精品久久久久久搜索| 亚洲成人黄色网| 欧美三级免费观看| 在线看片第一页欧美| 欧美一区二区三区……| 精品视频久久久久久久| 精品国产依人香蕉在线精品| 92福利视频午夜1000合集在线观看| 亚洲第一视频网站| 成人国产精品久久久久久亚洲| 成人激情在线观看| 91精品在线影院| 欧美多人爱爱视频网站| 亚洲天堂久久av| 亚洲人成啪啪网站| 久久不射热爱视频精品| 欧美重口另类videos人妖| 国产精品自拍偷拍| 日本久久久a级免费| 欧美亚洲在线播放| 国模精品视频一区二区三区| 红桃视频成人在线观看| 亚洲奶大毛多的老太婆| 欧美黄色片在线观看| 亚洲国产三级网| 国产在线精品一区免费香蕉| 欧美激情videos| 国产成人精品视频在线| 亚洲国产私拍精品国模在线观看| 国产精品视频自拍| 国产精品久久电影观看| 日韩欧美国产中文字幕| 91午夜理伦私人影院| 91高清视频免费观看| 岛国精品视频在线播放| 精品国产老师黑色丝袜高跟鞋| 欧美一级免费视频| 日韩欧美高清在线视频| 国产精品视频26uuu| 在线观看国产成人av片| 久久精品最新地址| 亚洲国产日韩欧美在线动漫| 久久久免费观看视频| 欧美精品xxx| 国产69精品久久久久99| 国产精品第2页| 亚洲第一精品电影| 亚洲精品久久久久久久久久久| 成人av在线亚洲| 亚洲美女av在线| 国产精品美女久久| 日韩精品一二三四区| 伊人一区二区三区久久精品| 国产精品久久久久久久久久ktv| 国产精品久久一区| 成人精品一区二区三区| 亚州欧美日韩中文视频| 欧美剧在线观看| 欧美日韩另类视频| 国产精品黄色影片导航在线观看| 日韩精品免费视频| 亚洲国产精品女人久久久| 亚洲精品自拍第一页| 国产亚洲免费的视频看| 一区二区三区视频免费| 色偷偷888欧美精品久久久| 欧美性高潮床叫视频| 日韩欧美一区二区三区久久| 亚洲免费中文字幕| 亚洲色图色老头| 久久中文字幕在线视频| 在线精品视频视频中文字幕| 亚洲欧美日韩国产成人| 亚洲色图第一页| 欧美日韩亚洲精品内裤| 亚洲va欧美va国产综合剧情| 亚洲欧洲一区二区三区久久| 亚洲护士老师的毛茸茸最新章节| 91精品久久久久久久久不口人| 亚洲人成亚洲人成在线观看| 欧美巨乳美女视频| 国产成人黄色av| 亚洲精品国产综合区久久久久久久| 国产精品久久国产精品99gif| 亚洲第一国产精品| 亚洲综合在线中文字幕| 伊人久久久久久久久久久| 91嫩草在线视频| 欧美日韩中文在线观看| 欧美网站在线观看| 亚洲欧美日韩在线一区| 欧美成人激情图片网| 亚洲人成网在线播放| 91九色蝌蚪国产| 91精品视频免费|