本篇教程要基于Cocos Creator1.5的物理引擎,编写一个简单的打砖块游戏。
新建工程新建一个工程,取名叫做brick-breaker,brick是什么意思呢,就是砖块的意思,每次给工程起名字,我都能学会一个新单词。
目录结构如下:
game场景,设置Canvas 。
先搭一个游戏背景。
因为我已经做完了,我就不从头做一遍了,所以暂时用不到的节点我就把active关掉)
再建一个物理层,用来装游戏里的带有物理属性的东西,设置锚点为左下角。
游戏开发以下是本次游戏中要用到的单词:
wall:墙,小球碰到就会反弹的那种墙
ground:地面,球碰到地面,这局游戏就结束了
brick_layout:砖块布局,这个单词我们之前讲过了就不讲了
ball:球 ,就是球
paddle:桨,这里特指那个可以控制移动的白色长方形
这个wall肯定是要有碰撞属性的,在属性面板,添加一个物理组件
因为我们的墙有上,左,右三面,所以再添加三个碰撞组件(一个节点可以有多个碰撞组件)。
编辑一下 。
地面同理,小球同理,托盘同理 。
(这里把地面和墙分开是为了后面墙和地面可能有不同的逻辑)
现在已经编辑了几个物理节点的碰撞包围盒,但还没有编辑他们的物理属性(cc.RigidBody)
先从小球开始,点击ball节点,在属性检查器可以看到。
把第一个参数勾选,代表启用碰撞回调,可以在脚本里写回调函数, Bullet为高速运动的物体开启,避免穿透,这里不用勾选, type选择Dynamic。
static:不会受到力的影响,不会受到速度影响,指的是物理引擎,我们依然可以通过移动节点来改变位置
kinematic:不受力的影响,会受到速度影响
dynamic:受力影响,受速度影响
animated:据说和动画结合使用。
Gravity Scale设置为0(标准是1,数值代表比例),也就是没有重力。
设置线速度(1000,1000)。
在下面的碰撞组件里,设置Friction (摩擦系数)等于0(没有摩擦力),Restitution(弹性系数)等于1(没有动量损耗)。
因为小球是我们的主角,左右的碰撞都是对球来说的,所以碰撞属性都在小球这一方设置就可以了。
另外要设置wall,ground,paddle,brick的type为static,brick的tag为1,ground的tag为2, paddle的tag为3, wall的tag位4
下面来看脚本
BrickLayout.js
自己写了一个动态添加砖块的布局脚本,传入需要添加的砖块数量就可以动态加入的布局节点中。
BrickPrefab长这样,我就默认你会做prefab了 。
OverPanel.js
结束界面 。
Paddle.js
托盘随着手指移动。
Ball.js
球碰到其他物体,让gameCtl处理。
GameCtl.js
GameCtl挂在Canvas上,保证第一个执行,将对应的组件拖入 。
GameView.js
GameModel.js
游戏到此就结束了,这就是使用Cocos Creator开发的一款打砖块小游戏,简单吧
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved