cocos cocoscreator面试题见缝插针源码游戏结束的代码逻辑

[分享]6个JS小游戏代码
[问题点数:200分,结帖人ajccom]
本版专家分:4273
结帖率 100%
CSDN今日推荐
本版专家分:8028
本版专家分:70
本版专家分:17584
2012年3月 Web 开发大版内专家分月排行榜第一
2012年2月 Web 开发大版内专家分月排行榜第二
本版专家分:43187
2010年12月 Web 开发大版内专家分月排行榜第二2010年11月 Web 开发大版内专家分月排行榜第二
本版专家分:29411
2012年9月 Web 开发大版内专家分月排行榜第三2012年8月 Web 开发大版内专家分月排行榜第三
本版专家分:359
本版专家分:359
本版专家分:359
本版专家分:10
本版专家分:65
本版专家分:65
本版专家分:1722
本版专家分:65
本版专家分:10
本版专家分:39
本版专家分:4273
本版专家分:4273
本版专家分:10
匿名用户不能发表回复!
其他相关推荐今天介绍一款游戏叫做《AA》,是在最近在IOS上刚刚流行起来的一款游戏,非常虐心但有非常好玩,现在我们讲它在(GameBuilderV2.0)上的利用控件UICanvas实现它。
在线运行:
在线编辑:
微信上玩可以扫描二维码:
游戏截图:
游戏编辑界面:
从游戏截图可以看到,游戏的画面很简洁!简单的界面配上黑白色的旋转球体,游戏的目的让人一目了然!游戏以闯关形式进行,越到后面的关卡越有种眩晕的感觉,好像高空弹跳!游戏玩法简单,一点就通!最开始的关卡,大球上会挂着小球,你只需把下方带有数字的小球黏在大球上,一直到小球黏完游戏就胜利了!如果你不幸在粘球的过程中碰撞到旁边的球体,那么游戏结束!随着关卡的递进,原本附带的球体会越来越多,你需要粘上的小球也越来越多,这样就导致中间的缝隙越来越小,因此你碰上别的球的几率也越来越高了!喜欢的玩家不妨看看自己能闯多少关。
游戏中有三种球,中间大球,转动球,等待球。
curLevel.balls = [];
curLevel.waitingBalls = [];
两种数字,大球上的数字表示关卡,小球的数字表示序号,关卡预设的小球没有数字。
这里选择场景的事件为发射时机,而不是,因为用户两次快速点击时,会触发事件,而不是两次onClick。
小球发射之后,等候的球有个整体向上位移动作,当最上的一个等候球移动到与中心球距离一段距离时,则可以判断已粘黏上,此时,要将其移出等候球数组,加入到转动球数组。
if(curLevel.waitOffset & 0) {
curLevel.waitOffset = 3 * SIDE_BALL_RADIUS;
curLevel.inserting = 0;
var ball = curLevel.waitingBalls.shift();
ball.angle = 90;
curLevel.balls.push(ball);
检测碰撞的方法:计算插入的球与旁边最近一个球体的绝对角度是否。
curLevel.balls.forEach(
function(e, index) {
if(Math.abs(e.angle - ball.angle) & 360 * SIDE_BALL_RADIUS/ (LINE_LEN*Math.PI)) {
curLevel.state = GAME_STATE_FAILED;
failBall =
failBall.state = 0;
failBall.timeCount = 5;
} else if(index === curLevel.balls.length - 1
&& curLevel.waitingBalls.length === 0) {
curLevel.state = GAME_STATE_SUCCESS;
var LEVEL = [
{"initNum":4, "waitNum":8, "speed":360/500},
{"initNum":6, "waitNum":8, "speed":360/500},
{"initNum":2, "waitNum":16, "speed":360/500},
{"initNum":0, "waitNum":24, "speed":360/500},
{"initNum":4, "waitNum":16, "speed":420/500},
{"initNum":3, "waitNum":20, "speed":420/500},
initNum:预设球数量
waitNum:等候球数量
speed:转动速率(每20ms转动的角度)。
游戏画面的绘制
根据游戏的状态来选择背景颜色
switch (curLevel.state) {
case GAME_STATE_RUNNING:
color = "#EED5B7";
case GAME_STATE_SUCCESS:
color = "blue";
case GAME_STATE_FAILED:
color = "red";
ctx.fillStyle =
ctx.fillRect(canvas.x, canvas.y, canvas.w, canvas.h);
ctx.beginPath()
ctx.arc(CENTER.x, CENTER.y, CENTER_BALL_RADIUS, 0, Math.PI * 2, true)
ctx.closePath()
ctx.fillStyle = "black"
ctx.fill()
//draw level
var txt = (curLevel.level
ctx.textAlign = "center"
ctx.textBaseline = "middle"
ctx.font = "italic 60px sans-serif"
ctx.strokeStyle = "#EED5B7"
ctx.fillStyle = "#EED5B7"
ctx.fillText(txt, CENTER.x, CENTER.y)
ctx.strokeText(txt, CENTER.x, CENTER.y)
//draw side ball
curLevel.balls.forEach(
function(e) {
//绘制大球小球之间的线段
ctx.moveTo(CENTER.x, CENTER.y)
var rad = 2 * Math.PI * e.angle / 360
var x = CENTER.x + LINE_LEN * Math.cos(rad)
var y = CENTER.y + LINE_LEN * Math.sin(rad)
ctx.strokeStyle = "black"
ctx.lineTo(x, y)
ctx.stroke()
var rad = SIDE_BALL_RADIUS
if(typeof e.state !== "undefined") {
//如果游戏失败,改变失败球的半径
switch(e.state) {
rad = 1.5 * SIDE_BALL_RADIUS
rad = 0.8 * SIDE_BALL_RADIUS
rad = 1.2 * SIDE_BALL_RADIUS
ctx.beginPath()
ctx.arc(x, y, rad, 0, Math.PI * 2, true)
ctx.closePath()
ctx.fillStyle = "black"
ctx.fill()
if(e.numStr.length & 0) {
ctx.textAlign = "center"
ctx.textBaseline = "middle"
ctx.font = "italic 15px sans-serif"
ctx.strokeStyle = "#EED5B7"
ctx.fillStyle = "#EED5B7"
ctx.fillText(e.numStr, x, y)
ctx.strokeText(e.numStr, x, y)
var x = CENTER.x;
var y = CENTER.y + LINE_LEN + curLevel.waitO
curLevel.waitingBalls.forEach(
function(e) {
ctx.moveTo(x, y);
ctx.beginPath();
ctx.arc(x, y, SIDE_BALL_RADIUS, 0, Math.PI * 2, true);
ctx.closePath();
ctx.fillStyle = "black";
ctx.fill();
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.font = "italic 15px sans-serif";
ctx.strokeStyle = "#EED5B7";
ctx.fillStyle = "#EED5B7";
ctx.fillText(e.numStr, x, y);
ctx.strokeText(e.numStr, x, y);
y += 3 * SIDE_BALL_RADIUS;
原版《AA》的关卡已经到了700多关了,可玩性还是非常高的,关卡的设计可以有很多变化,比如:
1、速度上可以快慢变化
2、可以通过暂停转动
3、可以控制转向(顺时针/逆时针)变化
4、限制时间
5、等候球可以有大小伸缩增加插入难度
期待您的创意。
注:本系列所介绍的游戏源代码均开放,欢迎访问体验游戏制作的乐趣。
小游戏见缝插针
见缝插针小游戏
见缝插针案例制作
Demo介绍了见缝插针的核心玩法,还有很大的扩展性,比如:特效、声音、基于UGUI良好的UI界面。。。
案例玩法介绍:如下图所示,游戏开始后小球围绕大球旋转,点击鼠标发射小球,当所有小球发射完毕后进...
Unity 3D游戏-见缝插针源码
Unity见缝插针功能实现
Sphere Rotation
控制球体旋转
Shoot Pin 射出 针
Detection Of Failure
检测 游戏失败
HTML5见缝插针小游戏
用H5与cocos-js结合编写的小游戏,见缝插针。
点击鼠标发射针,插在中间的球体当中进行旋转。
onTouchBegan:function(touch, e...
类似&em&见缝插针游戏&/em&的HTML5实现 立即下载
上传者: popezong 时间: ...一套&em&代码&/em& iOS、Android 两端运行,Google Flutter 意味着什么?
VIP会员动态
iOS平台上aa(见缝插针)游戏的简易实现
[Unity3D]Unity3D游戏开发之《经典打砖块》游戏项目讲解
大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei。
今天呢,我们来一起做一个怀旧版的经典游戏打砖块。相信每一个和博主同龄的人对于这个...
没有更多推荐了,cocos creator见缝插针源码游戏结束的代码逻辑_百度知道
cocos creator见缝插针源码游戏结束的代码逻辑
cocoscreator见缝插针源码...
cocos creator见缝插针源码
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
<span class="wgt-replyer-all-uname
" data-href="https://zhidao.baidu.com/usercenter?uid=e29f05e0400525
<span class="wgt-replyer-all-card-name3 wgt-replyer-all-card-names" data-href="https://zhidao.baidu.com/usercenter?uid=e29f05e0400525
采纳数:16
获赞数:26
擅长:暂未定制
我是写代码这块逻辑卡住了
这个是无限插针的,就是针有无限多,直到你失败了或是点击reset按钮停止.以下把我的源码贴出来供大家参考:js代码://工具//画布var canalpha=0;var cirradius=100;var smciradius=15;var ani=//动画是否在进行中var speed=30;//针的速度var ins=//是否可以触发insert动画var n=0;//针的步长var num=1;//针的编号var angel=[];//各针停留时的角度数组angel[0]=0;//初始化为1根针时设定,可改变var speed2=200;//旋转速度var over=//游戏结束标志var INTERID;//周期函数IDfunction drawmap() {
ctx.fillStyle = &rgba(50%,25%,25%,0.5)&;
ctx.translate(250, 250);
本回答被网友采纳
1条折叠回答
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。08:53:16 UTC
大哥大嫂新年好,小菜鸡想求个源码,望大哥大嫂帮个忙,在下感激不尽,好人一生平安用H5与cocos-js结合编写的小游戏,。
点击鼠标发射针,插在中间的球体当中进行旋转。
onTouchBegan:function(touch, event){
var target =event.getCurrentTarget();
if(target.playerBall.lenght&=0)
var lastp=cc.p(0,0);
for(var i=0;i
var ball = target.playerBall[i];
if(i==0) {
lastp=ball.getPosition();
var bp = target.zx.convertToNodeSpace(cc.p(GC.w_2,target.zx.y - target.lenght));
ball.setPosition(bp);
ball.removeFromParent();
target.addBallInZX(ball);
var nowp=ball.getPosition();
ball.runAction(cc.moveTo(0.1,lastp));
ball.setPosition();
target.playerBall.splice(0,1);
对游戏胜利和失败的检测
addBallInZX:function(coball){
this.allBall.push(coball);
this.zx.addChild(coball);
coball.scheduleUpdate();
this.zx.drawnode.drawSegment(cc.p(0, 0),cc.p(coball.x,coball.y), 1,cc.color(255,
255, 255, 255));
for(var i=0;i
var p=this.allBall[i].getPosition();
if(cc.pDistance(p,coball.getPosition())
this.gameOver(coball);
if(this.playerBall.length&=1)
this.gameWin();
此游戏这俩点为重要的地方。
利用js写的见缝插针小游戏(推荐给新手)
标题之所以写推荐给新手,是因为我也是个刚学js一周的新人,想练练手,于是就花了一下午写了这个游戏,所以我写的可能更适合新手,大神勿喷。
这个游戏是利用原生的js以及html5的canvas技术做...
见缝插针游戏--实现转圈
#include &stdafx.h&#include &graphics.h&
// 引用图形库头文件#include &co...
见缝插针 一个canvas小游戏
一个canvas小游戏
https://github.com/Web-ZhangJian/jianfengchazhen
JavaScript代码:
var canvas=document.que...
1:mix add _ sub
HTML5-见缝插针(Canvas)
HTML5游戏 - 见缝插针标签(空格分隔): WEB HTML5 见缝插针相信大家都玩过这个游戏, 这是我为了练习所学的Canvas而写的一个小游戏...
GameBuilder游戏开发系列之见缝插针(AA)
今天介绍一款游戏叫做《AA》,是在最近在IOS上刚刚流行起来的一款游戏,非常虐心但有非常好玩,现在我们讲它在tangide(GameBuilderV2.0)上的利用控件UICanvas实现它。在线运行...
iOS平台上aa(见缝插针)游戏的简易实现
没有更多推荐了,

我要回帖

更多关于 cocoscreator游戏 的文章

 

随机推荐