如何在静态box2d正文上绘制文字(字体)?
背景:我能够正确地在身体上绘制精灵。
我这样做的方法是将box2dSpriteBatch
投射到box2dCamera上,如box2dSpriteBatch.setProjectionMatrix(box2dCamera.combined);
,然后使用身体的getPosition
将精灵渲染到正确的位置。
但是,如果我对字体尝试相同的方式,不幸的是它会缩小到非常大,如果我尝试缩小字体,它就不会出现。所以我假设我需要在窗口坐标而不是box2d中绘制文本。
我的尝试:
:
windowCamera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
在我调用的Render方法中
windowSpriteBatch.setProjectionMatrix(windowCamera.combined);
也在渲染中渲染字体
whiteFont.setScale(0.7f, 0.7f);
sb.begin();
whiteFont.draw(sb, "2", body.getPosition().x, (questionLineBody.getPosition().y)*PPM);
sb.end();
答案 0 :(得分:0)
解决方案是PPM基本上*我的x位置。
即
将这些行添加到Render方法:
windowCamera.position.y = box2dCamera.position.y * PPM;
windowCamera.update();
windowSpriteBatch.setProjectionMatrix(windowCamera.combined);
并渲染字体:
whiteFont.draw (sb,"2", body.getPosition().x * PPM, body.getPosition().y * PPM);