如何在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章对脚本做整体上的介绍时也介绍过,那么上一章呢,尽管主要 ...
随机推荐
- Hadoop框架:单服务下伪分布式集群搭建
本文源码:GitHub·点这里 || GitEE·点这里 一.基础环境 1.环境版本 环境:centos7 hadoop版本:2.7.2 jdk版本:1.8 2.Hadoop目录结构 bin目录:存放 ...
- redis-port支持前缀迁移
一.介绍 redis-port是一款redis数据迁移工具,用来将数据从一个redis迁移到另一个redis实例/redis集群中 ,以下是官方地址: https://github.com/Codis ...
- window杀进程-----引用
Windows平台 两步方法 : 1 查询端口占用,2 强行杀死进程 netstat -aon|findstr "8080" taskkill /pid 4136-t -f ...
- Unity3D 一、游戏
3D游戏编程第一次作业 作业要求 阅读 Tracy Fullerton, *GAME DESIGN WORKSHOP* 第2-4章(游戏结构.基本元素.戏剧元素).选择一款你喜欢的中等规模游戏如&qu ...
- Java Web学习(四)http协议
文章更新时间:2020/07/24 一.概念 定义 HTTP:超文本传输协议,是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程. HTTP协议:用于定义客户端与 ...
- Redis学习(三)java使用redis
一.操作步骤 Redis除了命令行操作以外,还可以通过java代码进行操作,流程如下: 下载Jedis依赖包,并丢入工程中合适的位置 在Maven中引入redis的包 <!--引入redis包- ...
- MyEclipse中的项目导入到Eclipse中运行的错误解决
之前用的myEclipse,后来把项目导入eclipse发现报错,将MyEclipse中的项目导入到Eclipse中运行,不注意一些细节,会造成无法运行的后果.下面就说说具体操作:导入后出现如下错误: ...
- Python-生成器函数(协程实现底层原理)-yield
yield 1. 函数执行的时候,找到yield关键字,则会标记这个函数,返回生成器对象 2. Python解释器会记录最近一次函数中yield位置 3. 生成器对象也是分配在栈堆上 4. 通过yie ...
- “酒香也怕巷子深” Smartflow-Sharp 工作流
导语 老话说得好,"酒香不怕巷子深"可是我又不是什么大咖,写得再好也没人知道.所以我今天准备再写写我的工作流组件,写得不好还请大家见谅.写文章对于我来说,有点感觉"茶壶里 ...
- 094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 04 static关键字(续)
094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...