网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月29日漏签0天
godot吧 关注:8,362贴子:38,495
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 7回复贴,共1页
<<返回godot吧
>0< 加载中...

请问关于窗口resizing元素自适应的问题

  • 只看楼主
  • 收藏

  • 回复
  • 赛博麻鸭
  • 动画特效
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我有一个场景,节点树是下面这样
我期望在播放时,拖动app窗口边缘,改变window的尺寸,此时,Node2D可以进行自适应,当window的长宽比和Sprite一致(也就是和项目设置中的窗口长宽比一致),都为16:9时,Sprite覆盖整个window;
当window窗口尺寸变得很窄,比如长宽比变成3:9,如下图,Sprite覆盖整个window,并左右居中,左右多出的部分被裁切没关系,Sprite高度与window高度一致

当window窗口尺寸变得很宽,比如长宽比变成21:6,如下图,Sprite左右居中,左右留黑边,不被裁切,Sprite高度与window高度一致

我本来想要用设置项目的拉伸比例为“keep width”来实现,宽窗口时的效果没问题,但是窄窗口时,我无论如何无法让Node2D缩放并同时位移到居中的位置。所以只能又把拉伸比例设置为“expend”,试着用纯代码实现,依然无法实现上面两张图上的期望效果。
我在根节点Test的代码如下:


  • 人类的大敌
  • 吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一般来说,如果直接使用内置的自适应节点(比如AspectRatioContainer节点)是可以在不使用代码的情况下实现的。如图所示,下图为动态图,手机贴吧需要点击图片才能播放动态图:在上图动态图中可以看到使用的节点,图中使用了AspectRatioContainer节点加上TextureRect节点并调整节点属性来实现类似的效果,
其中AspectRatioContainer节点把Ratio属性设置为图片宽高比例,把Stretch Mode属性设置为Height Controls Width。
同时TextureRect节点把Expand Mode属性设置为Ignore Size,把Stretch Mode属性设置为Keep Aspect。
(在以上示例图中项目设置无改动,保持默认值,项目设置拉伸比例是默认的Keep)


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 7回复贴,共1页
<<返回godot吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示