找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3338|回复: 6

[求助] 关于拖放组件图层及位置问题

[复制链接]
发表于 2021-11-3 21:29:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
最近了解到拖放组件drag,但是在制作过程中,同一界面的两个拖放组件的图层无法根据我选择拖动哪个组件就将那个组件显示到UI最上层,其次就是拖放组件再更改位置后如果关闭掉screen后,再次打开就会直接到左上角的位置,我想定义为在关闭之前的位置,类似于在什么位置关闭第二次show的时候就在那个位置出现,请大佬们帮帮忙。
发表于 2021-11-4 09:41:44 | 显示全部楼层
简单说下设计思路(前提假设你已经了解Drag组件和DragGroup的用法)……

将DragGroup内的Drag组件的 drag_raise 设置为 True,拖动的时候就会显示在组内最上层。DragGroup是否在UI层的问题,请在界面设计层面处理。

要保留拖动后Drag组件的位置,需要定义 dragged 回调函数。最简单的方法是先定义全局变量(x, y),在 dragged 回调函数中把Drag组件的坐标值写入到那个全局变量中。同时,使用了该Drag组件的界面(screen)使用全局变量作为入参,Drag组件的初始位置使用入参变量。

[RenPy] 纯文本查看 复制代码
default dragPosDict = {"drag1":(0, 0), "drag2":(100, 100)}

init python:

    def change_drag_pos(drags, drop):

        if not drop:
            return

        if(dragPosDict.get(drags[0].drag_name)):
            dragPosDict[drags[0].drag_name] = (drags[0].x, drags[0].y)

        return True

screen draggroup_test(dragPosDict):

    draggroup:
    
        drag:
            drag_name "drag1"
            child "icon.png"
            drag_raise True
            dragged change_drag_pos
            pos dragPosDict["drag1"]    
        drag:
            drag_name "drag2"
            child "icon.png"
            drag_raise True
            dragged change_drag_pos
            pos dragPosDict["drag2"]


以上代码只是参考。拖拽组件系统比较复杂,要做出有实用性的东西很花时间……
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-11-4 20:54:06 | 显示全部楼层
感谢耐心的章鱼哥,不过想知道这个如果是使用在不同的screen中会达到想要的效果嘛
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-11-5 11:36:45 | 显示全部楼层
被诅咒的章鱼 发表于 2021-11-4 09:41
简单说下设计思路(前提假设你已经了解Drag组件和DragGroup的用法)……

将DragGroup内的Drag组件的 drag_ra ...

章鱼哥,想问问关于不同screen中是否可以组成一个DragGroup呢,实现的方法是什么呢
回复 支持 抱歉

使用道具 举报

发表于 2021-11-8 08:40:10 | 显示全部楼层
zxc 发表于 2021-11-5 11:36
章鱼哥,想问问关于不同screen中是否可以组成一个DragGroup呢,实现的方法是什么呢 ...

这个问题,类似于“把一张百元钞票剪成几部分之后还能去超市买东西吗”……
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2021-11-8 20:53:53 | 显示全部楼层
被诅咒的章鱼 发表于 2021-11-8 08:40
这个问题,类似于“把一张百元钞票剪成几部分之后还能去超市买东西吗”…… ...

那如果对组内的一个拖放组件,是否可以执行单独的隐藏关闭这个组件的效果呢?想做一个类似于电脑的软件操作界面
回复 支持 抱歉

使用道具 举报

发表于 2021-11-9 08:56:10 | 显示全部楼层
draggable 设置为False就不能拖了,然后把组件的alpha设置为0就不可见了……
回复 支持 抱歉

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2024-12-23 02:50 , Processed in 0.103510 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表