打砖块游戏开发

打砖块游戏开发

首页休闲益智全民打砖块更新时间:2024-04-21

本篇教程要基于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