怎么在地图上的指定地方渲染一个模型


版本信息
你使用的IDE:Eclipse
你使用的IDE版本:Eclipse IDE for Java Developers - 2019-12
Forge版本: forge-1.12.2-14.23.5.2768
Minecraft版本: 1.12

错误情况简述
游戏里面没有渲染出我要的模型

相关代码

        static RenderManager Render_Test_Manager = Minecraft.getMinecraft().getRenderManager();
	static EntityPlayer players = Minecraft.getMinecraft().player;
	
        @SubscribeEvent
	public static void get_an_player(PlayerLoggedInEvent event) {
		players = event.player;
	}

	@SubscribeEvent
	public static void render_test(RenderPlayerEvent.Post event) {
		
		if (players != null) {

		GlStateManager.enableRescaleNormal();
		GlStateManager.pushMatrix();
		GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
                Entity_test entity_test = new Entity_test(players.getEntityWorld());

                Render_Test_Manager.renderEntity(entity_test, 0, 0, 0, 0, 0, false);
                GlStateManager.popMatrix();
                GlStateManager.disableRescaleNormal();
                }
             }

上面这串代码运行起来是没有问题的,能在玩家脚下看到渲染的模型,但是由于第一人称的时候不渲染玩家,也就没法看到我要渲染的东西了,因此我换了一个事件,如下代码

        static RenderManager Render_Test_Manager = Minecraft.getMinecraft().getRenderManager();
	static EntityPlayer players = Minecraft.getMinecraft().player;
	
        @SubscribeEvent
	public static void get_an_player(PlayerLoggedInEvent event) {
		players = event.player;
	}

	@SubscribeEvent
	public static void render_test(RenderWorldLastEvent event) {
		
		if (players != null) {

		GlStateManager.enableRescaleNormal();
		GlStateManager.pushMatrix();
		GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
                Entity_test entity_test = new Entity_test(players.getEntityWorld());

                Render_Test_Manager.renderEntity(entity_test, 0, 80.0D, 0, 0, 0, false);
                GlStateManager.popMatrix();
                GlStateManager.disableRescaleNormal();
                }
             }

就仅仅只是把RenderPlayerEvent.Post改成了RenderWorldLastEvent,但是进游戏之后在x=0 y=80 z=0 的位置并没有看到要渲染的模型,我还试过RenderTickEvent,但是结果都是失败,这是咋回事?


nowandfuture


那个位置是相对于玩家的,不是在世界坐标系下的。



噢噢,原来是这样的吗?我以为只有 RenderPlayerEvent.Post 的坐标是相对于玩家的,没想到
RenderWorldLastEvent也是,但是这样的话好像就没法在地图上的指定位置渲染一个模型了吧?因为相对于玩家的话,玩家动,他也会动,有没有什么解决方法吗?


FledgeXu


你需要渲染什么模型?
为什么在制定位置渲染模型?
要指定位置渲染模型不能给方块或者实体指定一个模型吗?



做成实体的话就算设置无敌,打到也会有音效和暴击效果,而我不希望这个模型可以被打到,因此才会有直接渲染模型的想法,就像信标那道光束那样


FledgeXu


你可以取消实体的碰撞箱的啊……



What should I do?
不写碰撞箱的话就一直掉血,很难受


FledgeXu


我也没有具体实现过,我也不清楚怎么做。
会掉血是不是你可以换一个Entity的子类继承,继承那种没有血量的实体。
但是我觉得你可以看看原版盔甲架或者矿车的写法之类的?



好吧,感谢


FledgeXu


请选择一个楼层或者自己补充信息作为答案。


system


该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。