libgdx - LibGdx:在同一批次上渲染 Sprite 和 PolygonSprite?
问题描述
对于我的应用程序,我需要在同一帧中渲染精灵(或纹理)和多边形精灵(或网格)。对于精灵,我在 Spritebatch 上渲染它们,对于 PolygoneSprites,我应该在 PolygonSpritebatch 上渲染它们。但我真的不能这样做:
spriteBatch.begin()
spritebatch.draw(sprite)
...
spriteBatch.end()
polygonSpritebatch.begin()
polygonSpritebatch.draw(polygonSprite)
...
polygonSpritebatch.end()
spriteBatch.begin()
spritebatch.draw(sprite)
...
spriteBatch.end()
etc...
那么,有没有办法?附上图片,看看我想要什么。
非常感谢 !
解决方案
简短的回答:
您可以使用 aPolygonSpriteBatch
来绘制 aSprite
以及 aPolygonSprite
像这样:
polygonSpriteBatch.begin();
sprite.draw(polygonSpriteBatch);
polygonSprite.draw(polygonSpriteBatch);
更长的描述:
绘制 aSprite
或 aPolygonSprite
与您问题中的示例代码有些不同。因为既没有SpriteBatch
方法draw(Sprite)
也没有PolygonSpriteBatch
方法draw(PolygonSprite)
,你做不到spriteBatch.draw(sprite)
。
这样做的方法是这样的:
spriteBatch.begin();
sprite.draw(spriteBatch);
polygonSpriteBatch.begin();
polygonSprite.draw(polygonSpriteBatch);
现在,由于PolygonSprite.draw将 aPolygonSpriteBatch
作为参数,您将无法将 a 传递SpriteBatch
给此方法。
但是由于Sprite.draw将Batch对象作为参数,您可以将 aSpriteBatch
或 aPolygonSpriteBatch
作为参数传递(因为这两个类都实现了Batch
接口)。
推荐阅读
- javascript - PHP to HTML:使用动态内容管理水平列表
- asp.net-mvc - ASP.NET MVC 区域返回空白视图
- jquery - asp.net Core 2.1 MVC 验证器不工作
- c# - 为什么位图保存为 PNG
- android - Dagger2 注入单元测试为空
- python - b'BODY[] 中的方括号没有内容,我的电子邮件正文为无。这2个有联系吗?
- corda - 如何映射一个相当复杂的业务流程,如订单到现金到 Corda 流
- c# - Build server of an old ASP.NET 4 application fails building new C# 7, but it works in development
- r - 绘制一个数据框列表,每个数据框有 4 个变量
- javascript - 视频结束后如何启用按钮。?