游戏介绍
引擎版本:cocos2d-x-3.16
开发工具:vs2015
重返色の星球是一款休闲益智游戏,星球的史莱特因为一次意外坠落地球,失去了超能力而无法驾驶UFO,只有进行变色训练才能重获超能力,你能帮助它吗?
风格清新,玩法独特,甚至还有点虐心,手残党的亲们要慎重哦!游戏的操控很简单,史莱特会根据你点击的按键颜色而变色,当落到对应颜色的圆盖上就会继续跳跃,这是一个节奏游戏,你必须很好的配合节奏来玩,当100%完成进度就算通关。
游戏项目托管在github:https://github.com/smiger/ParkourBall
关卡选择
关卡选择场景MainScene
游戏共有6个关卡可供选择,当然,最开始游戏只能选择第一关,只有通过该关卡就能解锁下一关卡
一、物理场景
1、创建
1 2 3 4 5 6 7 8 |
|
2、在进入MainScene时设置碰撞监听事件,碰撞后做球的自旋转动作
1 2 3 4 5 6 7 |
|
1 2 3 4 |
|
3、初始化时还创建一个静态的线状刚体,让球落下来与该刚体发生碰撞弹起
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
4、禁用一个物理世界的auto step,然后通过设定PhysicsWorld::step(time)来手动刷新PhysicsWorld
1 2 |
|
1 2 3 4 5 6 7 8 |
|
二、按钮、关卡界面
1、开始、声音按钮
1 2 3 4 5 6 7 |
|
MenuItemToggle可以实现声音按钮的开关两种状态,类似”ON”->”OFF”.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
2、关卡选择
用循环将六个关卡展示出来,如果还未解锁的加锁标志
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
球和圆盘
一、基类
球和圆盘继承Base基类,我们先看下基类有哪些方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
二、球
1、初始化中先绑定精灵、刚体,球的碰撞掩码要与线状刚体的类别标识掩码逻辑与不为0,如果body->setCollisionBitmask(0x02);球将直接掉落
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
2、球还有设置不同颜色、获取颜色、游戏一开始施加跳跃的速度、自旋等方法
1 2 3 4 |
|
三、圆盘
圆盘类主要有设置颜色、获取颜色方法,没有用到绑定刚体,而是在场景中圆盘的y轴位置创建一个静态的线状刚体,来实现与球的碰撞,球弹起的效果
圆盘管理类
圆盘管理类:BaseManager
1、游戏开始会创建25个圆盘,前5个是红色,其余20个颜色则是随机产生,产生的圆盘会加入cylinderList列表中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
|
可以看到第一个圆盘的横坐标位置是size.width/4,这与球的开始位置是一致的
2、当球与圆盘(其实碰撞的不是圆盘,而是一条在圆盘位置的线状刚体)发生碰撞后,会调用BaseManager::update遍历每个圆盘,如果圆盘超出左边的屏幕,则会重新设置位置颜色到最后一个。然后碰撞到的圆盘会有下上的动作并向左移动位置,其他圆盘直接向左移动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
|
游戏主场景
游戏主场景:PlayScene
一、创建物理场景
物理场景跟关卡界面是类似的
1 2 3 4 5 6 7 8 |
|
创建线状刚体
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
还有设置碰撞监听等
二、初始界面
1、初始球、圆盘等
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
2、游戏方式介绍
根据不同关卡展示不同玩法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
3、点击游戏玩法响应,游戏正式开始
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
三、游戏中
游戏开始有给小球速度,由于刚体设置摩擦力为0,完全弹力等因素影响,小球将无限弹起落下到游戏结束。主要逻辑在碰撞监听函数里实现,不同的关卡游戏失败的逻辑有所区别
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
|
游戏结束层
游戏结束层:EndLayer
游戏结束层带有两个参数,第一个参数是是否成功,第二个参数完成百分比
1 2 3 4 5 6 |
|
无论游戏成功失败都有返回选关主界面的菜单按钮
1 2 3 4 5 6 7 8 9 10 |
|
区别在于成功是下一关按钮,失败是重新开始按钮
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
剩下的就是精灵图层,完成百分比,提示语信息
Android编译
一、准备好adt和ndk(我用的ndk是r14b版本)
1、导入项目,包括libcocos2dx
2、ParkourGame右键->Properties->Builders
3、点击New...->选择Program->点击OK
Location这一栏点击Browse File System...选择你存放NDK路径下的nkd-build.cmd
Working Directory这栏点击Browse Workspace...选择ParkourGame
点击OK
二、修改Android.mk
1、打开ParkourGame\proj.android\jni\Android.mk
2、新增的部分是遍历Classes目录的所有.cpp文件赋值LOCAL_SRC_FILES,同时所有文件夹路径赋值LOCAL_C_INCLUDES
1 2 3 4 5 6 7 8 9 10 |
|
3、然后就可以编译了