在Andengine中使用路径

发布于 2024-12-23 16:24:26 字数 449 浏览 0 评论 0原文

我在 AndEngine 中使用 Path,允许将精灵移动到提供 X 和 Y 坐标的特定位置。

我的 scehe 上附加了一朵云,我希望云在 X 轴上从一侧到另一侧来回移动但不超过相机(在横向模式下将是水平的)。

这是我到目前为止所得到的:

Sprite cloudSprite = new Sprite(50, 300, (TextureRegion)this.cloud);
final Path path = new Path(10).to(50,300).to(100, 300);

cloudSprite.registerEntityModifier(new LoopEntityModifier(new PathModifier(10, path)));

但这不能正常工作,我尝试将 X 和 Y 更改为参数,但无济于事。

有人知道我怎样才能完成这件事吗?

I am using a Path in AndEngine that allows a sprite to be moved to a specific location providing the X and Y coordinates.

i have a cloud attached to my scehe, and i want the cloud to move back and forth from side to side but not exceeding the camera, on the X axis(which would be horizontal in landscape mode).

Here is what i have so far:

Sprite cloudSprite = new Sprite(50, 300, (TextureRegion)this.cloud);
final Path path = new Path(10).to(50,300).to(100, 300);

cloudSprite.registerEntityModifier(new LoopEntityModifier(new PathModifier(10, path)));

This doesnt work correctly though, ive tried changing the X, and Y to parameters but to no avail.

Anyone know how i could get this done?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疧_╮線 2024-12-30 16:24:26

您不应该为此目的使用 PathModifier;请改用 MoveXModifier

final float minX = 0;
final float maxX = CAMERA_WIDTH - cloudSprite.getWidth();
final float duration = //Duration for the full move across the screen here.
final MoveXModifier rightMoveModifier = new MoveXModifier(minX, maxX, duration);
final MoveXModifier leftMoveModifier = new MoveXModifier(maxX, minX, duration);
cloudSprite.registerEntityModifier(new LoopEntityModifier(new SequenceModifier(rightMoveModifier, leftMoveModifier)));

(这里我们假设游戏加载时云被放置在屏幕的左侧)

这应该可行。

You shouldn't be using a PathModifier for this purpose; Use MoveXModifier instead.

final float minX = 0;
final float maxX = CAMERA_WIDTH - cloudSprite.getWidth();
final float duration = //Duration for the full move across the screen here.
final MoveXModifier rightMoveModifier = new MoveXModifier(minX, maxX, duration);
final MoveXModifier leftMoveModifier = new MoveXModifier(maxX, minX, duration);
cloudSprite.registerEntityModifier(new LoopEntityModifier(new SequenceModifier(rightMoveModifier, leftMoveModifier)));

(Here we assume the cloud is placed in the left of the screen when the game loads)

This should work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文