首页 > 编程语言 >标题:在Godot中使用Node2D创建自定义的Label

标题:在Godot中使用Node2D创建自定义的Label

时间:2023-08-26 21:23:13浏览次数:33  
标签:Godot 自定义 text Node2D 文本 节点

在Godot游戏引擎中,我们经常需要在游戏中显示文本信息。通常,我们可以使用Label节点来实现这一点。但是,在某些情况下,你可能希望更灵活地控制文本的显示和样式。在本篇博客中,我们将学习如何通过使用Node2D节点来创建一个自定义的Label,从而能够更好地控制文本的呈现方式。

效果图
image

步骤一:创建Node2D节点

首先,在Godot编辑器中创建一个新的Node2D节点。你可以在场景层次结构面板中右键点击,选择“Create Node”并选择“2D Node”。

步骤二:导入字体资源

在这个例子中,我们将使用自定义的字体来显示文本。首先,确保你已经有一个字体文件(.ttf 或 .otf 格式),然后将其导入到Godot项目中。创建一个新的DynamicFont资源,并将导入的字体文件分配给它。

步骤三:设置导出变量

在脚本中,我们需要一个可以在编辑器中配置的导出变量来设置显示的文本内容。在脚本的开头添加以下代码:

tool

var font:Font = load("res://your_dynamicfont.tres")

export var text = "Hello World" setget set_text

"res://your_dynamicfont.tres" 替换为你导入的 DynamicFont 资源的路径。

步骤四:实现文本内容更新

_ready() 函数中,添加以下代码:

func _ready():
    update()

这会在节点准备好后调用 update() 函数,确保文本内容被正确显示。

步骤五:实现文本绘制

_draw() 函数中,添加以下代码来实现文本的绘制:

func _draw():
    var text_size := font.get_string_size(text)
    draw_string(font, Vector2.ZERO - Vector2(text_size.x/2, -text_size.y/4), text)

这段代码使用了字体的 get_string_size() 函数来获取文本的大小,然后使用 draw_string() 函数在节点的原点附近绘制文本。调整位置参数可以控制文本的位置。

步骤六:实现文本内容设置

最后,我们需要实现设置文本内容的方法。在脚本中添加以下代码:

func set_text(t):
    text = t
    update()

这个函数允许我们通过设置导出变量 text 来更新要显示的文本内容,并调用 update() 来刷新绘制。

现在,你已经成功地创建了一个自定义的Label,使用Node2D节点来绘制。通过在编辑器中配置导出变量,你可以轻松地更改显示的文本内容。此外,你还可以根据需要进一步定制文本的样式和位置。

希望这篇博客对你在Godot游戏开发中有所帮助!

标签:Godot,自定义,text,Node2D,文本,节点
From: https://www.cnblogs.com/wsdx233/p/17659464.html

相关文章

  • Prism对话框之自定义DialogWindow
    Prism对话框之自定义DialogWindow1.自定义DialogWindow窗体样式(1)定义DialogWindow窗体类,注意要实现IDialogWindow///<summary>///CustomDialogWindow.xaml的交互逻辑///</summary>publicpartialclassCustomDialogWindow:Window,IDialogWindow{publicIDi......
  • Feign的自定义配置
           ......
  • django配置swagger自动生成接口文档以及自定义参数设置
    首先安装swagger所用的包pipinstalldrf-yasg然后再settings.py中注册app     接口采用的token认证,在settings.py配置认证方式SWAGGER_SETTINGS={'USE_SESSION_AUTH':False,'SECURITY_DEFINITIONS':{......
  • 黑魂237 自定义导演模块导轨的功能实现
    打开脚本playablebehaviour。 这个代码能够开启自定义导轨的播放启动功能。当导演模式开始了,所有的自定义导轨会被启动。 这个代码是指到结束才触发。 这个代码是时间轴到自定义导轨上会触发。 这个代码是时间轴不在自定义导轨上会触发。 ......
  • ios开发之 -- xib关联自定义view
    在xib下使用自定义的view,因为很多时候,可能幸亏自顶一个view,然后在view里面填充控件,但是需要重写很多无用的代码,而且很容易出错不说,还很好工作量,使用xib的话,分钟搞定一个view,话不多说,步骤如下:1,先创建一个view2,创建一个xib3,"File'sOwner"的class继承为:MyView(即自定义创建的视图......
  • 【Angular】如何将自定义组件绑定为FormControl?
    参考资料:简单Demo:AngularFormcontrolenameCustomComponent关键实现说明:ControlValueAccessor:CustomFormComponentsinAngularAngular自定义表单控件(中文)关于muti:true的说明......
  • element-ui中表格@row-click方法自定义传参的写法
     @row-click="(row,column,e)=>handleRowClicked(row,column,e,'unitName')"参考:https://blog.csdn.net/weixin_46060121/article/details/120151005   ......
  • 在博客园中美化博客,并使用自定义的主题
    一、开通博客园JS权限这部分不再赘述,可以点击下方链接,查看如何申请博客园JS权限申请二、在博客园中设置相关内容打开你的博客首页->管理->设置设置博客皮肤为“Custom”勾选禁用默认CSS样式三、在博客园设置中粘贴相应代码此部分代码粘贴到【页面定制......
  • JDK8 LocalDateTime 自定义周开始
    LocalDateTimenow=LocalDateTime.of(2022,12,31,0,1,1);WeekFieldsweekFields=WeekFields.of(DayOfWeek.FRIDAY,1);intdayOfWeek=now.getDayOfWeek().get(weekFields.dayOfWeek());System.out.println("日期:"+......
  • 自定义异常
    自定义异常1.定义使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。2.在程序中使用自定义异常类,大体分为以下几个步骤创建自定义异常类。在方法中通过throw关键字抛出异常对象。......