GameBuilder开发游戏应用系列之70行代码实现套圆环

在线预览:http://osgames.duapp.com/apprun.html?appid=osgames1-551421721381542

在线编辑:http://osgames.duapp.com/gamebuilder.php?appid=osgames1-551421721381542

微信扫描:

运行截图:

套圆环是火舞上的一款非常火爆的游戏,它是FlappyBird的变种,也是重力感应类的游戏,不同的是碰撞检测从FlappyBird的钢管,变成中间的一根绳子。

这根绳子在GameBuilder中用UICanvas来实现,UICanvas在之前的博客GameBuilder开发游戏应用系列之100行代码实现别踩白块种有介绍。

这里的绳子因为是画出来的,因此不能用Cantk的刚体之间的检测碰撞借口onBeginContact,而是利用圆环(刚体)的onMoved接口来检测与绳子的碰撞。

绳子的计算

win.onLineMoved = function() {
    if(win.gameStarted === 0) {
        setTimeout(win.onLineMoved, 20);
        return;
    }
    win.points.shift();
    ++win.count;
    ++win.score;
    if(win.score % 10 === 0)
    win.find("score").setText(win.score * 0.1);
    var oy = win.points[win.points.length - 1];
    if(win.count % 400 === 0) {
        win.factor = win.genFactor();
        win.count = 0;
    }
    var y = oy + win.factor;
    while(y >= 290 || y <= 110) {
        win.factor = win.genFactor();
        y = oy + win.factor;
        win.count = 0;
    }

    win.points.push(y);
    setTimeout(win.onLineMoved, 20);
};

绳子的绘制

win.drawCirclePath = function(ctx){
    var pa = win.points;
    ctx.lineWidth = 20;
    ctx.strokeStyle = ‘yellow‘;
    ctx.moveTo(0, pa[0]);
    for(var i = 1; i < pa.length; i++) {
        ctx.lineTo(i, pa[i]);
    }
    ctx.stroke();
};

圆环的组成

圆环是有两个刚体组合而成,集中一个在UICanvas(黄色那个)下面。

碰撞检测

实现圆环的onMoved事件接口。

win.onCircleMoved = function(point, element) {
    var y = point.y;
    var x = Math.floor(point.x + element.w);
    if(y + 55 > win.points[x] + 200 || y + element.h - 50 < win.points[x] + 200) {
        win.gameStarted = 0;
        win.find("ui-box").setEnable(false);
        win.find("ui-box-1").setEnable(false);
        win.openWindow("win-result", function() {win.replay(); win.initGame();}, false, Math.floor(win.score * 0.1));
    }
};
时间: 2024-10-05 07:15:55

GameBuilder开发游戏应用系列之70行代码实现套圆环的相关文章

GameBuilder开发游戏应用系列之100行代码实现贪吃蛇

在线预览:http://osgames.duapp.com/apprun.html?appid=osgames1-801422234293697 在线编辑:http://osgames.duapp.com/gamebuilder.php?appid=osgames1-801422234293697 微信扫描: 运行截图: 除了重力感应游戏,GameBuilder开发传统的游戏也毫不逊色,作为一个怀旧的人,总是对这类游戏情有独钟. 贪吃蛇主要靠一个[UICanvas]来实现,前面一片博客GameB

GameBuilder开发游戏应用系列之60行代码实现FlappyBird

在线演示:http://osgames.duapp.com/apprun.html?appid=osgames1-911422256817006 在线编辑:http://osgames.duapp.com/gamebuilder.php?appid=osgames1-911422256817006 微信扫描: 运行截图: FlappyBird是2014年爆红的一款游戏,属于经典的重力感应游戏,玩法非常简单同时又非常虐心,正是这样的特点让FlappyBird得以在社交网络病毒式的传播. GameB

GameBuilder开发游戏应用系列之100行代码实现别踩白块

在线预览:http://osgames.duapp.com/apprun.html?appid=osgames1-961421749977376 在线编辑:http://osgames.duapp.com/gamebuilder.php?appid=osgames1-961421749977376 微信扫描: 游戏截图: 别踩白块是一款非常流行的游戏,该游戏于2014年4月16日上线App Store.并在全球40多个国家.地区免费游戏榜登顶榜首[4] ,超过一百个国家或地区排名前十 ,5月份荣

GameBuilder开发游戏应用系列之50行代码实现微信漂流瓶

在线运行:http://osgames.duapp.com/apprun.html?appid=osgames1-871422195197258 在线编辑:http://osgames.duapp.com/gamebuilder.php?appid=osgames1-871422195197258 微信扫描: 运行截图: 这里实现微信漂流瓶不是真的完全实现,而是借机会介绍一下Cantk的UIFootprint控件. 漂流瓶中的网走的是一个曲线,在Cantk种可以用UIFootprint来实现,请

GameBuilder开发游戏应用系列之100行代码实现微信打飞机

在线预览:http://osgames.duapp.com/apprun.html?appid=osgames1-951421981197090 在线编辑:http://osgames.duapp.com/gamebuilder.php?appid=osgames1-951421981197090 微信扫描: 微信打飞机实现起来并不难,需要用到的知识点有如下几点: 碰撞检测:敌机与敌机之间不检测,子弹与敌机需要检测. 触摸跟随:我方飞机要根据触摸点的位置变化而变化. 子弹与敌机生成:子弹需要定时

GameBuilder开发游戏应用系列

最近迷上了一个在线html游戏开发工具GameBuilder,作者是知名csdn博客专家李先静老师, 李老师在内核.驱动.GUI.MMI.软件设计方法和软件优化等方面均有建树,这一次的GameBuilder,是李老师基于html5画布构建的html5游戏应用开发平台中的一部分. 开发平台分为两部分: 在线开发工具GameBuilder,GameBuilder是一个可视化编程工具,游戏中的场景控件,只要鼠标轻轻一拖即可生成. GUI框架Cantk,一个开源的游戏引擎和APP框架,是开发HTML5游

GameBuilder开发游戏应用系列之Cantk窗口生命周期

Cantk中的窗口(UIWindow/UIScene)与Android的Activity等组件一样有完整的生命周期,假设我的Web应用有两个窗口:FirstWindow,SecondWindow,整个应用的生命应该如下图所示: Created with Rapha?l 2.1.2FirstWindowFirstWindowSecondWindowSecondWindow1.FirstWindow's onSystemInit called2.SecondWindow's onSystemInit

Cocos2d-x 3.x 开发(十八)10行代码看自动Batch,10行代码看自动剔除

1.概述 在游戏的运行过程中,图形的绘制是非常大的开销.对于良莠不齐的Android手机市场,绘制优化较好的游戏,可以在更多的手机上运行,因此也是优化的重中之重.图形方面的优化主要体现在减少GUP的绘制次数上.这里我们分别从自动优化渲染批次和绘制剔除两个方面来看新版本在绘制上的优化. 2.自动batch 在Cocos2d-x 3.x中,抛弃了先前手动编写BatchNode,采用自动管理的方式.说起BatchNode,就难免涉及到显卡底层的绘制原理.简单的说,每提交一条绘制指令到显卡都会产生消耗,

HTML5游戏实战之70行代码实现经典游戏《伐木工》

伐木工游戏大家都玩过,今天介绍它在TangIDE上的实现方式,大概70行左右代码. 这个版本的伐木工,是为麦当劳定制的,放了一些麦当劳的一些产品. 先show一下最终的成果,您可以点这里玩,或者手机扫描二维码: 当然如果您想在线编辑此游戏,点这里. 在开始介绍游戏开发步骤前,先打个广告,对html5游戏开发,TangIDE 或者Cantk 感兴趣的朋友请扫描下方二维码,加入七巧板官方QQ交流群,一起交流做html5游戏的乐趣,群主正是Cantk作者李先静老师. 相信经过一段时间的训练,每天做1-