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) 个答案