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

将图像绘制到Box2D主体

唐兴贤
2023-03-14

我能得到一个如何让图像出现在box 2d主体上的简单答案吗?我试着为图像和主体制作一个x和y int,但是一旦主体移动,图像就会保持静态。如果你回答了,请尽可能解释代码。如果你对我的完整源代码感兴趣,请查看我的帖子:http://www.java-gaming.org/topics/libgdx-drawing-a-sprite-on-to-a-box2d-body/33894/msg/319927/view.html#msg319927

共有1个答案

鲁淇
2023-03-14

这就是我一直在用的方法。由于主体位置位于其中心,但精灵的位置位于左下角,因此需要对精灵应用宽度/2和高度/2的偏移。

public void drawSpriteForBody(Body body, Sprite sprite, SpriteBatch spriteBatch) {
    Vector2 offset = new Vector2(sprite.getWidth() / 2f, sprite.getHeight() / 2f);
    Vector2 position = body.getPosition().cpy().scl(Constants.PIXELS_PER_METER).sub(offset);
    float rotation = body.getAngle() * MathUtils.radiansToDegrees;
    sprite.setRotation(rotation);
    sprite.setPosition(position.x, position.y);

    sprite.draw(spriteBatch);
}
 类似资料:
  • 如何在静态box2d主体上绘制文本(字体)? 背景:我能够正确地在身体顶部绘制精灵。我这样做是通过有一个,它被投影在box 2dCamera上,就像box 2dSpriteBatch.set投影矩阵(box 2dCamera.combined);然后简单地使用身体的在正确的位置渲染精灵。 但是如果我尝试用同样的方法来处理字体,不幸的是,它的缩放非常大,如果我尝试缩放字体,它就不会出现。所以我假设我

  • 问题内容: 我正在设计一个程序,该程序在JFrame中包含两个JPanel,一个用于保存图像,另一个用于保存GUI组件(Searchfields等)。我想知道如何将图像绘制到JFrame中的第一个JPanel? 这是我的构造函数的示例代码: } 我试图覆盖JPanel的paintComponent方法来绘制图像,但是当我尝试编写时,这在我的构造函数中导致了一个问题: 因为这将只允许我传递null的

  • 问题内容: 如何将图像绘制到JPanel或JFrame,我已经阅读了oracle的相关教程,但似乎无法正确完成。我需要将图像“ ”显示在一组特定的坐标上。这是我到目前为止所拥有的。 在Main()中 提前致谢! 问题答案: 试试这个:

  • 问题内容: 如何在“画布”中打开图像?被编码 我正在使用 输出是已编码的base 64图像。如何在画布上绘制此图像? 我要使用 并创建图片吗?可能吗? 如果不是,那么将图像加载到画布上的解决方案可能是什么? 问题答案: 给定一个数据URL,您可以通过将图像的设置为数据URL来创建图像(在页面上或仅在JS中)。例如: HTML5 Canvas Context 的方法使您可以将图像(或画布或视频)的全

  • 除了绘制矢量图形和文本之外,canvas还提供了极为丰富的图像支持。开发者可以选择绘制某幅图像的全部或某个部分,在绘制时可以进行缩放或保持原样,可以把图像绘制到画布的任何地方。同时,还允许开发人员直接访问画布的像素数据。数据访问是双向的,既可以获取画布中的像素数据,也可以把像素重新绘制到画布中。 Canvas的API提供了如下4个用于绘制及操作图像的方法: drawImage():把图像、或另一个

  • 通过绘制一幅简单的图像,让我们直奔主题。本节,我们将学习如何加载一幅图像,并把它绘制到画布的某个地方。 图3-1 绘制图像 绘制步骤 按照以下步骤,在画布中央绘制一幅图像: 1. 定义画布上下文: window.onload  = function(){ var canvas  = document.getElementById("myCanvas"); var context  = c