简阳个人貸款是不是真的呢?加 我532999855求助; 急盼,

AppStore和Android市场情况

莫名其妙爆红的游戏

真的莫名其妙,笔者下这个游戏两次,第一次在豌豆荚排行榜看到这款游戏,名字怪怪的,下载下来尝试一下,没觉得有什么新颖的,还在思虑这是不是刷榜刷上去的,果断卸载了;周末的时候逛逛app store,突然看到排行榜首位是Dont Tap The White Tile(后更名panio tiles ),翻译一下不就是别踩到白块儿,笔者震惊了,太莫名其妙了,这东西是真的火,不是刷榜刷出来的!游戏玩家们心理真的难以捉摸,又捧红了一款游戏;

近期爆红的游戏

从flappy bird 到2048 再到 Dont Tap The White Tile,都是短平快的游戏,都是独立开发者做的,看来个人开发者还是有机会在游戏红海中获得一杯羹滴;同时笔者的博文系列也经历这三个游戏;

flappy bird游戏源代码揭秘和下载后续

2048游戏源代码解密和下载

Don‘t Tap The White Tile游戏源代码解密和下载

跟风的笔者

笔者也是随波逐流,什么游戏火,就开源什么游戏代码,当然这不是一件坏事!于己于人都是受益的,各位童鞋多多支持呀。本系列总共三篇,代码未全部完成,这一篇完成了游戏的经典模式;

游戏源代码下载

运行demo需要配置好CocosEditor,暂不支持其他工具。demo是跨平台的,可移植运行android,ios,html5网页等,代码是基于javascript语言,cocos2d-x游戏引擎,CocosEditor手游开发工具完成的。

github下载:https://github.com/makeapp/cocoseditor-piano (近期网络整顿  网盘都不给放  如果github进不去 请到qq群文件下载)

不同平台下的效果图:

windows平台

html5平台

android平台

  

代码分析:(只挑选核心主代码分析,更多细节自行研究源码)

1 创建曲谱数组  do、re、mi、fa,sol、la、duo

CITY_OF_SKY = [
    4, 3, 4, 1, 3 , 3, 1, 1, 1, 7, 4, 4, 7, 7, 6, 7,
    1, 7, 1, 3, 7 , 3 , 6, 5, 6, 1 , 5 , 3, 3];

2 初始化表格,本来先创建4*曲谱数组长度的表格,但为了优化,先创建4*5表格,使用时候再不断新建增加表格;

 //tables
    this.tables = new Array(this.pianoLengthIndex);
    for (var j = 0; j < this.pianoLength; j++) {
        var sprites = new Array(4);
        var random = getRandom(4);
        for (var i = 0; i < 4; i++) {
            sprites[i] = this.newBlock(i, j, random);
        }
        this.tables[j] = sprites;
    }

3 创建单个表格元素,可根据colortype在一行里确定一个黑色元素

MainLayer.prototype.newBlock = function (i, j, colorType) {
    //simple block
    var block = cc.Sprite.create("res/whiteBlock.png");
    block.setPosition(cc.p(this.blockWidth / 2 + this.blockWidth * i, this.blockHeight / 2 + this.blockHeight * j));
    block.setScaleX(this.scaleX);
    block.setScaleY(this.scaleY);
    block.setZOrder(100);
    block.setAnchorPoint(cc.p(0.5, 0.5));
    var color = "white";
    if (j == 0) {
        block.setColor(cc.c3b(0, 255, 0));
    } else {
        if (i == colorType) {
            block.setColor(cc.c3b(30, 30, 30));
            color = "black";
        }
    }
    block.blockData = {col: i, row: j, color: color};
    this.blockNode.addChild(block);
    return block;
};

4 触摸表格,如果是黑色;如果是当前一行的上一行才能继续;

#如果没到顶,创建新的一行moveAddNewSprites,如果到顶了,创建分数结束节点createTopOverNode;

#如果整个表格移动到顶if (block.blockData.row == (this.pianoLengthIndex - 1)),游戏结束 this.gameStatus = OVER;

#如果没到顶,整个表格往下移一行this.blockNode.runAction(cc.MoveTo.create(0.2, cc.p(0, (this.blockNode.getPositionY() - this.blockHeight * heightNum))));

#单个元素运行一个缩放动画,移动步数+1; this.moveNum += 1;

//touch black
                        if (block.blockData.color == "black") {
                            if (block.blockData.row == (this.moveNum + 1)) {

                                //create new sprite
                                if (this.pianoLength < this.pianoLengthIndex) {  //not reach top
                                    this.moveAddNewSprites();
                                }

                                if (this.pianoLength == this.pianoLengthIndex) {  //when reach top
                                    this.createTopOverNode();
                                }

                                //move down
                                cc.AudioEngine.getInstance().playEffect(PIANO_SIMPLE[this.pianoListIndex[j - 1]], false);
                                block.setColor(cc.c3b(100, 100, 100));
                                var heightNum = 1;
                                if (block.blockData.row == (this.pianoLengthIndex - 1)) { //when last row ,game success end, move two height
                                    heightNum = 2;
                                    cc.log("end");
                                    this.gameStatus = OVER;
                                    cc.AudioEngine.getInstance().playEffect(SOUNDS.win, false);

                                }
                                this.blockNode.runAction(cc.MoveTo.create(0.2, cc.p(0, (this.blockNode.getPositionY() - this.blockHeight * heightNum))));
                                this.moveNum += 1;
                                block.runAction(cc.Sequence.create(
                                    cc.ScaleTo.create(0, this.scaleX * 4 / 5, this.scaleY),
                                    cc.ScaleTo.create(0.2, this.scaleX, this.scaleY)
                                ));
                            }
                        }

5触摸表格,如果是白色,游戏结束;

#创建分数结束节点this.createTopOverNode();

#改变分数节点的颜色背景,结果失败;

                           this.createTopOverNode();   //create score node and move
                            this.gameStatus = OVER;
                            cc.AudioEngine.getInstance().playEffect(SOUNDS.error, false);
                            block.setColor(cc.c3b(255, 0, 0));
                            block.runAction(cc.Sequence.create(
                                cc.ScaleTo.create(0, this.scaleX * 4 / 5, this.scaleY * 4 / 5),
                                cc.ScaleTo.create(0.2, this.scaleX, this.scaleY)
                            ));
                            this.scoreNode.bgColor.setColor(cc.c3b(255, 0, 0));
                            this.scoreNode.result.setString("失败了");
                            this.scoreNode.runAction(cc.MoveTo.create(0.2, cc.p(0, this.blockHeight * this.moveNum)));

6 创建添加新的一行

MainLayer.prototype.moveAddNewSprites = function () {
    cc.log("moveAddNewSprites");
    var sprites = new Array(4);
    var random = getRandom(4);
    for (var k = 0; k < 4; k++) {
        sprites[k] = this.newBlock(k, this.pianoLength, random);
    }
    this.tables[this.pianoLength] = sprites;
    this.pianoLength += 1;
};

7 分数结束节点创建函数

MainLayer.prototype.createTopOverNode = function () {
    //top score node
    this.scoreNode = cc.Node.create();
    this.scoreNode.setPosition(cc.p(0, this.blockHeight * this.pianoLength));
    this.scoreNode.setAnchorPoint(cc.p(0, 0));
    this.scoreNode.setZOrder(130);
    this.blockNode.addChild(this.scoreNode);

    //color bg
    var bgColor = cc.Sprite.create("res/whiteBlock.png");
    bgColor.setPosition(cc.p(0, 0));
    bgColor.setScaleX(720 / 300);
    bgColor.setScaleY(1280 / 500);
    bgColor.setAnchorPoint(cc.p(0, 0));
    bgColor.setColor(cc.c3b(0, 255, 0));
    this.scoreNode.addChild(bgColor);
    this.scoreNode.bgColor = bgColor;

    //mode
    var wordsMode = ["经典", "街机", "禅"];
    var modeLabel = cc.LabelTTF.create(wordsMode[GAME_MODE] + "模式", "Arial", 70);
    this.scoreNode.addChild(modeLabel);
    modeLabel.setPosition(cc.p(350, 1000));
    modeLabel.setColor(cc.c3b(0, 0, 0));
    modeLabel.setAnchorPoint(cc.p(0.5, 0.5));

    //result
    var resultLabel = cc.LabelTTF.create("成功了", "Arial", 110);
    this.scoreNode.addChild(resultLabel);
    resultLabel.setPosition(cc.p(360, 750));
    resultLabel.setAnchorPoint(cc.p(0.5, 0.5));
    resultLabel.setColor(cc.c3b(139, 58, 58));
    this.scoreNode.result = resultLabel;

    //back
    var backLabel = cc.LabelTTF.create("返回", "Arial", 50);
    this.scoreNode.addChild(backLabel);
    backLabel.setPosition(cc.p(200, 400));
    backLabel.setAnchorPoint(cc.p(0.5, 0.5));
    backLabel.setColor(cc.c3b(0, 0, 0));
    this.scoreNode.back = backLabel;

    //return
    var returnLabel = cc.LabelTTF.create("重来", "Arial", 50);
    this.scoreNode.addChild(returnLabel);
    returnLabel.setPosition(cc.p(500, 400));
    returnLabel.setAnchorPoint(cc.p(0.5, 0.5));
    returnLabel.setColor(cc.c3b(0, 0, 0));
    this.scoreNode.return = returnLabel;
};

这是经典模式的核心代码,这一篇就到这里;

cocos2d-x跨平台游戏引擎

cocos2d-x是全球知名的游戏引擎 ,引擎在全球范围内拥有众多开发者,涵盖国内外各知名游戏开发商。目前Cocos2d-x引擎已经实现横跨ios、Android、Bada、MeeGo、BlackBerry、Marmalade、Windows、Linux等平台。编写一次,到处运行,分为两个版本 cocos2d-c++和cocos2d-js本文使用了后者;

cocos2d-x 官网:http://cocos2d-x.org/

cocos2d-x 资料下载  http://cocos2d-x.org/download

CocosEditor开发工具:

CocosEditor,它是开发跨平台的手机游戏工具,运行window/mac系统上,javascript脚本语言,基于cocos2d-x跨平台游戏引擎, 集合代码编辑,场景设计,动画制作,字体设计,还有粒子,物理系统,地图等等的,而且调试方便,和实时模拟;

CocosEditor 下载,介绍和教程:http://blog.csdn.net/touchsnow/article/details/19070665

CocosEditor官方博客:http://blog.makeapp.co/

笔者语:

想了解更多请进入官方博客,最新博客和代码在官方博客首发;请持续关注,还有更多CocosEditor游戏源码即将放出;

联系笔者:[email protected](邮箱) qq群:232361142

时间: 2024-10-08 14:02:23

简阳个人貸款是不是真的呢?加 我532999855求助; 急盼,的相关文章

成 都 简 阳 套 现 社 保 卡-2020/3/24 第80次课

成 都 简 阳 套 现 社 保 卡+███[4153.0556]q.v同号███成都当面办理██;长出了黄金;簧片没有错误,其中的一个孔爱黏膜.;东遨兄有许多诗词写到"闲".他觉得自己闲,会被别人笑,所以他说:"垆边竹叶留人醉,雪里梅花笑我闲."他甚至说:"国仗人才立,天容我辈闲."他不信自己不是人才,应该为国效力,但是却被老天硬是让闲了下来.仔细品味这上下两句,是不难体会出诗人的感慨无穷.激愤不平的心情的.;这是一把半音阶口琴我检查过;读懂这首

成 都 简 阳 套 现 医 保 卡-2020/3/24 第79次课

成 都 简 阳 套 现 医 保 卡+███[4153.0556]q.v同号███成都当面办理██;就感到莫名的矫正针对着我;;被眼前绑缚.它们有;上岸的是春天,我爱上了一个人.;;;上岸的是春天,我爱上了一个人.;要么窗子是哑的,要么我搁浅在屋内;换取另一物;读懂这首诗,需要了解一些关于桉树的知识.桉树是外来物种,经济作物,吸水力极强,成片的人工桉树林能释放一种毒素,杀死其他植物,导致土地荒漠化并造成生态灾害.此诗的写作就是出于这种忧虑,同时又恰当地描写了桉树种植者致富的心理和艰辛,因此诗意就产

广州16款17款奔驰E300L E200L加装13喇叭柏林之声音响系统价格

产品名称:广州16款17款奔驰E300L E200L加装13喇叭柏林之声音响系统价格 适合车型:奔驰E 一.广州16款17款奔驰E300L E200L加装13喇叭柏林之声音响系统价格 13喇叭1功放,原厂配件,不影响报销 二.奔驰新E可以改的项目 1.电动尾门脚踢 2.柏林之声 3.旋转高音 4.无钥匙进入 5.香氛 6.抬头显示 7.电吸门 8.大柏林 9.几何大灯 10.原厂360 11.23P 12.桃木方向盘 13.包围 14.通风座椅 三.美车达影音连锁简介:美车达影音主营原车汉化(改

再次推荐一款逼真的HTML5下雪效果

再次推荐一款逼真的下雪效果 效果图: 效果描述:之前推荐过一款下雪的jQuery插件之前的那款下降速度比较缓慢,今天推荐的这个下降速度比较快,大雪哇 使用方法:1.将index.html中的样式复制到你的样式表中2.将body中的代码部分拷贝到你需要的地方(注意保持图片.js文件路径的正确性) 查看效果:http://hovertree.com/texiao/jquery/36/ 下载地址 效果二 效果3 更多特效:http://www.cnblogs.com/roucheng/p/texiao

6款绚丽的js加载和进度条插件

google%E5%BC%80%E6%BA%90materialdesign%E5%9B%BE%E6%A0%87 http://www.zcool.com.cn/collection/ZMTY4OTU2OTI=.html http://www.zcool.com.cn/collection/ZMTY5NzIwNjA http://www.zcool.com.cn/collection/ZMTcwOTEwNDQ?20170922 http://www.zcool.com.cn/collection

广州14款奔驰S320S400原厂改装记忆座椅,桃木方向盘,电动..

广州14款奔驰S320S400原厂改装舒适进入,记忆座椅.桃木方向盘,电动尾门作业  产品名称:广州14款奔驰S320S400原厂舒适进入,记忆座椅.桃木方向盘,电动尾门作业  适合车型:奔驰S320S400一.以前奔驰车代表优雅,到现在的奔驰S还是存在.开宝马,做奔驰.但是现在的奔驰也一部分已经没有优雅了.考虑了很久,最后还是提了奔驰14款S320简配版.诶,票子不多啊,要是多的话,直接迈巴赫了.那个才是真真的舒适.提车回来,使用了一段时间,现在说说感受.车子最满意的就是开和坐都能感受奔驰S是

“简密”App Store处女作开发总结

前言 今天是我的iOS App Store上架应用处女作"简密"第一天上线的日子,简密是我从事iOS开发三年以来的第一款个人上架应用,之前做过两年的企业级应用开发以及公司的电商应用开发,有不少应用上架的经验,但要是论全然从头到尾,设计.制图.开发.測试.文案.广告以及部署上架全然由自己一人完毕,"简密"确实是我的处女作.不论上架之后销售效果怎样,这次开发的过程帮我又一次梳理了一遍iOS App Store应用开发上架的整个流程,这点是我认为做这件事意义最大的地方,当

使用游戏引擎photon打造一款特殊的远程控制软件

前言 本文主要是介绍photon引擎的一些基本用法,以及使用游戏引擎开发远控的优势 0x1 有一段时候对做游戏的unity开发有些兴趣,在找游戏服务端引擎的时候,突然发现了这款歪果人开发的游戏引擎photon,这款引擎的资料很少,费了很大劲才了解到一些基本知识. 对于C#码农来说,这款引擎真的非常强大,非常省力,而且和C#搭配非常棒.缺点就是这是一款商业引擎,不过屌丝是可以免费申请100连接数的Key.并且配备了托盘控制台和日志查看等功能. 0x2 好了,废话不多说,开始我们的正题.photon

16款有助于提升工作效率的工具

市面上旨在提高工作效率的应用数以千计,但并非每款都真的那么好用.但愿本文介绍的16款效率工具,能够帮助你在新的一年里获得事业成功. 本文为与<创业者>杂志的合作内容,下文最初发表于Entrepreneur.com网站. 创业者之间竞争的本质在于效率.好消息是,如今市面上已经有了好几千种优秀的应用软件,能令我们的生活变得更加轻松,但是你不可能有足够的时间把这几千种应用都试上一遍.那么,哪些应用值得你花时间试用一下呢? 本文列举了16种我本人几乎每天都会使用的应用软件,我还将在本文中讨论为什么你也