generated from TeamGensouSpark/LunarCapitalFramework
-
Notifications
You must be signed in to change notification settings - Fork 0
04. 弹幕
H2Sxxa edited this page Sep 22, 2023
·
10 revisions
子实体使用非常简单,只需要继承、注册就可以直接使用。
这是最为简单的一种弹幕,FormTextured
已经为你处理好了大部分逻辑,你只需要传递好贴图路径和注册就行了。
如果你要使用的话FormTextured
,你需要实现2个抽象方法,来处理长宽,FormTexturedStatic
已经为我们实现了这2个方法,直接使用FormTexturedStatic
即可。
public static final Form DEMO = new FormTexturedStatic("demo", 1D, 1D,...);
@SubscribeEvent
public static void onSpellcardRegister(RegistryEvent.Register<Spellcard> event) {
event.getRegistry().registerAll(DEMO);
}
相比贴图弹幕,这种弹幕需要你掌握OBJ建模能力,可能需要使用Blender。
我们拥有一个符合Danmodel规范的OBJ后,使用工具直接转化即可得到OBJ
TeamNightClipse似乎没有提供DanModelFromObj的二进制文件,我编译了一份,可以在Release/v1.0.0下找到
安装Java 8后,使用java -jar .\DanModelFromObj-assembly-1.0.jar
即可查看用法
基本用法是java -jar .\DanModelFromObj-assembly-1.0.jar -i <OBJ模型路径>
public static final Form DEMO = new FormDanModel("demo",...);
@SubscribeEvent
public static void onSpellcardRegister(RegistryEvent.Register<Spellcard> event) {
event.getRegistry().registerAll(DEMO);
}
这是三类弹幕中难度最高,最贴近底层的一种弹幕,你需要继承FormGenric
然后通过手动调用GL11/GlStateManager/Tessellator/...
来实现你的渲染。
继承后你需要在createRenderer
(注意标注SideOnly(Side.CLIENT)
)返回一个IRenderForm
对象,IRenderForm
中有些非抽象方法也必须实现,为了减少步骤你可以使用Kekkai的BaseRenderForm
。