首页 > 其他分享 >Godot中的锚点

Godot中的锚点

时间:2023-09-03 11:24:03浏览次数:35  
标签:控件 Godot 0.5 texture 锚点 rect size

关于锚点的用处,Godot的官方文档是如此叙述的。

如果一个游戏总是用同一分辨率在同样的设备上运行, 摆放控件将是一个简单的事, 只要逐个设置它们的位置属性和大小属性即可. 不幸的是, 能像这样处理的情况很少.

在游戏开发中,处理不同分辨率和纵横比的屏幕可以是一项挑战。但幸运的是,Godot引擎提供了一种强大的工具来解决这个问题 - 锚点和边距。

锚点的概念

想象一下,你的游戏需要在各种设备上运行,从电视到手机,每个设备都有不同的分辨率。这时,将控件逐个设置位置和大小属性将变得非常繁琐。这就是锚点的用武之地。

每个控件都有四个边距:左、右、上和下。默认情况下,它们表示相对于父控件的左上角或视口的像素距离。但是,通过调整水平和/或垂直锚点,你可以改变这些边距的行为。

image

在没有缩放的情况下,锚点的位置一般是[0,1],表示在父控件中0%-100%的位置。(当然,你也可以设置成2来达到200%的效果)

简单来说,锚点就是快速将控件定位到屏幕相对位置(0%~100%)的工具。

控件的位置随屏幕变化

当你将水平(左,右)和/或垂直(上,下)锚点设置为1时,边距值会相对于父控件或视口的右下角。这意味着,当屏幕分辨率改变时,控件会相应地调整位置。

例如,你可以将一个按钮设置为底部锚点,这样它将始终保持在屏幕底部,即使屏幕大小变化。

控件居中对齐

要将控件居中对齐到其父控件中,只需将锚点的值设置为0.5,并且将边距设置为相关尺寸的一半。

以下是一个示例代码,将一个纹理矩形居中到其父节点:

var rect = TextureRect.new()
rect.texture = load("res://icon.png")
rect.anchor_left = 0.5
rect.anchor_right = 0.5
rect.anchor_top = 0.5
rect.anchor_bottom = 0.5
var texture_size = rect.texture.get_size()
rect.margin_left = -texture_size.x / 2
rect.margin_right = -texture_size.x / 2
rect.margin_top = -texture_size.y / 2
rect.margin_bottom = -texture_size.y / 2
add_child(rect)

通过将每个锚定值设置为0.5,我们将边缘的参考点移动到父锚点的中心。然后,通过设置负边距,我们确保控件获得其自然大小并保持居中对齐。

快速设置锚点

使用编辑器右上角的按钮可以快速设置锚点
image

标签:控件,Godot,0.5,texture,锚点,rect,size
From: https://www.cnblogs.com/wsdx233/p/17674767.html

相关文章

  • 标题:在Godot中使用Node2D创建自定义的Label
    在Godot游戏引擎中,我们经常需要在游戏中显示文本信息。通常,我们可以使用Label节点来实现这一点。但是,在某些情况下,你可能希望更灵活地控制文本的显示和样式。在本篇博客中,我们将学习如何通过使用Node2D节点来创建一个自定义的Label,从而能够更好地控制文本的呈现方式。效果图步......
  • 7 锚点应用
    7锚点应用锚点(anchor)是超链接的一种应用,也叫命名锚记,锚点可以像一个定位器一样,可以实现页面内的链接跳转,运用相当普遍。例如,我们有一个网页,由于内容太多,导致页面很长,而且里面的内容,可以分为N个部分。这样的话,我们就可以在网页的顶部设置一些锚点,这样便可以方便浏览者点击相......
  • jq获取锚点打html格式数据
    letleft=$(".left").clone()//克隆需要的html格式内容片段$('.houseBox').html(left.eq(0))//将数据打进锚点,因为我这里获取到的数据是一整个集合,但是我只需要第一条数据,所以用到了eq$('.houseBox').click(()=>{//单击事件监听,原来的数据有单击事件,克......
  • godot
    https://github.com/godotengine/godothttps://docs.godotengine.org/en/latest/contributing/development/compiling/compiling_for_windows.htmlpython-mpipinstallsconssconsplatform=windowsvsproj=yestarget=template_debugarch=x86_64C:\godot>scons......
  • Godot无法响应鼠标点击等输入事件时,检查这些内容
    注:本文以Godot4.0为基准,可能其他版本也能参考。这是我用C#写项目时发现的,可能和gdscript使用者遇到的问题有一定区别。如果你用Godot制作的游戏无法响应鼠标点击等输入事件,请检查下面这几种可能性,说不定能解决你的问题:1绑定gui_input信号的节点是否是Control?绑定p......
  • Wordpress:如何使用Elementor给页面Button做跳转页面锚点定位?
    网站页面有的关键部分不一定在页面首屏,但是如果其它页面有时候需要做跳转,比如联系框,需要直接跳转到联系框的实际位置,在使用Elementor插件的情况下,如何实现呢?前端技术告诉我们,要实现点击a标签或者按钮跳转到指定位置,可以使用id定位,并在跳转链接后加入#符号附带该ID即可如: ......
  • 超链接锚点
    跳转锚点<!--跳转当前页面锚点--><ahref="#test">点击跳转锚点</a><!--跳转其它页面锚点,意思是跳转到页面是HTML排版.html且id等于test的位置--><ahref="HTML排版.html#test">点击跳转锚点</a> 设置当前页面锚点<imgid="test"width="20......
  • 记一次因为C#官方扩展导致自动补全出错的情况 (C# & Godot)
    现象最近使用Vscode结合Godot使用时突然发现自动补全出问题了,发现一部分自动补全能弹出补全项目,但是确认后不起作用,还会吞掉弹出自动补全后输入的字符。大概是下图这样的感觉(截图时已修好,图为演示摆拍)线索找了很多办法,有一瞬间我突然发现C#官方扩展的评论区在短期内......
  • jQuery跨页面锚点点位
    functiongetparams(){varparams=location.search.substring(1);varArrparams=params.split('&');if(Arrparams.length==2){varmao=Arrparams[1].split('=')[1]console.log(mao)if(mao=="c1&quo......
  • Vue2或Vue3中实现页面锚点滚动(结合AntDesign a-steps
    核心代码 onStepChange(current){ this.current=current; document.querySelector(`[id='${current}']`).scrollIntoView({ behavior:"smooth",//定义过渡动画instant立刻跳过去smooth平滑过渡过去 block:"start",//定义垂直滚动方向的对齐start顶部(......