如何在construct3上开发游戏&游戏展示
前言
为了更快体验做出游戏的快乐,我们可以直接采用construct3 提供的游戏模板。这里我用的是基础模板中的塔防游戏。我们在这个的基础上加进来“植物大战僵尸”的一些元素,包括内容和玩法。
step1.背景图设置
为了更贴近游戏主题,我们首先修改背景图,将原背景换成“植物们”的草坪。如图
双击Wall,导入背景图
关掉背景编辑器,背景修改完成 
step2.添加新元素
双击空白处,选择出现界面中的Sprite创建元素

此时页面不会有什么变化,再次左键单击空白处,出现动画编辑器,此时将要添加的元素图像导进,关闭编辑器。
关闭后,在右上角的项目中找到刚创建的元素,左键单击,在左边的属性中修改有关属性,如,修改元素名称、大小等,注意,此处的修改将应用于所有实例对象,而在场景中的修改只应用于单个实例对象。

这里由于“豌豆射手”的功能是炮台,所以还需给它添加行为,在右上角项目中找到“豌豆射手”,右键编辑行为,添加新行为,选择炮台,成功添加后,如图
此时再回到左侧属性处修改炮台的属性值,如图
“寒冰射手”,僵尸,子弹的创建流程相同,此处便不再多说。注意,僵尸的行为时“寻路”“闪烁”;子弹的添加的行为是“子弹”;另外新建元素时生成的实例对象不可以删掉,否则无法再对该对象进行实例化,通常可以通过复制粘贴进行实例化。
此处我还添加了其他4个对象


plant1,plant2用于后面点击购买植物操作,“begin”:开始游戏,“pause”:暂停出怪
好了,现在基本元素添加完毕,可以进入最激动人心的环节了-游戏设计。
step3.游戏设计
先说下设计的蓝图。
僵尸:出现速度和生命值都随时间的增加而增加,当僵尸到达终点,会随机销毁一个豌豆射手和一个寒冰射手;
豌豆射手:攻击僵尸,减少其生命值直至销毁僵尸;
寒冰射手:更强大的攻击能力,更快的攻击速度,更广的攻击范围,同时带有减速效果;寒冰射手可直接购买也可以由豌豆射手升级得到
此处角色的设计跟植物大战僵尸中的有些不同,不过,这也正是设计游戏的快乐,不是吗~
蓝图绘制好了,就可以开始实现了;此时不得不说construct3对入门者的友好了,不用学习新的语言,也不用辛苦的打代码。
首先先新建分组,一个好的分组可以让游戏逻辑更加清晰;这里将僵尸和两种植物的实现分开。
首先是对游戏的控制:
设置全局变量Begin,当游戏开始是置为True,暂停时置为false;
具体实现:添加事件到“Enemy control”->Touch->轻按对象->目标选择对象“Begin”->完成,添加动作->系统->设置布尔值->变量:Begin,值:True->完成。
这样就创建好一个事件了。Pause事件创建同上。
僵尸的实现:
游戏开始后每过一段时间都会生成新的僵尸,所以事件的条件是时隔和游戏开始;出怪,也就是在图层上生成僵尸的实例对象,之后实例对象要到达终点,就要寻路,还要有寻路的初始速度、加速度和最大速度。设置好了之后就要让僵尸沿路线移动。具体实现如图
为了降低游戏难度,这里设置了每隔EnemySpawnTime秒金币加1。
添加多个条件的方法:右键已有条件->添加其他条件
添加动作的流程:添加动作->选择动作的对象->修改对象动作->修改参数
注意“系统”对象的使用;
注意坐标值最好不要用具体的数值,否则修改起来麻烦且容易出错。
僵尸生命值,出现速度随时间变快
实现:每过一段时间增加health,减少EnemySpawnTime
僵尸受到攻击
实现:受到攻击时生命值减少(可能还会减少速度),当生命值<=0时僵尸对象销毁,销毁时生成BulletlmpactParticles对象作为特效,同时增加金钱数量和游戏分数
僵尸到达终点,自己消失,随机销毁一个豌豆射手和一个寒冰射手
实现:销毁僵尸实例对象,同时随机销毁一个豌豆射手实例对象和一个寒冰射手实例对象
豌豆射手的实现
被添加到场景中时,锁定目标,发射子弹;如果攻击范围内没有目标则销毁子弹
添加豌豆射手到场景
首先确定金额是否足够;购买的直接结果是对应的布尔值plant1置为true,此时应该设置plant2为false,这样将以最后一次购买为准,防止同时买了两种射手;购买成功后在场景中点击才生成实例对象,此时plant1应重新设为false,同时金钱减少;
如果新买的所放位置本来就有,视为购买失败,此时应该返回金额,并销毁对象;由于销毁对象时无法区别原有的和新的,所以两个都会被销毁,此时应该再创建新的对象。

寒冰射手的实现
寒冰射手的实现跟豌豆射手几乎一致,所以直接附上实现
关于得分,金钱数以及购买界面

购买界面的图片即plant1,plant2:添加元素后的实例对象直接放在目标位置就可以了
文字:空白处双击左键,选择Text,再次单击左键,双击生成的文本框,修改文本内容;这样,无需改变的文本就设置好了;
对于时时改变的文本:回到事件编辑界面,添加事件,让系统在每一帧都更改文本内容

现在,一个新的小游戏就完成了。
看完整个流程,是不是觉得原来开发小游戏其实也不难,那就快上机试试吧~
这里小编附上这个游戏的链接,大家亲自可以感受一下效果~
植物大战僵尸塔防版
如何在construct3上开发游戏&游戏展示的更多相关文章
- 如何在 VS2015 上开发 Qt 程序
所有Qt版本下载地址: http://download.qt.io/archive/qt/ 所有Qt Creator下载地址: http://download.qt.io/archive/qtcrea ...
- 在SAE分布式服务上开发需要解决的问题
这是在开发“幸运猜数”微信游戏的时候遇到的问题 对游戏感兴趣的,可以关注微信公众ID: EasyTool 回复[幸运猜数]开始游戏 之前提供的功能:[黄金][双色球][记事]等,都是无状态服务 而开发 ...
- 【使用Unity开发Windows Phone上的2D游戏】(1)千里之行始于足下
写在前面的 其实这个名字起得不太欠当,Unity本身是很强大的工具,可以部署到很多个平台,而不仅仅是可以开发Windows Phone上的游戏. 只不过本人是Windows Phone 应用开发出身, ...
- 如何在CentOS上安装一个2048小游戏
如何在centos上安装一个2048小游戏 最近在学习CentOS系统,就琢磨着玩点什么,然后我看到有人在玩2048小游戏,所有我就在想,为啥不装一个2048小游戏搞一下嘞,于是乎,我就开始工作啦 由 ...
- UE4开发PSVR游戏流程
先与sony的开发者关系部建立联系,展示工作室/公司制作PSVR游戏的构想和计划以及制作实力,如果对方觉得你提供的信息具有说服力,则会提供开发者资格,和你签署NDA,给你租借开发机和测试机(免费). ...
- HTML5外包注意事项-开发HTML5游戏的九大坑与解决方法剖析
随着移动社区兴起,势必带动HTML5的革命.未来一两年内,HTML5移动游戏必将呈现大爆发趋势. 以下是整理的HTML5游戏研发.市场趋势以及渠道布局和技术解决方案的内容.希望大家能从本文中找到对HT ...
- C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例
C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判 ...
- C#开发Unity游戏教程之Unity中方法的参数
C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号“( )”,有意义吗?看起来最多也就是起个快速识别 ...
- C#开发Unity游戏教程之游戏对象的行为逻辑方法
C#开发Unity游戏教程之游戏对象的行为逻辑方法 游戏对象的行为逻辑——方法 方法(method),读者在第1章新建脚本时就见过了,而且在第2章对脚本做整体上的介绍时也介绍过,那么上一章呢,尽管主要 ...
随机推荐
- Java面试必问之-JUC
JUC:java.util.concurrent (Java并发编程工具类) 代码:D:\JAVA\Java_Learning\Elipse_Project\workspace200301EE\JUC ...
- 对OAuth2.0协议的理解和测试demo
1. 什么是OAuth OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容. OAuth ...
- 安装Linux的CentOS操作系统 - 初学者系列 - 学习者系列文章
Linux系统对于一些熟悉Windows操作系统的用户来说可能比较陌生,但是它也是一种多用户.多任务的操作系统,现在也发展成为了多种版本的操作系统了.如果想对该系统进行学习,请下载这个学习文档:htt ...
- 20行代码实现,使用Tarjan算法求解强连通分量
今天是算法数据结构专题的第36篇文章,我们一起来继续聊聊强连通分量分解的算法. 在上一篇文章当中我们分享了强连通分量分解的一个经典算法Kosaraju算法,它的核心原理是通过将图翻转,以及两次递归来实 ...
- Flutter音频播放--chewie_player的基本使用
发现网络似乎没有关于简单音频播放的插件介绍,这几天找了一下,结果也都不尽人意,最后也是debug一下chewie_player插件的官方demo 先上官方demo图 官方git地址:https://g ...
- [BJDCTF 2nd]文件探测
[BJDCTF 2nd]文件探测 这两天刷题碰到了一道稍微有难度的题,记录一下,有一些点是未被掌握到的. home.php: <?php setcookie("y1ng", ...
- Centos7防火墙以及端口控制
开启防火墙 systemctl start firewalld.service --启动firewall systemctl enable firewalld.service --开机时启动firew ...
- Centos-浏览大文件-more less
more less 浏览一个大文件,一屏无法显示完毕,通过这两个命令分屏读取文件内容 more 相关选项 -d 底部显示友好提示,如退出按键提示,继续浏览按键提示 -s 将多个空行减少为只有一个空行 ...
- spark-4-文件读写
hdfs文件读写报错: AccessControlException: Permission denied: user=root, access=WRITE, inode="/user/ch ...
- linux内核 idr机制
idr机制解决了什么问题?为什么需要idr机制(或者说,idr机制这种解决方案,相对已有的其他方案,有什么优势所在) ? idr在linux内核中指的就是整数ID管理机制,从本质上来说,这就是一种将整 ...