草庐IT

java - LIBGDX 使用 spritesheet 还是单个图像更好?

我是LIBGDX的新手,我为“英雄奔跑”Sprite制作了40帧,我不知道使用Sprite表还是单独图像更好。Spritesheet会非常大,因为即使在1080p设备上我也想要高分辨率。你能告诉我在哪种情况下(spritesheet或单个图像)性能会更好吗? 最佳答案 由于此处的其他答案并没有给您指明错误的方向,但并非100%准确,因此我将添加更详细的解释。在动画的情况下,它不应该对性能产生影响!无论您使用spritesheet还是单个图像,它们都只会被发送到GPU一次。与spritesheet的唯一区别是您只需绑定(bind)一次

android - 在android帮助中翻转位图?

我想为我的游戏节省内存,我想问你,因为我找不到任何东西,上次我在这里问了一些问题,我得到了一个很好的答案。我可以翻转eclipse中的位图以便节省Sprite的内存吗?我找到的所有教程都是关于旋转而不是翻转的。翻转位图的教程仅适用于openGl或类似的东西。请帮我。我一直在谷歌中寻找教程,但我在第5页放弃了。任何人都可以帮助我吗?有没有人有好的教程?顺便说一句,我正在使用Canvas。谢谢!每次我尝试运行它时,我都会强制关闭...你能弄清楚吗?这是我的代码:MatrixflipHorizontalMatrix=newMatrix();flipHorizontalMatrix.setSc

java - 改善太空外星人的移动

我编写了一个受SpaceInvaders和MoonPatrol启发的迷你Android游戏场景.可以水平射击外星人(见上文)。也可以垂直射击外星人(见下文)。但是添加外星人不会“缩放”,例如添加15个外星人在所有可能的碰撞中移动将是非常困难的。原来的太空入侵者和月球巡逻队解决了这个问题,是否可以制定与我正在使用的策略不同的策略?外星人的确切移动并不重要,重要的是它“有趣”。importandroid.content.Context;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandro

java - Android 版 OpenGL ES 2.0 中的纹理

我是OpenGL的新手,我正在通过使用ES2.0为Android制作2D游戏来自学。我首先创建一个“Sprite”类,该类创建一个平面并为其渲染纹理。为了练习,我在同一个地方交替绘制了两个Sprite对象。我在ES1.0上工作得很好,但现在我已经切换到2.0,我得到了一个没有错误的黑屏。我已经筋疲力尽地想弄清楚我做错了什么,但我有一种强烈的感觉,这与我的着色器有关。我将在这里转储所有相关代码,希望有人可以就我做错了什么给我一个答案或一些建议。如果不是很明显我做错了什么,也许有一些关于如何解决的建议?预先感谢您查看我将要发布的所有代码。我发布的三个类(class)是:GameRender

Android:位图的补间动画

我的应用程序通过在我的View的onDraw()方法中调用以下内容来实现自己的Sprite:canvas.drawBitmap(sprite.getBitmap(),sprite.getX(),sprite.getY(),null);该应用程序是一个物理模拟,到目前为止效果很好。但现在我想通过在某些事件发生时在Sprite的图像之间变形来增强动画效果。例如-当发生碰撞时,我想播放爆炸动画。我的想法是用爆炸PNG替换通常的Sprite位图,并使用Android“补间动画”使爆炸变大。但是安卓tweenanimationexample假定您在XML配置中的某处静态定义了一个ImageVie

android - Android 中的 Sprite 旋转使用 Canvas.DrawBitmap。我很接近,我做错了什么?

我有这个sprite旋转算法(它的名字不好,只是用于测试)。它是如此接近,用它绘制的Sprite确实会旋转。每一帧我都可以增加+5度并看到我漂亮的小Sprite旋转。问题是,绘制到Canvas上的其他内容现在会闪烁。如果我不进行旋转,则常规绘制的Sprite效果很好。我想我很接近,但我只是不知道我错过了什么。下面是我的两个“Draw_Sprite”方法,一个只是将先前加载的资源位图绘制到传入的Canvas上。另一个,做一些旋转我知道如何将Sprite旋转这么多度数..然后绘制它.如果我有一个很好的游戏循环来绘制多个对象,一种类型是旋转的。然后非旋转的Sprite闪烁,而旋转的Sprit

Unity2D Sprite尺寸与UI在场景视图和游戏视图显示不一致问题解决方案

在Unity3D中,当开发2D游戏时,经常会遇到Sprite尺寸与UI在场景视图和游戏视图中显示不一致的问题。这个问题可能导致UI元素变形或者在不同分辨率的设备上显示不正确。本文将为您提供解决这个问题的方法,并附带相应的源代码。问题分析:Sprite是2D游戏中最常用的图像资源,而UI元素则是用于创建用户界面的关键组件。在Unity中,Sprite和UI元素都可以在场景视图和游戏视图中显示,但由于它们具有不同的显示机制,可能导致尺寸不一致的问题。解决方案:为了解决Sprite尺寸与UI在场景视图和游戏视图中显示不一致的问题,我们可以使用以下两种方法:使用CanvasScaler组件:Canva

Android:有什么方法可以加快 canvas.drawBitmap 的速度吗?

简单的问题,虽然不确定是否有简单的答案!!我能做些什么来加快我的表面View绘图吗?我正在使用这样的东西:c.drawBitmap(scaledSprite,X,Y,redPaint);我使用的方法必须在屏幕上绘制大约25个这样的Sprite,所以我使用了一个for循环,这意味着它必须在一帧中显示25个。现在,这在我测试过的3款手机上运行得非常好,但在平板电脑上,它只是变慢了。我已经注释掉所有其他绘图方法,只留下这个方法,这绝对是拖慢游戏速度的原因。有没有人可以给我一些聪明的技巧来加快速度?我知道开放式GL是可能的,但游戏的大部分内容现在已经编写完成,所以如果可以的话,我现在真的不想做

c++ - 是否有计算在单色背景上绘制的 Sprite 边界矩形的算法?

想象一个普通的矩形位图,比方说,1024x768像素填充白色。位图上绘制了一些(非重叠的)Sprite:圆形、正方形和三角形。是否有一种算法(甚至可能是C++实现)在给定位图和背景颜色(白色,在上例中)的情况下,生成一个列表,其中包含每个Sprite的最小边界矩形?这是一些示例:在左侧,您可以看到我的代码给出的示例位图(以及“背景”为白色的信息)。在右侧,您可以看到相同的图像以及四个形状的边界矩形(红色);我正在寻找的算法计算这些矩形的几何形状。一些绘画程序具有选择形状的类似功能:它们甚至可以计算看似任意的边界多边形。无需手动拖动选择矩形,您可以单击“背景”(什么是背景,什么不是由某个

c++ - 从灰色到彩色对 Sprite 进行着色

我有很多相同的图形,但颜色不同。我想通过从灰度图像着色来优化它。此外,我想在游戏中为实时Sprite对象动态更改其颜色。也逐渐将颜色值从一种颜色类型更改为另一种颜色类型。Don'tknowitituseful-Image-Transformation-Grayscale-to-Color. 最佳答案 要色调灰度Sprite,可以通过一个简单的片段着色器完成,该着色器将纹理的纹理像素的颜色与色调颜色相乘。这导致灰度纹理使亮度呈现恒定的颜色。以下所有着色器均考虑PremultipliedAlpha。顶点着色器shader/tone.ve