Minecraft源码分析_Effect模块(药水效果模块)总体分析 - 教程中心 - Minecr
<strong>Effect模块总分析</strong><br /><font color="#333333"><font face="&quot;"><font style="font-size:16px">笔者是忠实的Minecraft玩家,最近在游玩过程中想要在生存中使用类似于创造的飞行,却找不到对应的mod,后准备自己动手写一个。想要写漂亮mod就必须阅读Minecraft源码,笔者找遍了中文互联网,系统分析Minecraft源码的少之又少。为促进中文Minecraft社区发展,遂自己动手系统分析Minecraft源码。由于Minecraft有大小接近五千个类,本人工作也比较繁忙,所以这会是一个很大的工程。(注:笔者非计算机专业,有工作更新缓慢,望各位勘误)。</font></font></font><br /><strong>一,概述</strong><font style="color:rgb(51, 51, 51)"><font face="&quot;"><font style="font-size:16px">Effect模块为药水效果模块,主要定义了效果的种类和效果的实现。</font></font></font><strong>二,模块结构</strong><font style="color:rgb(51, 51, 51)"><font face="&quot;"><font style="font-size:16px">Effect模块核心是MobEffect,所有药水效果都继承自MobEffect类,其中即时生效的药水继承自InstantenousMobEffect类,InstantenousMobEffect类又继承自MobEffect类。下面是我画的E</font></font></font><font style="color:rgb(51, 51, 51)"><font face="&quot"><font style="font-size:16px">ffect类核心的UML图。</font></font></font><img onerror="study_killerrpic(this)" id="aimg_y59S5" onclick="zoom(this, this.src, 0, 0, 0)" class="zoom" width="110" src="https://klpbbs.com/forum.php?mod=image&aid=387680&size=300x300&key=616ec4e5f460bcfc&nocache=yes&type=fixnone" border="0" alt="" /><strong>三,如何实现一个药水效果</strong><font style="color:rgb(51, 51, 51)"><font face="&quot;"><font style="font-size:16px">这分为两种情况:</font></font></font><font style="color:rgb(51, 51, 51)"><font face="&quot;"><font style="font-size:16px">1,普通效果,代表的就是生命恢复效果,作用具有一定时间。对于这类效果的实现,只需要继承MobEffect类,重写applyEffectTick方法就能实现。</font></font></font><font style="color:rgb(51, 51, 51)"><font face="&quot;"><font style="font-size:16px">2,即时效果,代表的就是瞬间治疗效果,作用是一瞬间的。对于这类效果的实现,需要继承InstantenousMobEffect类,重写applyInstantenousEffect方法。</font></font></font><strong>四,最后,Effect模块每个类的具体分析我将在苦力怕论坛持续更新</strong><br /><img id="aimg_387680" aid="387680" src1="static/image/common/none.gif" zoom="https://ip.klpbbs.com/attach.php?id=/forum/202405/11/212217yboo0mbzbbaz5x5b.png" src="https://ip.klpbbs.com/attach.php?id=/forum/202405/11/212217yboo0mbzbbaz5x5b.png" class="zoom" onclick="zoom(this, this.src, 0, 0, 0)" width="600" alt="Effect.png" title="Effect.png" w="3413" /><br>来源:<a href="https://klpbbs.com/thread-135665-1-3.html" target="_blank">https://klpbbs.com/thread-135665-1-3.html</a><br>免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! 有用!支持!
页:
[1]