找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1667|回复: 6

[求助] 想做快捷菜单的伸缩,但不知道为什么出现了两个重叠

[复制链接]
发表于 2022-4-24 10:45:01 | 显示全部楼层 |阅读模式

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

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

×
打算给游戏加一个鼠标放到底部才弹出快捷菜单的功能。
但是做出来之后却发现的确有一个快捷菜单能弹出来了,可原来的快捷菜单却还在老地方,结果两个快捷菜单直接就重叠了。
transform quick_menu_buttons_transform:
    yoffset 40
    on show:
        linear 0.5 yoffset 0
    on hide:
        linear 0.5 yoffset 40

screen quick_menu():
    ## 确保该菜单出现在其他界面之上,
    zorder 100
        mousearea:
            area (0, 650, 1280, 720)
            hovered Show("quick_menu")
            unhovered Hide("quick_menu")
    if quick_menu:
        hbox:
            style_prefix "quick"
            xalign 0.5
            yalign 1.0
            spacing 10
            imagebutton auto "gui/button/return_%s.png" action Rollback()

            imagebutton auto "gui/button/log_%s.png" action ShowMenu('history')

            imagebutton auto "gui/button/skip_%s.png" action Skip() alternate Skip(fast=True, confirm=True)

            imagebutton auto "gui/button/auto_%s.png" action Preference("auto-forward", "toggle")

            imagebutton auto "gui/button/save_%s.png" action ShowMenu('save')

            imagebutton auto "gui/button/qsave_%s.png" action QuickSave()

            imagebutton auto "gui/button/qload_%s.png" action QuickLoad()

            imagebutton auto "gui/button/config_%s.png" action ShowMenu('preferences')

            at quick_menu_buttons_transform

## 此语句确保只要玩家没有明确隐藏界面,就会在游戏中显示“quick_menu”界面。[修改]
init python:
    config.overlay_screens.append("quick_menu")

default quick_menu = True

#style quick_button is default
style quick_button_text is button_text

style quick_button:
    properties gui.button_properties("quick_button")

style quick_button_text:
    properties gui.button_text_properties("quick_button")


发表于 2022-4-24 15:05:04 | 显示全部楼层
那个,我在哪里看到过差不多的,看起来是你把mousearea放在screen里面导致问题,应该开个新screen来控制quick_menu
[RenPy] 纯文本查看 复制代码
screen quick_menu_show_area():
    # 在quick_menu上层,保证比quick_menu更早获取鼠标位置
    zorder 101

    mousearea:
        area (0.15, 0.75, 0.7, 0.25)
        hovered Show("quick_menu")
        unhovered Hide("quick_menu")
回复 支持 1 抱歉 0

使用道具 举报

 楼主| 发表于 2022-4-24 16:08:50 | 显示全部楼层
Lost 发表于 2022-4-24 15:05
那个,我在哪里看到过差不多的,看起来是你把mousearea放在screen里面导致问题,应该开个新screen来控制qui ...

这个方法没法解决问题...
因为这段是把mousearea单独提出来,可以让鼠标比快捷菜单反应快一步,效果貌似也只能让快捷菜单的弹出更加"丝滑"。
但是两个快捷菜单同时存在的问题依旧存在
QQ图片20220424160809.png
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2022-4-24 16:12:42 | 显示全部楼层
Lost 发表于 2022-4-24 15:05
那个,我在哪里看到过差不多的,看起来是你把mousearea放在screen里面导致问题,应该开个新screen来控制qui ...

我只知道肯定有什么地方出错了,或者renpy可能这么写就会出bug吧。
每次点击之后,第一个快捷菜单会先弹出来,然后鼠标放到下面又会弹出第二个快捷菜单。
两个菜单就这么重合到一起去了,即使只写了一个菜单的代码。
后面鼠标的移动也只能控制其中一个菜单,最初弹出来的快捷菜单就一直在那儿了。
回复 支持 抱歉

使用道具 举报

发表于 2022-4-24 18:33:35 | 显示全部楼层
emmm可能是我漏说这个了:
[RenPy] 纯文本查看 复制代码
init python:
    config.overlay_screens.append("quick_menu_show_area")


我这边没有问题的,毕竟以前写过这玩意()
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2022-4-24 18:49:39 | 显示全部楼层
Lost 发表于 2022-4-24 18:33
emmm可能是我漏说这个了:
[mw_shl_code=renpy,true]init python:
    config.overlay_screens.append("qui ...

我又开了一项新的工程重新写了一遍这些代码,发现没有出现上一个工程的bug。
也许是我的那个工程做了什么其他的操作结果变成这个样子了。
我要去找找新的原因,不过还是很谢谢你帮了忙!
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2022-4-24 19:06:34 | 显示全部楼层
Lost 发表于 2022-4-24 18:33
emmm可能是我漏说这个了:
[mw_shl_code=renpy,true]init python:
    config.overlay_screens.append("qui ...

啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!我找到了!!!!
原来是我之前为了实现在某些时候隐藏快捷菜单,结果写了一条文本框与快捷菜单始终同步。
结果就导致因为文本框在,快捷菜单一定在。
所以出现了两个快捷菜单这种奇葩的事情。
之前一直以为是这段代码的问题还去查了挺多资料找原因。
被自己写的一条代码坑了一天,以后要吸取教训经常给一些功能性的代码做标注了。
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 22:43 , Processed in 0.065005 second(s), 15 queries , File On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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