有一个运行Libgdx的Android应用程序,其中有很多精灵。目前,我根据它们所属的类别给它们涂上不同的颜色,例如“红色”、“绿色”、“蓝色”等。然而,我认为我更喜欢只给雪碧的一部分涂颜色,而不是整个雪碧。
目前我使用:
batch.begin();
batch.setColor(color1);
batch.draw(group1);
batch.setColor(color2);
batch.draw(group2);
etc..
batch.end();
批处理。setColor(color)
用于给批次上色,并将其应用于整个雪碧。当那一组完成后,我改变颜色,转到下一组。当完成分组时,我重置批次颜色。
有没有着色器/搅拌器的方式只着色精灵的一部分?例如,任何在我的纹理中被染成红色的东西都应该被视为“动态区域”,然后可以被染成我动态设置的任何颜色。
我不能使用透明度,因为纹理的边缘是透明的,需要保持这种方式进行混合。
非常感谢
您可以使用第二个在你的Sprite
.因此可以对该附加区域使用其它颜色。这个其他区域应该只包含图像的一部分,这将改变颜色和透明背景。
public class MySprite extends Sprite {
TextureRegion region1, region2;
Color extraColor;
...
@Override
public void draw(Batch batch, float parentAlpha) {
Color color = getColor();
batch.setColor(color.r, color.g, color.b, color.a * parentAlpha);
batch.draw(region1, getX(), getY(), getOriginX(), getOriginY(),
getWidth(), getHeight(), getScaleX(), getScaleY(), getRotation());
batch.setColor(extraColor);
batch.draw(region2, getX(), getY(), getOriginX(), getOriginY(),
getWidth(), getHeight(), getScaleX(), getScaleY(), getRotation());
}
}
我在Java和Slick2D方面有几年的经验,我正试图将一个游戏移植到libgdx,因为它是一个更好的库。然而,我有一个简单的问题在屏幕上移动精灵。这个应用编程接口一定有一些我不理解的范例。我将我的代码提炼成以下内容。它识别输入,并在我的整个实体和网络系统中运行它,无论是在服务器上还是从服务器上,但是精灵保持在同一个位置。任何帮助都会很棒。 我的create()方法: getCurrentX/Y方
好吧,我真的很困惑,我以前旋转过精灵,没有问题,比如当船在海洋中移动时旋转它,但是出于某种原因,这次我遇到了一个非常大的问题。所以我在资产文件中创建了一个纹理,但不是静态纹理。我使用以下方式加载纹理: 然后我通过调用来调用主类中的资产: 然后我有一个专门为这个主要角色设计的动画课程,因为他的动画与其他角色非常不同。 然后我有一个渲染类来绘制所有东西,我有对象在一个名为的世界对象中,我用以下方式绘制
如果我将这个圆形精灵的身体应用于AngularImush,它会沿着它的中心旋转,这就是我想要的。但是它的碰撞蒙版固定装置(绿色)沿着它自己的中心旋转,而不是精灵的中心。我如何让它也沿着精灵的中心旋转,这样碰撞蒙版和精灵就保持同步? 例如,在下面的图片中,当圆圈旋转,红色部分到达左上角时,我希望绿色碰撞蒙版在#3的位置。但是发生了#2。我知道为什么会发生这种情况,但是我如何才能实现我在这里试图实现的
使用< code >加速计,我的精灵图像会左右移动,如果我触摸屏幕,精灵会移动到Y轴。我想在不同的精灵之间进行碰撞检测,这样如果精灵穿过一个物体,它就会停下来藏在那个物体里。我已经看了这个https://www.youtube.com/watch?v=T1aN-vTqLc的教程,但什么也没发生。进行碰撞检测的正确方法是什么?我不知道我的编码有什么问题。任何建议或更好的教程谢谢和进步 这是我的编码
移动精灵 现在你知道了如何展示精灵,但是让它们移动呢?很简单:使用Pixi的ticker。这被称为 游戏循环 。任何在游戏循环里的代码都会1秒更新60次。你可以用下面的代码让 cat 精灵以每帧1像素的速率移动。 function setup() { //Start the game loop by adding the `gameLoop` function to //Pixi's `t
我有一个长方形的小组,里面有一群精灵。精灵在移动(说向上)。当它们到达顶部时,会与边界发生碰撞。我已经建立了一套逻辑,在精灵离开团队时杀死他们。然而,现在的样子,我可以看到精灵离开了团队。我想让它在精灵穿越边界时逐渐消失,直到它消失(并死亡)。 这是一个我想要实现的粗略模型。 我在玩相机,以为我必须修改视口,但它不起作用。达到这种效果的正确方法是什么? 谢谢 编辑:我的相机是这样设置的: 现在它是