有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Libgdx,我可以在身体中附加动画吗?

我是新来的,不管是谁。。。我对安卓游戏应用程序的开发很感兴趣,我正在自学如何使用Libgdx作为我的游戏引擎,并且已经制作了一款不太刺激的小游戏

我最近开始学习如何使用World变量并在其中创建实体,我想创建一个扩展Actor的类,为它提供动画(我知道如何提供动画),并尝试在实体上显示它,所以无论身体去哪里,动画在其上播放(基本上,动画下方是未显示的身体)

所以我的问题是:有没有一种方法可以让这个服装演员进入身体,让它在身体上表演(附上它们)

谢谢你的帮助

**注意:请注意,我的知识仍然有限,我是一名程序工程专业的大学生,我还没有完全深入了解java(我的学院没有教授游戏引擎)**

更新

我创建了一个服装课程,为每个动作制作了动画(比如herowalk、herosit等等)

我在其中写了一个渲染方法:

public void render(SpriteBatch batch) {
    float posX = bbody.getPosition().x * PPM;
    float posY = bbody.getPosition().y * PPM;

    float rotation = (float) Math.toDegrees(bbody.getAngle());

    sprite.setPosition(posX,posY);
    sprite.setRotation(rotation);

    sprite.draw(batch);
}

创建了一个主体,将其放置在屏幕的中间,并使用StUsSerDATA()将精灵连接到它:

BodyDef bdef = new BodyDef();
    bdef.position.set(160 / PPM, 200 / PPM);
    bdef.type = BodyDef.BodyType.DynamicBody;
    PolygonShape shape = new PolygonShape();
    shape.setAsBox(5 / PPM, 5 / PPM);
    bbody = world.createBody(bdef);
    Bodyarray.add(bbody);
    FixtureDef fdef = new FixtureDef();
    fdef.shape = shape;
    fdef.filter.categoryBits = BIT_BOX;
    fdef.filter.maskBits = BIT_PLATFORM | BIT_BALL;
    bbody.createFixture(fdef);
    bbody.setUserData(sprite);

在我的主要课堂上,我用批处理画画,我写道:

player.sprite.setRegion(player.getAnimationup().getKeyFrame(dt, true));
        dt += elapsedTime;
        player.render(batch);

不断改变动画取决于玩家是否向右、向左、向上、向下旋转

我唯一的问题是,它自己的精灵(动画效果很好)被绘制在屏幕的左下方(不是在0,0上,它看起来像是得到了身体的x,y,但仍然远离它),并且在移动身体时可以看到它附着在屏幕上(我放置了控制身体移动的控件),我看到精灵在移动用它

例如,我试图用Gdx检查身体和精灵的X,Y的协调性。应用程序。和往常一样记录,两者都有相同的精确X和Y。(ofc精灵的his乘以PPM(设为100),因为精灵不是实体)

是什么导致精灵位置错误


共 (0) 个答案