《我的世界》开发大师实战班,快来解开你的开发难题

2021-01-06
编辑:ICE
评论

优质的开发资讯交流平台,能够帮助各位开发者们更好地汲取开发相关知识,进而用于实践。《我的世界》开发大师实战班帮助开发者们更高效地投入到深层次开发创造之中。

  优质的开发资讯交流平台,能够帮助各位开发者们更好地汲取开发相关知识,进而用于实践。开发大师实战班通过为各阶段开发者提供有针对性的技术培训,解决了多个不同方面的开发难题,也拓展了开发者间的交流渠道,帮助开发者们更高效地投入到深层次开发创造之中。

  上一期开发大师实战班的重难点笔记解答了自定义相关的问题,大家有认真学习吗?本期开发大师实战班将带来关于MOD SDK使用中的答疑解惑,主要涉及UI及其他相关问题的补充,开发者们快召集伙伴,一起来学习吧。

  【MOD SDK答疑解惑】

  Q:想实现长按释放技能的效果,但是这个接口不会用,能讲讲吗?

  A:这个接口是这样的,原版长按按钮触发的效果有:与生物交互、右键使用物品、破坏方块等。所以这个接口设置的是这些原版操作的时间。如果你现在是要长按自己某个按钮释放技能的话,那就是按下按钮时记个时间差,然后ui都有个Update的多态,继承之后在里面比较下时间差,比如超过设定上的1秒,2秒就执行一次技能,然后按钮弹起时把那个时间差去掉。ui也有个update刷新函数,因为这个长按接口,跟自定义按钮关系不大,这个是长按屏幕多久触发mc原版的长按操作。

  Q:如果没写UI按钮,可以不用UI做长按释放技能吗?

  A:可以的。可以在玩家手持某个道具时长按设置比如3秒,那么长按屏幕会触发道具的tryuseevent,然后在事件里做你想要的技能,再在玩家切换到其他物品时重置这个时间。

  Q:UI上的TouchEventHandler,按住时是不是也是一直每秒30次触发对应的touch事件?

  A:按住的话只会触发一次touchdown事件,弹起时触发一次touchup事件。

  Q:变量域如何达到以装备件数来给予药水效果?

  A:如下图所示:

游侠网1

  Q:Fog的颜色RGBA值怎么写?

  A:将RGBA值/255后填入 fog.SetFogColor((R, G, B, A))即可。

  如下图所示:

游侠网2

  Q:time组件的计时问题怎么算?

  A:一天的时间为24000。

  Q:指南书如何制作?

  A:如下图所示:

游侠网3

  Q:请问有方法防止组件中存储到世界的数据不被别的组件干扰或者删除吗?

  A:因为目前组件出现过“别人的组件一加载就初始化世界数据”这种情况,这导致我们组件的玩家使用很久存储了很多资源数据在世界中,同时加载就会出现玩家资源数据丢失的情况。首先,extraData应该还是有个能够储存数据量的上限。个人认为,每个键对应的数据量有一个上限。其次,注意自己的key不要跟别人的重复。如果是方块数据的话,之后可以保存到自定义方块实体上。

  Q:这个接口是无效的吗?

  SetPlayerMaxExhaustionValue

  comp = serverApi.CreateComponent(player_id, "Minecraft", "player")

  comp.SetPlayerMaxExhaustionValue(0.1)

  A:该接口本来是调整玩家饥饿度消耗速度的,接口说明上写的是“值越大速度越慢”。

  而我们这边调整让他低于默认值并没有变化。可以参考wiki上面的饱和度词条。

  因为饱和度计算起来很麻烦,wiki饥饿链接:https://minecraft-zh.gamepedia.com/%E9%A5%A5%E9%A5%BF

  我们按照wiki上的食物饱和度词条,已经将饱和度设置为0了。但是饥饿条没有抖动,也没有掉饱和度。这个接口看起来是原版有一个消耗度,当触发了你设置的这个MaxExhaustionValue后,会归零且饥饿度减少1。如果这几个消耗很慢的话,就尝试设置默认最大值为4,然后print返回结果验证是否设置成功。

  Q:结构载入时,有方法保证一定在水面之上么?

  A:有的。Y用三元运算符,使其必须取到62格以上的位置,否则会放置在0格。

  Q:可以主动让区块加载吗?

  A:因为手动放置结构的话也会遇到区块未加载、放置失败的问题。这里的最小最大坐标设置、key作用不明。

游侠网4

游侠网5

  可以尝试用(SetAddArea)这个接口。如果要设置一个区块的加载区域,就需要给一个最小坐标和最大坐标。可以理解为一个方盒子,在这个区域内尝试放置。key就是一个身份证明,之后要回收掉这个常加载区域的话,要用key来回收。建议直接用原版指令设置常加载区块。如图所示:

游侠网6

  Q:获取指定范围内的实体列表如何在代码层实现?

  A:(除开SetCommand组件的方式)两种方法:一种是获取存档所有实体(不包括玩家);另一种是获取正方体范围内实体(包括玩家)。这个在组建文档里都有的,建议用GetEntitiesAround接口中的filters参数。

  Q:GetComponent可以获取到JSON里定义的部分吗?

  A:建议用attrComp试试。例如下图所示:

游侠网7

  Q:请问下述情况原因是什么?

  如下代码,路径一切正常,注释掉第七行的话,第八行也会报错furnaceManagerFactory.py这个文件找不到很奇怪。

游侠网8

游侠网9

游侠网10

  A:有可能是把init.py文件删掉了,或是把furnaceManagerFactory文件删掉了,又或者是添加了其他内容进来。可能某个module里面,有东西弄错了。建议再看看有没有哪里格式错了等等。检查下文件里有个缩进是真tab,而不是四个空格。如果是四个空格,python文件直接就不认了。

  Q:请问这个写法有什么问题吗?

游侠网11

游侠网12

  A:可以用"!="。is not是地址比较,字典的类型里的str的储存方式和普通str不太一样。

  以上问题的解答都来自开发大师实战班导师Spcoo和境界,大家看完有没有将心中的疑问解开呢?关于实战班还有更多精彩内容,欢迎关注开发者公众号:我的世界Minecraft开发者 进一步了解!《我的世界》将与你一同成长,探索无限的创造可能。

  关于《我的世界》

  网易游戏代理的《我的世界》(Minecraft)是一个关于方块与冒险的游戏,玩家可以独自一人或与朋友们一起自由冒险,探索随机生成的世界,创造令人惊叹的奇迹。无论是建造简单质朴的小屋,还是拔天倚地的城堡,尽可自由发挥你无穷的想象力。

  《我的世界》官方网站:https://mc.163.com/

  《我的世界》官方微信:我的世界Minecraft

  《我的世界》官方微博:我的世界Minecraft

  《我的世界》官方论坛:https://mc.netease.com/

  《我的世界》官方客服电话:PC版 95163815;手游 95163816

  《我的世界》官方玩家交流QQ群:677602705

  《我的世界》创造者反馈邮箱:minecraftstarter@163.com

更多内容:我的世界专题我的世界论坛

相关评论

新游测试表

更多>>
日期 游戏名字 状态 操作
11-01 战舰世界 星际迷航 淘号
10-23 霸王大陆 索拉里斯 抢号
10-16 坦克世界 1.26.1 淘号
11-16 泰亚史诗 “高燃高爆突破重围” 抢号
09-21 绿茵信仰 周年庆版本 抢号
11-18 刀剑online 公测 抢号
11-04 龙武 内测 抢号
11-03 奇迹MU 塞尔苏斯 抢号
07-14 生死狙击2 公测 抢号
03-12 龙之封印 终极内测 抢号

高清美图

更多>>
《赛博朋克2077》游戏截图
《刺客信条:英灵殿》游戏截图
《泰坦工业》游戏截图
关于游侠 | 广告合作 | 人才招聘 | 投诉建议 | 联系我们 | 网站地图 | 版权保护投诉指引
CopyRight © 1999-2023 ALi213.Net All Right Reserved 苏ICP备2023007791号-1
游侠网 版权所有