问题标签 [spritebatch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1697 浏览

java - Libgdx:舞台正在搞乱批处理

我的代码有问题,在我开始使用步骤绘制 UI 后出现,我用 Batch 绘制了 3 个东西,Stage 绘制了一个带有 2 个按钮的舞台,但我的“精灵”中只有 2 个正在画。这是代码:

没有绘制的是文本“某些文本”,如果我将其注释掉,它会发疯,标题精灵也不会被绘制,并且随机出现一个灰色框。

另外,如果我移动“stage.draw();” 在批次之外它不会被绘制

0 投票
0 回答
408 浏览

java - LibGDX SpriteBatch 128 个精灵是单次刷新的限制吗?

我编写了简单的桌面程序来绘制一些精灵:

它工作得很好,处理器负载增加了 1-4%,但是如果我增加精灵的数量高于 128,那么负载会增加到 25%。为什么会发生这种情况以及该怎么办?

0 投票
1 回答
2473 浏览

background - libGDX 渲染大背景图像的最佳方式是什么?

libGDX 文档解释了如何将纹理绑定到 SpriteBatch...

如果 [SpriteBatch] 被赋予与上一个纹理不同的纹理,则它绑定最后一个纹理,提交收集的要绘制的几何图形,并开始为新纹理收集几何图形。

每隔几个绘制的矩形更改纹理会阻止 SpriteBatch 批量处理大量几何体。此外,绑定纹理是一项昂贵的操作。由于这些原因,通常将许多较小的图像存储在较大的图像中,然后绘制较大图像的区域以最大化几何批处理并避免纹理更改。

出于这个原因,我将我所有的游戏精灵图像排列成一个纹理。但是,我现在希望在我的游戏中放置一个大的背景图像来填满整个屏幕。

我的选择似乎是...

  1. 将背景放在我用于较小游戏精灵的相同纹理中,或者...

  2. 使用单独的纹理作为背景。

#1的问题是,如果我想为不同的级别使用不同的背景图像,这似乎非常不切实际(我的图像变得非常大,或者我必须为每个不同的背景在多个图像中复制我的游戏精灵)

但是如果我做#2,那么我必须在每次提交到 GPU 之前将 SpriteBatch 绑定到 2 个不同的纹理,文档将其描述为“相当昂贵”。

我不知道最好的方法是什么。我真的需要担心绑定到多个纹理吗?或者有没有我没有考虑过的更好的方法?

寻求任何建议,谢谢!

0 投票
1 回答
514 浏览

libgdx - libGDX - 从 SpriteBatch 中删除/减去纹理区域?

我的游戏屏幕中有许多方形区域,当演员穿过这些区域时,我希望背景图像从后面显示出来。

那么,是否可以绘制到 SpriteBatch 以便从纹理中减去/删除一个区域(有效地在其中“打孔”)?

我想不出还有什么方法可以做到这一点......剪刀对于我的目的来说似乎非常不切实际,因为我想剪掉一些正方形内的区域。这是剪刀的倒数 - 剪切剪刀边界之外的区域。计算数十个 Scissor 区域以填充各种方形区域之间的反向区域的想法似乎太不切实际而无法解决……尤其是在区域移动的情况下。

任何帮助或建议表示赞赏!

更新: 附上图片。

我希望在用虚线标记的区域中始终可以看到背景。虚线区域会移动,所以我不想从背景中创建更多的精灵放在上面,而是让与虚线正方形相交的部分演员不被绘制。(或任何能达到相同效果的方法。)

https://imagizer.imageshack.us/v2/596x523q90/842/8xp1.png

0 投票
5 回答
57492 浏览

c# - Visual Studio 说“方法必须有返回类型”

它说

“方法必须有返回类型”

每当我尝试调试它时。

我不知道如何修复这个类

这是 ac# 编码的 2d 游戏的玩家类

0 投票
1 回答
1245 浏览

java - LibGdx:在游戏中保持一个 spriteBatch 作为单例?还是每个屏幕一个 spriteBacth?

在 LibGdx SpriteBatch文档中。有人提到

SpriteBatch 是一个非常重的对象,因此您的程序中应该只拥有一个。

但我有点困惑!我想知道我是否必须在所有游戏中维护一个 SpriteBatch(作为单例)或者每个屏幕都有一个 SpriteBatch,如我目前发现的几个教程中所示。

我还想知道将 SpriteBatch 保持为单例是否是个好主意。

先感谢您。

0 投票
1 回答
1206 浏览

directx - DirectX SpriteBatch.Draw:什么是层深度?

MSDN网站上的定义是:

layerDepth 类型:单层的深度。默认情况下,0 代表前层,1 代表后层。如果您希望在绘制过程中对精灵进行排序,请使用 SpriteSortMode。

有人可以解释一下这是什么意思吗?谢谢。

0 投票
1 回答
825 浏览

libgdx - 使用纹理区域绘制

我想知道如何使用一组成员的 textureRegion 来绘制演员。

假设我有一群敌人。

对于一个演员,我是这样画的。

我想知道如何把整个组的演员都画成这样?有一种绘图方法,但此方法不带 TextureRegion 参数。

我可以像这样用 TextureRegion 绘制组吗?

0 投票
1 回答
1653 浏览

monogame - drawString 没有在我的游戏上绘制文本

我是这个单人游戏的新手。看了一些教程,并弄清楚了如何做一些事情。但是这里有一个问题,在游戏表面上绘制字符串时,它不起作用。

我从一个页面( https://onedrive.live.com/redir?resid=24923400704D0887!3539&authkey=!AAwQxeoQwb_cmhk&ithint=file%2c.zip )下载了 MonoGame 示例,它适合我的游戏需求。游戏适用于所有纹理和图形以及所有内容,但在打印时它什么也不做。

我已经SpriteFont sf在我的课后声明,让它初始化

spriteBatch.Begin在和之间的绘制方法中spriteBatch.End

但仍然无法正常工作。

字体加载得很好,我在其他新的 WP Monogame 项目中对其进行了测试,它甚至可以绘制!

所以我责怪我下载的这个模板样本。不是很了解这些东西,所以我希望有人可以帮助我并解释一下。

0 投票
1 回答
51 浏览

c# - 定制的 inputTextBox 闪烁

我在使用 XNA 4.0 创建输入框时遇到了困难。

我已经可以在 inputTextbox 中绘制和输入文本,但是当我输入时出现两个问题。

  1. 当我按住一个键时,我想它会写很多次那个字符,但事实并非如此。我不知道为什么它没有。
  2. 按键时屏幕闪烁,我该如何解决?我已经尝试过翻转后缓冲区或类似的东西太糟糕了,这不是解决方案

这是属于文本框的代码: