user-interface - Libgdx 在像素图上绘制半透明圆圈

标签 user-interface libgdx transparent touchpad

我目前正在使用 libgdx 开发一款 Android 游戏,并且想在其界面中添加一个操纵杆。为此,我使用内置触摸板类。到目前为止,我一直使用外部图像来渲染背景和操纵杆。现在,我想动态绘制操纵杆的背景。这使得操纵杆的背景变得半透明并动态改变背景颜色成为可能。

为此,我实现了以下内容:

public class Joystick{
    private Touchpad touchpad;
    private static TouchpadStyle touchpadStyle;
    private Skin touchpadSkin;

    public Joystick(GameWorld world, GuiComponent gui) {
        touchpadSkin = new Skin();
        touchpadSkin.add("touchKnob", new Texture("data/touchKnob.png"));

        touchpadStyle = new TouchpadStyle();
        touchpadStyle.knob = touchpadSkin.getDrawable("touchKnob");;


        Pixmap background = new Pixmap(200, 200, Format.RGBA8888);
        background.setColor(1, 1, 1, .6f);
        background.fillCircle(100, 100, 100);
        touchpadStyle.background = new TextureRegionDrawable(new TextureRegion(new Texture(background)));

        touchpad = new Touchpad(10, touchpadStyle);
        touchpad.setBounds(15, 15, 200, 200);

        gui.inputStage.addActor(touchpad);
    }
}

如您所见,此代码提供了一个具有半透明背景的操纵杆: Joystick with semi-transparent background

但是,这个背景有一些莫名其妙的线条,不透明。有谁知道是什么原因造成的?我认为这可能与像素图的格式有关,但在尝试了其他一些格式后,并没有太大的改善。

最佳答案

我最终通过禁用像素图的混合解决了这个问题。

Pixmap.setBlending(Blending.None);

关于user-interface - Libgdx 在像素图上绘制半透明圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27757944/

相关文章:

html - 在透明标题下隐藏滚动内容

java - Java中如何创建这三个线程

JavaScript 数字脚本(不阻止键盘快捷键)

java - LibGDX v3.0.0 (connection error) 设置过程中,不出现第三方库

java - LibGDX 游戏暂停状态 : Animation flicker/bug

android - 如何在 Jetpack Compose 中删除 Canvas 时变得透明,现在我变成了白色?

java - Android - 如何在 gridlayout 中以编程方式设置边距

c++ - 从 QT 中的自定义小部件插件公开子控件

java - LibGDX:Sprite 绘图和 SpriteBatch 绘图有什么区别?

asp.net - 当 BackColor 透明时,MS Charts 中的文本获取 "blocky"