当前位置: 首页 > 知识库问答 >
问题:

如何在LibGDX中实现对话框(无法加载皮肤)

白阳煦
2023-03-14

我想使用dialog类实现一个简单的对话框。我尝试使用这里提供的标准皮肤文件

https://github.com/libgdx/libgdx/tree/master/tests/gdx-tests-android/assets/data

  • 尤斯金。阿特拉斯
  • 尤斯金。json
  • 尤斯金。巴布亚新几内亚
  • 默认。巴布亚新几内亚
  • 默认。fnt

我下载了RAW,但我无法让它们工作。

json中的第一行:

{BitmapFont: { default-font: { file: default.fnt } },

抛出一个错误:

com.badlogic.gdx.utils.reflect.ReflectionException: Class not found: BitmapFont

android studio中的整个文件以红色突出显示,表示不符合语言规范。

我加载了另一个格式如下的文件:

{
  "com.badlogic.gdx.graphics.g2d.BitmapFont": {
    "default-font": {
      "file": "default.fnt"
    }
  },
  "com.badlogic.gdx.graphics.Color": {
    "green": {
      "a": 1,
      "b": 0,
      "g": 1,
      "r": 0
    },
    "white": {
      "a": 1,
      "b": 1,
      "g": 1,
      "r": 1
    },
    "red": {
      "a": 1,
      "b": 0,
      "g": 0,
      "r": 1
    },
    "black": {
      "a": 1,
      "b": 0,
      "g": 0,
      "r": 0
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.Skin$TintedDrawable": {
    "dialogDim": {
      "name": "white",
      "color": {
        "r": 0,
        "g": 0,
        "b": 0,
        "a": 0.45
      }
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle": {
    "default": {
      "down": "default-round-down",
      "up": "default-round"
    },
    "toggle": {
      "down": "default-round-down",
      "checked": "default-round-down",
      "up": "default-round"
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle": {
    "default": {
      "down": "default-round-down",
      "up": "default-round",
      "font": "default-font",
      "fontColor": "white"
    },
    "toggle": {
      "down": "default-round-down",
      "up": "default-round",
      "checked": "default-round-down",
      "font": "default-font",
      "fontColor": "white",
      "downFontColor": "red"
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.ScrollPane$ScrollPaneStyle": {
    "default": {
      "vScroll": "default-scroll",
      "hScrollKnob": "default-round-large",
      "background": "default-rect",
      "hScroll": "default-scroll",
      "vScrollKnob": "default-round-large"
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.SelectBox$SelectBoxStyle": {
    "default": {
      "font": "default-font",
      "fontColor": "white",
      "background": "default-select",
      "scrollStyle": "default",
      "listStyle": {
        "font": "default-font",
        "selection": "default-select-selection"
      }
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.SplitPane$SplitPaneStyle": {
    "default-vertical": {
      "handle": "default-splitpane-vertical"
    },
    "default-horizontal": {
      "handle": "default-splitpane"
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.Window$WindowStyle": {
    "default": {
      "titleFont": "default-font",
      "background": "default-window",
      "titleFontColor": "white"
    },
    "dialog": {
      "titleFont": "default-font",
      "background": "default-window",
      "titleFontColor": "white",
      "stageBackground": "dialogDim"
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.ProgressBar$ProgressBarStyle": {
    "default-horizontal": {
      "background": "default-slider",
      "knob": "default-slider-knob"
    },
    "default-vertical": {
      "background": "default-slider",
      "knob": "default-round-large"
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.Slider$SliderStyle": {
    "default-horizontal": {
      "background": "default-slider",
      "knob": "default-slider-knob"
    },
    "default-vertical": {
      "background": "default-slider",
      "knob": "default-round-large"
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle": {
    "default": {
      "font": "default-font",
      "fontColor": "white"
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.TextField$TextFieldStyle": {
    "default": {
      "selection": "selection",
      "background": "textfield",
      "font": "default-font",
      "fontColor": "white",
      "cursor": "cursor"
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.CheckBox$CheckBoxStyle": {
    "default": {
      "checkboxOn": "check-on",
      "checkboxOff": "check-off",
      "font": "default-font",
      "fontColor": "white"
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.List$ListStyle": {
    "default": {
      "fontColorUnselected": "white",
      "selection": "selection",
      "fontColorSelected": "white",
      "font": "default-font"
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.Touchpad$TouchpadStyle": {
    "default": {
      "background": "default-pane",
      "knob": "default-round-large"
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.Tree$TreeStyle": {
    "default": {
      "minus": "tree-minus",
      "plus": "tree-plus",
      "selection": "default-select-selection"
    }
  },
  "com.badlogic.gdx.scenes.scene2d.ui.TextTooltip$TextTooltipStyle": {
    "default": {
      "label": {
        "font": "default-font",
        "fontColor": "white"
      },
      "background": "default-pane",
      "wrapWidth": 150
    }
  }
}

我还有一个错误:

com.badlogic.gdx.utils.GdxRuntimeException: 
No Drawable, NinePatch, TextureRegion, Texture, or Sprite registered with name: white

有人知道我可以下载的工作皮肤包吗?

共有1个答案

隗轶
2023-03-14

在第一种情况下:

{BitmapFont:{默认字体:{file:default.fnt}},

您需要使用完全限定的Java类名,如“com.badlogic.gdx.graphics.g2d.BitmapFont”

第二种情况:你在. json中缺少了一些东西,比如找不到资源(White

看看这个存储库,它包含大量免费的LibGDX scene2dgui皮肤。

 类似资料:
  • 本文向大家介绍Android实现加载对话框,包括了Android实现加载对话框的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android实现加载对话框的具体代码,供大家参考,具体内容如下 这里简单说一下两种实现加载对话框的方式:1.使用动画让一个图片旋转 2.使用progressbar。 感觉简单来说,dialog就是一个弹出的window,把自己定义的布局放置到window里面

  • 问题内容: 我正在努力在程序中实现一个对话框。主程序不使用阶段。但是,当用户的生存时间为0时,我想弹出一个对话框,以重新启动游戏或退出游戏。 我使用以下代码为对话框创建了一个单独的类。 游戏主屏幕不使用舞台。在更新方法中,如果肝脏为0,则创建GameOver类 在render方法中,我绘制了舞台 第一次创建对话框时,这可以完美地工作。当点击重新启动时,游戏将重新启动(或实际上重置比分并生效)。但是

  • 本文向大家介绍android实现加载动画对话框,包括了android实现加载动画对话框的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了android实现加载动画对话框的具体代码,供大家参考,具体内容如下 先来两张效果图 自定义对话框: 在layout文件夹下建立progress_dialog.xml 在res文件夹下建立anim文件夹,然后在里面建立frame.xml 动画是由一张一

  • 尝试从LibGDX的测试加载默认外观时 https://github.com/libgdx/libgdx/tree/master/tests/gdx-tests-android/assets/data(uiskin.atlas、uiskin.json、uiskin.png和default.fnt) 我得到以下错误。 以下是我如何加载和使用皮肤: 看起来它找不到这个: 但是,这一行存在于uiskin

  • 本文向大家介绍Android AlertDialog实现分享对话框/退出对话框/下载对话框,包括了Android AlertDialog实现分享对话框/退出对话框/下载对话框的使用技巧和注意事项,需要的朋友参考一下 一.摘要 弹窗通常用于提示用户进行某种操作,比如:点击分享按钮,弹窗分享对话框;双击返回按钮,弹窗退出对话框;下载文件,提示下载对话框等等,分享对话框/退出对话框/下载对话框,都可以直

  • 我已经将我的项目迁移到androidX,我想实现一个带有用户积极和消极反馈的报警对话框。 我正在使用以下代码: 但我在运行应用程序时遇到了这个错误: IllegalStateException:您需要在此活动中使用theme.AppCompat主题(或后代)。