3D游戏建模与设计作业1:Construct3平台的新手入门教程并基于Construct3平台编写一款类贪吃蛇游戏:小猪吃番茄(Piggy eating tomato)

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.游戏演示

3D游戏编程与设计作业1 小猪吃番茄

6.游戏资源

链接:https://pan.baidu.com/s/1xnux-48rX_UUerqh5VF86g?pwd=1234 
提取码:1234

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值