1.游戏简介
贪吃的小猪闯入了一座古堡,在里面发现了一个番茄,小猪一口咬下了番茄并津津有味地咀嚼着,然而,危险正在悄悄降临。原来,古堡中的番茄都被下了诅咒,番茄既能让食用者长生不老(增加一个生命值),也会招来怪兽的追杀。快来操纵小猪躲避怪兽的追杀并刷新你的最高得分吧!
2.游戏玩法
玩家使用上下左右四个键操作小猪移动,在古堡中,每5秒会在场景中间随机刷新一个番茄,每10秒会在场景右侧刷新随机一轮怪兽,玩家可以控制小猪吃番茄以增加一个点的生命值和十个点的得分,但每次吃下一个番茄,下一轮刷新的怪兽就会多一只。当怪兽抓到小猪时,小猪的生命值会减少1个点,同时抓到小猪的怪兽也会停止追杀并消失,当小猪的生命值小于等于1时,小猪死亡并游戏结束。
3.游戏展望
在游戏的玩法设计环节中,我在现有游戏的基础上增加了三个属性:1.在现实世界中我们吃一样东西,我们的体重会上升,相应的我们奔跑时的最大速度与加速度也会降低,同理在游戏中的小猪每吃到一个番茄,小猪奔跑时的最大速度与加速度也会降低一点;2.怪兽应该从古堡的四面八方刷新,而不应该只从场景的右侧刷新;3.当小猪的分数达到一定高度时,会刷新更高等级的怪兽,它们能造成的伤害值更高。
但在后续游戏的设计搭建环节中,我发现现有游戏的难度会随时间的推移指数型增加,本人多次游玩后的最高分数仅为130分,若再增加上述三点属性,那么游戏的难度将不适合普通玩家游玩,容易让玩家陷入焦虑,故我取消了上述三点属性。如果游戏需要继续改进,我觉得可以通过设置不同难度的关卡来实现这三点属性。
4.游戏编写
首先打开Construct3,点击新建。
输入项目名称Piggy eating tomato后点击创建
现在我们需要为游戏提供相应的素材,博客中给出几个素材供大家使用(博客中可能有水印),也可在文章后边的网盘链接中获取资源。
background
piggy
Tomato
monster
我们可以创建一个文件夹image并存下这些资源
现在我们在项目中添加精灵,左键双击项目内空白处,找到精灵(Sprite),添加一个精灵并命名为Piggy
点击后鼠标会变成十字形,再次点击项目空白处,出现动画编辑器,点击上方的导入图像按钮
找到我们的Piggy并放入
关闭动画编辑器,观察右边的项目栏应该会看到我们添加的精灵Piggy
按照上述步骤一一放置monster和Tomato,项目栏中会看到所有添加的精灵
对于背景,我们双击项目空白出并选择平铺背景
按照和放置精灵一样的方式放置background,现在项目栏应该如图所示:
我们将背景铺满整个项目中,点击background,在属性栏中将大小改为1708 x 960,坐标设置为0.0,如图所示:
现在可以看到背景已经完全覆盖住了游戏区域。
点击地图中的Piigy、monster和Tomato,设置大小分别为85 x 75、145 x 100、50 x 50,如图所示:
我们游玩时要看到全部地图,为了实现这一目的,我们点击项目栏中的场景1。
在属性栏中找到项目属性,点击查看。
找到显示并将可视区域调整为1708 x 960。
为了防止后面不小心误点按钮导致不必要的删改,我们可以锁定图层,右击地图,选择锁定。
锁定后图层栏应该会有锁的标志。
现在我们可以为每个精灵添加相应的属性了,我们在Piggy的属性栏中的实例行为,添加八方向、边界约束以及视野跟踪这三个实例行为,我们还需要将八方向的最大速度,加速度和减速度改为500,600,500,运动方向为4方向。八方向实现小猪的移动,边界约束实现小猪不会跑出地图,视野跟踪保证我们的视野一直以小猪为中心。
同理,我们给monster添加移动到这一实例行为,用于实现追杀小猪。
为了能让玩家能重新挑战游戏,我们可以设置一个Restart按钮,左键双击地图,选择HTML元素中的按钮并命名为Restart。
将按钮放在地图中间,并在属性栏中设置文本为Restart,取消勾选初始可见(当游戏结束的时候才会显示该按钮,所以先不让其初始可见)。
场景布置好了,现在我们通过添加事件来实现我们想要的效果吧。
依次鼠标左键点击上方的事件表->+添加->添加全局变量。
我们先添加Score这个变量用于统计得分。
再添加Health这个变量用于统计小猪的生命值。
再添加Amount用于统计下一轮monster的刷新数目。
最后添加running来判断游戏是否结束,这个布尔型变量在按钮控制的逻辑判断中用得到。
我们一共需要下面四个全局变量。
先来实现Piggy碰到Tomato,Tomato被小猪吃掉并加十分的相关事件。
鼠标左键点击+添加事件后显示如下画面:
我们选择Piggy,并找到碰撞到其它对象这一选项。
然后选择Tomato。
事件表会如图所示:
现在我们为事件添加动作,点击添加动作,并选择Tomato。
再选择销毁对象。
除此之外,小猪每吃一个苹果,生命值会+1,下一轮刷新monster会+1,得分会+10。
我们先实现得分这部分。
继续在该事件中添加动作,并选择系统。
选择增加值。
选择Score并增加值设为10。
按照同样的原理,我们可以设置Amount和Health。
设置好后如图所示:
按照同样的原理,我们可以添加三个事件。
生成的怪兽面向的方向应该是随机的。
首先,我们添加新事件,并选择系统。
然后选择场景开始时。
现在添加新动作,选择monster。
选择设置角度。
填写random(360),这样我们可以实现当场景生成时随机指向某一角度。
事件如图所示:
monster抓到小猪时会消失,小猪的生命值减1。
添加新事件,选择monster。
选择碰撞到其它对象。
选择小猪。
现在添加新动作。
选择怪兽。
选择销毁对象。
再添加新动作。
选择系统。
选择减小值。
选择Health,值填1。
添加完成后如图所示:
当游戏结束时,monster应停止对小猪的追杀。
添加新事件,选择系统。
选择判断布尔值。
选择running。
我们需要判断running的否定,右键点击running选择相反条件。
选择添加新动作。
选择怪兽。
再选择移动到中的停下。
添加好后如图所示:
现在我们实现按左右方向箭头键小猪能左右翻转。
找到在对象栏的对象,右击它选择添加新的对象。
找到键盘对象。
再回到事件表中,添加新事件,选择键盘。
选择按键被按下。
选择左箭头键←。
现在添加动作,选择小猪。
选择设置左右翻转。
选择左右翻转。
按照同样的道理,我们添加事件:按键盘右方向键→时小猪关闭翻转。
现在我们就实现按左右方向箭头键小猪能左右翻转。
现在我们实现场景内随机地点生成苹果,我们选择每5秒刷新一次苹果。
我们的逻辑是这样的
if(系统判断游戏正在运行):
系统每5s在(random(LayoutWidth),random(LayoutHeight))创建番茄对象。
即当游戏结束的时候,该事件不应该被执行。
添加新事件,选择系统。
选择判断布尔值。
选择running用于判断游戏是否在运行。
在这一事件中我们需要添加子事件。
右击事件->新建->添加子事件。
在子事件中选择系统。
选择每隔X秒执行。
填入5.
然后在子事件中添加动作。
选择系统。
选择创建对象。
选项番茄,新番茄的坐标点为(random(LayoutWidth),random(LayoutHeight))。
其中LayoutWidth为场景宽度,LayoutHeight为场景高度。
创建好后如图所示:
现在我们来实现每10s刷新一轮怪兽。
我们的逻辑是这样的
if(系统判断游戏正在运行):
系统每10s:
循环Amount次:
在(LayoutWidth+100,random(LayoutHeight))处生成怪兽对象。
这意味着有三个子事件。
我们和刚刚编写随机生成番茄一样先创建两个事件,再添加一个子事件。
现在我们编写第二个子事件。
选择系统。
选择循环。
按照图片填入。(名称可有可无)
现在添加动作。
选择系统。
选择创建对象。
按照照片填入。
创建好后事件如图所示:
为了小猪在移动时玩家能实时看到自己的分数、生命值和下一轮刷新怪兽数。我们应该新建一个HUD图层并将这些信息放在该图层上。
右击图层栏,选择在顶部添加图层。
我们现在需要添加3个文本对象
右击属性栏中的对象,选择添加,找到文本并命名为Score.
同理我们添加名称为Amount和Health的文本对象。
添加完后如图所示;
我们将3个文本对象放在HUD图层上,我配置的位置、颜色和大小如下:
现在我们添加事件来实现怪兽对小猪的追踪和得分、下一轮刷新数和生命值的实时刷新。
选择系统。
选择每一帧。
添加动作,选择怪兽。
选择移动到对象。
选择小猪。
现在我们实现实时更新得分。
添加新动作,选择Score。
选择更改文本。
填写内容如图:
接着按照同样的道理添加Amount和Health。
添加好后如图所示:
接着我们来处理小猪死亡的事件。
添加新事件,选择系统。
选择比较变量
按照图填入。
现在添加新动作,选择小猪。
选择销毁对象。
再添加动作,选择按钮,
选择设置可见。
选择可见。
再添加动作,选择系统。
选择设置布尔值。
将running的状态设为关闭。
现在该事件如图所示:
我们现在编写按钮相关事件。
添加新事件,选择按钮。
选择点击。
现在添加动作,选择系统。
选择画布中的重载场景。
再添加新动作,选择系统。
选择重制全局变量。
添加完后如图所示:
现在我们已经完成了全部的游戏编写了,可以点击上方的预览按钮进行游玩。
5.游戏演示
6.游戏资源
链接:https://pan.baidu.com/s/1xnux-48rX_UUerqh5VF86g?pwd=1234
提取码:1234