当前位置: 首页 > 知识库问答 >
问题:

自定义拉弓动画未显示-1.7.10版Minecraft Forge

张淳
2023-03-14

我正在创建itembow的一个非常基本的扩展。现在,我只是想改变我的新弓的纹理。我有“待机”图标工作正确,但当射击弓,我没有得到“拉动”图标循环通过动画。

下面是一个缺少动画的小屏幕。正如你所看到的,“待机”图标在整个拍摄过程中都是存在的。动画从不循环通过3个“拉动”图标。

http://screencast-o-matic.com/watch/c2lfr0e0ze

下面是我的课:

package com.swatkins.firstmod;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemBow;
import net.minecraft.util.IIcon;

public class DiamondBow extends ItemBow {

   public static final String[] bowPullIconNameArray = new String[] {"diamond_bow_pulling_0", "diamond_bow_pulling_1", "diamond_bow_pulling_2"};
    @SideOnly(Side.CLIENT)
    private IIcon[] iconArray;

   public DiamondBow()
   {
      setUnlocalizedName(FirstMod.MODID + "_" + "diamond_bow");
   }

   @Override
   @SideOnly(Side.CLIENT)
    public void registerIcons(IIconRegister p_94581_1_)
    {
        this.itemIcon = p_94581_1_.registerIcon(FirstMod.MODID + ":" + "diamond_bow_standby");
        this.iconArray = new IIcon[bowPullIconNameArray.length];

        for (int i = 0; i < this.iconArray.length; ++i)
        {
            this.iconArray[i] = p_94581_1_.registerIcon(FirstMod.MODID + ":" + bowPullIconNameArray[i]);
        }
    }
}

我知道有一个GetItemIconforUseduration方法,但是按住鼠标右键射弓时从来不调用它。我还尝试实现了geticon方法,但也没有调用它。

有谁能帮我把这个动画制作好吗?我很感激你的帮助!

附注:我已经在minecraft forge论坛上发布了这篇文章,但它似乎死在那里了。

共有1个答案

池永长
2023-03-14

我前一阵子做了一个定制的鞠躬。虽然这两种方法似乎没有必要,但它们是必要的。(我刚才删除它们是为了在我自己的弓上测试)下面是我如何编码方法的:

@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon (ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining)
{
    if (usingItem != null)
    {
        int time = 72000 - useRemaining;
        if (time < 8)
            return iconArray[0];
        if (time < 14)
            return iconArray[1];
        return iconArray[2];
    }
    return getIcon(stack, renderPass);
}

@Override
public IIcon getItemIconForUseDuration(int par1)
{
    return this.iconArray[par1];
}

希望这有帮助!

编辑:我找到了调用getItemIconForUseDuration()的位置。在EntityPlayer.class中,getItemIcon()调用它。

 类似资料:
  • 我面临着一个愚蠢的问题,默认值没有在表单中呈现。在我的应用程序中,当用户登录时,一个表单将自动填充一些细节,因为它将从存储的用户信息中提取数据,这些信息通过道具传递给我的组件。 但是,myValue常量有效,defaultValue不行。是的,我的组件用于多个其他组件,并且工作得非常好。它基本上是从'react'呈现''。 我需要什么来修复这个?

  • 您好,我正在使用。 }下面是各自的xml: 在适配器获取视图:公共视图getView(int位置,视图转换视图,ViewGroup父){ ImageLoader。从这里开始的Java 在从服务器加载映像之前,如何在中显示临时映像。

  • 我正在尝试弹出一个自定义对话框,当我点击一个按钮,但它不会弹出在所有。我的应用程序基本上是一个日历,我将使用sqlite在日历中添加/保留约会和其他内容,使用对话框,这是指定约会细节的地方。 我为此使用的代码如下: 我做错了什么?

  • 我有自定义的消息onbeforeunload事件和工作良好,但我注意到今天它不再显示我的消息。相反,它显示“可能不会保存您所做的更改” 谁能告诉我如何修理它吗?

  • 在我的应用程序中,当我试图显示自定义的框时,它在android手机中运行良好。现在,当我在android选项卡上安装应用程序时,一切都很好,只有自定义框有问题。不显示。所以我想,我应该检查正常对话框,它工作正常。下面是普通对话框和警报对话框的代码。

  • 奇怪的是,自定义图标在三星Mini(jelly bean)和Nexus 4(API 27)模拟器上显示正确,但在三星A6(Oreo)和华为Honory Lite 9(Oreo)设备上却显示不正确,在这些设备上,我看到了默认的绿色背景白色droid图标。 通知始终显示,但在某些设备上不使用自定义图标。 我尝试在AssetStudio中实现它,并且使用和不使用Notification Builder实