java - ShapeRenderer 没有在图像后面绘制 FilledRectangles
问题描述
我正在尝试使用此代码在两个不同的图像后面绘制 FilledRectangles。但是 ShapeRenderer 没有绘制任何东西。
public void render(float delta) {
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
shapeRenderer.setColor(tankColor);
shapeRenderer.rect(tankButton.x, tankButton.y,
tankButton.width+50, tankButton.height+50);
shapeRenderer.setColor(notesColor);
shapeRenderer.rect(notesButton.x, notesButton.y,
notesButton.width+50, notesButton.height+50);
shapeRenderer.end();
batch.begin();
batch.draw(assetsLoader.backTexture, 0, 0, screenWidth, screenHeight);
assetsLoader.shadow.draw(batch, " Touch for Sound !",
Gdx.graphics.getWidth() / 2f - 150 + 5,
200 + assetsLoader.font.getCapHeight() + 5, 400, Align.center, false);
assetsLoader.font.draw(batch, " Touch for Sound !",
Gdx.graphics.getWidth() / 2f - 150,
200 + assetsLoader.font.getCapHeight(), 400, Align.center, false);
// draw tank and notes image
batch.draw(assetsLoader.tankTexture, tankButton.x, tankButton.y,
tankButton.getWidth(), tankButton.getHeight());
batch.draw(assetsLoader.notesTexture, notesButton.x, notesButton.y,
notesButton.getWidth(), notesButton.getHeight());
batch.end();
}
解决方案
我想到了。我所要做的就是在插入填充矩形后开始另一批。这就是我所做的:
public void render(float delta) {
batch.begin();
batch.draw(assetsLoader.backTexture, 0, 0, screenWidth, screenHeight);
assetsLoader.shadow.draw(batch, " Touch for Sound !",
Gdx.graphics.getWidth() / 2f - 150 + 5,
200 + assetsLoader.font.getCapHeight() + 5, 400, Align.center, false);
assetsLoader.font.draw(batch, " Touch for Sound !",
Gdx.graphics.getWidth() / 2f - 150,
200 + assetsLoader.font.getCapHeight(), 400, Align.center, false);
batch.end();
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
shapeRenderer.setColor(tankColor);
shapeRenderer.rect(tankButton.x-25, tankButton.y-25,
tankButton.width+50, tankButton.height+50);
shapeRenderer.setColor(notesColor);
shapeRenderer.rect(notesButton.x-25, notesButton.y-25,
notesButton.width+50, notesButton.height+50);
shapeRenderer.end();
batch.begin();
batch.draw(assetsLoader.tankTexture, tankButton.x, tankButton.y,
tankButton.getWidth(), tankButton.getHeight());
batch.draw(assetsLoader.notesTexture, notesButton.x, notesButton.y,
notesButton.getWidth(), notesButton.getHeight());
batch.end();
推荐阅读
- react-native - React Native中,使用expo-location,iOS中gps位置刷新率太低
- python - 用 1 到 165 混淆的数字替换长字符串中的每个“$”?
- linux - 如何在远程服务器上上传 laravel 项目
- javascript - 如何使用 JavaScript 验证表单输入
- javascript - HTML5 中的旧脚本
- flutter - Flutter驱动程序如何等待特定元素具有特定文本
- python - 'mysql.connector.django' 不是可用的数据库后端 Django 版本 3.+
- timer - RxJs:重复检查全局变量的值,直到值满足要求或达到最大时间限制
- java - 什么是
预期的Java错误是什么意思? - javascript - 使用 Electron Builder 编译后,Electron 主进程不会加载其他文件