在线预览: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 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)); }};