前言

为了更快体验做出游戏的快乐,我们可以直接采用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上开发游戏&游戏展示的更多相关文章

  1. 如何在 VS2015 上开发 Qt 程序

    所有Qt版本下载地址: http://download.qt.io/archive/qt/ 所有Qt Creator下载地址: http://download.qt.io/archive/qtcrea ...

  2. 在SAE分布式服务上开发需要解决的问题

    这是在开发“幸运猜数”微信游戏的时候遇到的问题 对游戏感兴趣的,可以关注微信公众ID: EasyTool 回复[幸运猜数]开始游戏 之前提供的功能:[黄金][双色球][记事]等,都是无状态服务 而开发 ...

  3. 【使用Unity开发Windows Phone上的2D游戏】(1)千里之行始于足下

    写在前面的 其实这个名字起得不太欠当,Unity本身是很强大的工具,可以部署到很多个平台,而不仅仅是可以开发Windows Phone上的游戏. 只不过本人是Windows Phone 应用开发出身, ...

  4. 如何在CentOS上安装一个2048小游戏

    如何在centos上安装一个2048小游戏 最近在学习CentOS系统,就琢磨着玩点什么,然后我看到有人在玩2048小游戏,所有我就在想,为啥不装一个2048小游戏搞一下嘞,于是乎,我就开始工作啦 由 ...

  5. UE4开发PSVR游戏流程

    先与sony的开发者关系部建立联系,展示工作室/公司制作PSVR游戏的构想和计划以及制作实力,如果对方觉得你提供的信息具有说服力,则会提供开发者资格,和你签署NDA,给你租借开发机和测试机(免费). ...

  6. HTML5外包注意事项-开发HTML5游戏的九大坑与解决方法剖析

    随着移动社区兴起,势必带动HTML5的革命.未来一两年内,HTML5移动游戏必将呈现大爆发趋势. 以下是整理的HTML5游戏研发.市场趋势以及渠道布局和技术解决方案的内容.希望大家能从本文中找到对HT ...

  7. C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例

    C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判 ...

  8. C#开发Unity游戏教程之Unity中方法的参数

    C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号“( )”,有意义吗?看起来最多也就是起个快速识别 ...

  9. C#开发Unity游戏教程之游戏对象的行为逻辑方法

    C#开发Unity游戏教程之游戏对象的行为逻辑方法 游戏对象的行为逻辑——方法 方法(method),读者在第1章新建脚本时就见过了,而且在第2章对脚本做整体上的介绍时也介绍过,那么上一章呢,尽管主要 ...

随机推荐

  1. 工作10年后,再看String s = new String("xyz") 创建了几个对象?

    这个问题相信每个学习java的同学都不陌生,作为一个经典的面试题,到现在工作这么多年了我真是认为挺操蛋的一个问题,在网上到现在你仍然可以看见很多讨论这个问题的人,其中不乏工作很多年的人都有争论,我认为 ...

  2. 虚拟机系列 | JVM运行时数据区

    本文源码:GitHub·点这里 || GitEE·点这里 一.内存与线程 1.内存结构 内存是计算机的重要部件之一,它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱 ...

  3. phpcms v9.6.0任意文件上传漏洞

    距离上一次写博客已经过去很长一段时间了,最近也一直在学习,只是并没有分享出来  越来越发现会的东西真的太少了,继续努力吧. 中午的时候遇到了一个站点,看到群里好多人都在搞,自己就也去试了试,拿下来后发 ...

  4. CCNP七层参考模型

    一.OSI七层参考模型 七层参考模型由ISO组织提出,为什么是参考模型呢?因为我们现在实际应用的是TCP/IP协议栈,OSI模型仅供学习参考,下面具体说一下有哪七层: (7)应用层:应用程序和服务功能 ...

  5. MySQL表关系总结

    一对多关系  : 一对多关系是关系数据库中两个表之间的一种关系,该关系中第一个表中的单个行可以与第二个表中的一个或多个行相关,但第二个表中的一个行只可以与第一个表中的一个行相关. 一对多关系,一般是一 ...

  6. POI和easyExcel

    POI与easyExcel 这个东西一般用来做什么? 将用户信息导出为Excel表格(导出数据) 将Excel表中的信息录入到网站数据库(比如一些习题上传) 在开发过程中会遇到对Excel的处理,比如 ...

  7. Unity Shader学习笔记-1

    本篇文章是对Unity Shader入门精要的学习笔记,插图大部分来自冯乐乐女神的github 如果有什么说的不正确的请批评指正 目录 渲染流水线 流程图 Shader作用 屏幕映射 三角形遍历 两大 ...

  8. (入门)matlab中创建和调用m文件

    大学学过的一款软件,说实话没好好学,老师直接讲到高深的做仿真之类的 综合网上的教程讲述基础的matlab创建遇到的问题: 参考: 1. https://blog.csdn.net/weixin_423 ...

  9. Excel-VLOOKUP函数跨表匹配查找①

    问题场景 对表中的员工进行测评总结,从所有员工考核明细表中匹配这些参与测评的员工的得分和相关信息: 场景一 从所有员工明细表中匹配需要参与测评的员工相关信息. 建了两个sheet页,考核员工表和全员考 ...

  10. 2020Java程序员架构师面试宝典,学习后面试必过,震惊,本人通过这篇教程,拿到了0个offer

    1. 引言 Java后端学习路线 <吐血整理>顶级程序员工具集 https://github.com/AobingJava/JavaFamily 跟上Java8 经历阿里.头条.腾讯等知名 ...