登录
<
>

今日新帖:1 | 帖子数:2004 | 会员数:1.1万

欢迎新会员:
  • 3165419
  • user2VPGpA
  • 情若能自控 、
  • userWoqP25
  • 小城一家
搜索

艾兰岛编辑器初级题目,我的作业

楼主
  • 主题

    3

  • 帖子

    14

  • 精华

    0

+加好友 查看TA的游戏
  • L0
  • 2

发表于:2020-12-18 17:57:16 楼主

大人,来艾兰岛论坛喝口茶聊聊天吧,可直接WeGame登录哦~

您需要登录才可以下载或查看。 登录

x
本帖最后由 上好的韭菜 于 2020-12-19 17:27 编辑

接触艾兰岛有3个多月了,最近感觉自己需要再学习一下。
看到【艾兰岛编辑器初级题目】这个帖子,利用它来对自己的知识查漏补缺。
以下题目都来出自帖子(【艾兰岛编辑器初级题目】)。
另一个同学-日月空也做了这些题目,他的答案在(https://        bbs.ylands.qq.com/forum.php?mod=viewthread&tid=5639)。

1.在玩家出生时,通过控制台输出1-100的数字
1.png
--
需要会使用2个脚本:循环、控制台输出。
--
在使用"for(循环计数),从A,到B,步长C”这个脚本时,需要注意:从A到B,包含A,但不包含B。
所以,要得到1-100,需要“从1,到101”。
2.在玩家出生时(事件下限3行代码),通过一个自定义函数(不限代码行数),控制台输出数字。输出的内容为1-100的数字,100以内的奇数,100以内的偶数。
2.png
--
用取余来判断奇偶。
--
3.在玩家出生时,通过自定义函数,用气泡每秒输出1个不断叠加的数字。起始值为0。(不允许使用时间触发器)

3.png
--
首先需要在脚本中设置一个变量,用来保存上一个数字。我这里叫“不断增加的数字”。
之后是这道题的关键点。在不使用时间触发器时,需要使用 递归+延迟,来实现每隔一段时间做一件事。
(这些题目经常会“不允许使用时间触发器”。我觉得,用时间触发器,其实方便很多。)
--
4.在玩家出生时,通过自定义函数,用气泡每秒输出自己的位置。(不允许使用时间触发器)

4.png
--
和上一题类似。
需要会使用 获取位置 脚本。
--
5.通过气泡输出自己的旋转。(不允许使用时间触发器)
5.png
--
与上一题类似。
--
6.让一个动物(兔子)绕着Y轴不断旋转(不允许使用时间触发器)

6.png
--
这道题的答案不太复杂。需要使用“设置旋转”和“偏移后旋转”,但不使用“偏移后旋转”也能做到。
--
在艾兰岛中,除了设置位置旋转外。还可以使用“跟随”和“瞄准”来让实体持续移动。
但是动物没法用这些指令,我想了想办法也没成功。
而且动物还会发出声音,我也不知道如何消除。

7.让一个动物(兔子)绕着Y轴不断旋转(必须使用时间触发器)
7.png --
将上一题改用时间触发器
--
8.通过全局存储输出玩家的名字(使用标签和数组)

8.1.png
8.2.png
8.3.png
8.4.png
--
用到4个东西,出生点、标签、全局存储、开关。
在出生点的脚本中:玩家创建时,给玩家加上标签。
在全局存储中:定义一个函数-“输出玩家名称”。其中,通过标签获取全部玩家实体,再转化后才能文本。
在开关脚本中:开关打开时调用“输出玩家名称”。
--
这道题我本来是不会做的。我不会通过标签获取实体。
看了答案才知道。
也因此了解了一些标签的用法。

9.通过全局存储输出玩家的名字(使用全局变量)
9.1.png
9.2.png
9.3.png
9.4.png
--
与上一题类似。
区别是不使用标签,而是在全局存储中定义一个所有玩家的数组,在玩家出生时,加入数组中。
--
10.让玩家自己绕着Y轴不断旋转
10.png
--
与第6题类似。
不同的是,需要取到玩家。取到玩家有很多方法,可以使用第8、第9题的方法。
我这里用了“获取玩家”脚本。
--
11.让一个动物一直位于(玩家的位置+[0,0,1])
11.1.png
11.2.png
--
我是用时间触发器实现的。
需要注意的是,在玩家出生后,才开启时间触发器。
否则,玩家出生前,时间出发器就会调用,这时取不到玩家,会报错。
(虽然,其实这些报错也不影响之后的运行。但还是不让它报错好些。)
--
12.让一个动物一直位于 偏移(玩家)后的位置([0,0,1])
12.png
--
--
13.让一个玩家绕着Y轴旋转,动物永远处于玩家的正前方。(必须用代码完成)

13.png
--
这道题我也是用时间触发器做的。
题目要求“(必须用代码完成)”,不知道什么意思,所以我写了2种方式,有一种麻烦一些,代码多一些。
--
14.让一个动物绕着玩家旋转,玩家静止不动,且动物的脸朝向玩家。(必须用代码完成)

14.png
--
这道题,我的做法用到了一些计算,也达到了题目要求。
--
不过,我的做法比较麻烦。原帖的答案中,通过“旋转向量”和“获取从一点到另一点对应的旋转”这两个脚本完成,方便很多。
15.玩家攻击时在自己的周围形成一圈火焰圈。
15.1.png
15.2.png
15.3.png
--
我的解法,用到了 事件侦听、粒子效果、逻辑模板。
用事件侦听,侦听玩家的近战攻击。
之后,通过模板生成一圈火焰。我还加上了火焰延迟熄灭、删除的效果。
--
我的做法也比原帖的做法麻烦。
原帖使用“旋转向量”能能方便的计算坐标。使用“播放粒子”就替代我的逻辑模板,也方便很多。
通过对比,就学到了。

16.创建一个触发区域,进入时为夜晚12点+暴风雨,离开时为早上10点+晴天
16.2.png
16.3.png
--
需要知道“设置游戏内时间”、“设置各处天气”这2个指令。
我本来也是不知道的。通过搜索脚本可以找到。
而且,点击?,还可以看到脚本的详细说明。(不过有些没有)
--  
17.创建一个区域,缓慢向人移动,人进入时死亡。(不允许使用动画相关函数)
17.1.png
17.2.png
17.3.png
17.4.png
17.5.png
--
用到触发区域、时间触发器。
在触发区域中,设置进入后击败实体。
在时间触发器中,移动触发区域。
不过,直接这样做会碰到一个问题,会警告说不能移动触发区域。
需要勾选触发区域的“有动画的”。
--
18.创建一个区域,缓慢向人移动,人进入时死亡。(不允许使用动画相关函数,不允许使用时间触发器)
18.png
--
与上一题类似,只是把时间触发器的功能,改成用延迟来实现。
--
19.每秒创建1个区域(每个区域的颜色不同,每个区域的移动速度不同),缓慢向人移动,人进入时死亡。(不允许使用动画相关函数,不允许使用时间触发器)
19.1.png
19.2.png
19.3.png
--
这道题需要用到触发区域、逻辑模板、全局存储。
触发区域的脚本非常简单,与前两题一样,只是在玩家进入时击败。
全局存储的脚本较为复杂,需要生成触发区域并移动。
--
我的答案相比原帖也复杂一些。
原帖有2点值得学习。
一个是定义颜色时,我用的方式比较复杂,其实有一个简单的脚本。
第二个是,原帖把移动触发区域的脚本,放在了逻辑模板里(而非全局存储),这样最后的结果会更简洁一些。
不过,原帖也有2个错误。
一是,颜色的取值是0-1,而非0-255。(不过,这个也可能是版本原因,也许以前是255。但目前的版本一定是0-1了。)
第二个是,题目说“每个区域的移动速度不同”,原帖没有做这个处理。

版主
  • 主题

    5

  • 帖子

    461

  • 精华

    0

+加好友 查看TA的游戏
  • L0
  • 2

发表于:2020-12-21 00:10:30 沙发
楼主辛苦了

回复帖子

您需要登录后才可以回帖 登录 | 立即注册 登录

回帖 刷 新 回到顶部