基于Cocos creator 实现坦克大战小游戏

疯狂坦克

引言

坦克大战是一款曾经风靡一时的小游戏,本次的实训,就是要力图让经典历久弥新。因此在老师的帮助下,我们将尽力开发一款在原有基础上有突破的“疯狂坦克2”,加入新的元素,融入新的玩法,改进美工设计,增强用户体验。

任务概述

目标:

(1)单人闯关模式:在单人闯关模式中,玩家需要消灭本关所有敌方坦克在游戏过程中可以通过

获取道具和使用技能的方式提高自身的战斗力。

(2)双人对战模式:在双人对战模式中,两名玩家彼此操作各自的坦克,以消灭对方基地或耗尽

对方生命值为目的。

(3)音乐音效设置:玩家可以在游戏启动后,进行音乐音效的设置,游戏过程中,例如射击子弹或者移动,使用道具等都有相对应的音效。

(4)排行榜积分:游戏过程结束后有排行榜显示,可以展示玩家的积分和排名情况。

(5)游戏 AI 算法实现

特色:

(1)在传统的坦克大战上增加了双人对战的模式,并且尽力增强用户在手机端的体验

(2)改进了美工设计

需求分析

1. 功能分析

1.本项目具体应实现如下功能:

2.玩家控制玩家坦克在场景中移动、发射炮弹

3.实现敌方坦克移动以及开火的 AI 算法

4.设计开场动画

5.设计得分榜以及排行榜

2.功能优先级

模块按优先级如下:

游戏模式

游戏模块

优先级

备注

单人闯关

敌方坦克 AI

由上往下优先级逐步降低

设计进攻玩家大本营的 AI 坦克

玩家移动与开火

随机爆出装备

当玩家击败特定敌方或者打碎特定物品时可以得到补强的装备

2 人闯关

敌方坦克 AI

设计进攻玩家大本营的 AI 坦克

玩家移动与开火

随机爆出装备

当玩家击败特定敌方或者打碎特定物品时可以得到补强的装备

2 人对战

玩家移动、开火

胜负判断

如果在限定时间内没有攻下对方大本营,依然判断胜负

用户和市场分析

本产品面向的是全体热爱游戏的玩家们,尤其是对九十年代以及 2000 年左右的、对坦克大战这类游戏具有很深的情怀的玩家们。

这一批玩家接触电子游戏较早,对这类很基础的游戏很熟悉,但是在现今各类游戏五花八门、像这种基础游戏毫无竞争力的情况下,我们希望能够做出让他们能够回忆起 90 年代红白机的感觉的有情怀的作品。另外,这一部分玩家大多已经是成年的、成熟的用户,可能对于时兴的游戏没有时间、没有兴趣,这种情况下,一款简单的、具有儿时回忆的游戏一定能够吸引眼球。

UI 设计

作为一个高难游戏,我们没有设计复杂的 UI 界面,而是追求单纯的游玩受苦体验。

游玩过程中 UI 只有玩家的生命提示。

在开始界面,我们也只放上了一个直截了当的开始按钮和标题界面。

——玩,或者不玩。

最简单的游戏,最纯粹的享受。

数据库设计

我们利用 Cocos creator 完成了整体的开发。

游戏数据库是树形结构数据库

以其中一个场景为例,我们 Canvas 根结点衍生出 Camera 结点,Map 结点。而玩家 PlayerTank 则是 Map 子节点。敌人与子弹是即时作为 Map 子节点生成的。

不同场景对应的树则是以 Cocos creator 默认形式存储到一起。一个场景只调用一个树运行,切换场景时则销毁。

生成敌人的过程中,敌人的可生成位置则是用数组临时记录,执行完生成方法后数组则会销毁

系统功能模块设计

Cocos Creator 开发基本要素为 node 和 script。其中 script 均包含在 cc 命名空间内,一个 script 是一个继承自 cc .component 的类。Node 是 cc .node 的子类。

模块是基于 node 实现的,下表说明 node 间的关系,node 的父子关系不代表继承关系。

Node 均继承自 node 类。

节点名

说明

关系说明

Canvas

画布

Main Camera

摄像头

Canvas 子节点

Map

地图

Canvas 子节点

Ground

地形层

Map 子节点

Obstacles

障碍层

Map 子节点

Button

按钮

Main Camera 子节点

Player Tank

玩家

Map 子节点

Fire Position

玩家开火坐标点

Player Tank 子节点

Health Bar

玩家生命值条

Player Tank 子节点

Enemy Tank

敌方坦克

Map 子节点

Fire Position

敌方开火坐标点

Enemy Tank 子节点

startView

开始界面

Enemy Tank 子节点

方法名

说明

关系说明

Fire

开火

Player Tank/Enemy Tank 类方法

Move

玩家移动

Player Tank 类方法

Move

敌方移动

Enemy Tank 类方法

Create Enemy

生成敌人

Map 类方法

Create tool

生成道具

Map 类方法

Onload

为障碍物添加碰撞体

Map 方法

通过灵活运用 Cocos Creator 自带的接口,我们较容易地实现了大部分的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神仙别闹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值