找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13361|回复: 1

[已解决] 按钮(button)如何获焦后平滑移动位置

[复制链接]
发表于 2019-3-14 21:06:51 | 显示全部楼层 |阅读模式

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

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

×
当图片按钮获取焦点,即鼠标悬停在图片按钮上时,按钮Y坐标上移一点位置,耗时0.5秒的平滑移动,按钮失去焦点时,即鼠标离开图片按钮上时,再平滑移动原来位置。
似乎是如何用 hovered 触发 transform效果?
也可以是图片变大,并不是用 idle,hover切换个大点按钮图片。



发表于 2019-3-16 12:20:40 | 显示全部楼层
本帖最后由 龙氏 于 2019-3-16 12:26 编辑

关键知识:on语句:https://doc.renpy.cn/zh-CN/atl.html#on


[RenPy] 纯文本查看 复制代码
# 定义图像(image)
image Red = "#FF0000" # 注意大小由容器决定。
image Green = "#2a5200"

transform button_a:
    pos (0.2 , 0.4)# 固定位置
    on idle:# 待机时显示
        linear 0.15 ypos 0.4
    on hover:# 鼠标悬停显示
        linear 0.15 ypos 0.3

transform button_b:

    ## 注意 pos、anchor及align三者差别。
    align (0.6 , 0.6)
    #pos (0.6 , 0.6)
    #anchor (0.6 , 0.6)

    on idle:# 待机时显示
        linear 0.15 zoom 1
    on hover:# 鼠标悬停显示
        linear 0.15 zoom 1.2

screen aaa:
    button:
        xsize 170 ysize 240 # 按钮的大小.
        at button_a # 
        add "Red"  # 添加颜色到整个按钮容器。
        hovered Notify(_("你的鼠标悬停在按钮上")) #当按钮获取焦点时运行的动作。
        unhovered Notify(_("鼠标从按钮上离开")) #当按钮失去焦点时运行的动作。
        action NullAction # NullAction语句

    imagebutton:
        xsize 170 ysize 240 # 按钮的大小.
        at button_b # 
        #add "red"  # 添加颜色
        idle "Red"
        hover "Green"
        action NullAction 

# 游戏在此开始。
label start:

    call screen aaa

    # 此处为游戏结尾。
    return

pos:相对坐标,以整个区域左上角为原点。
https://doc.renpy.cn/zh-CN/atl.h ... nsform-property-pos

anchor:锚点坐标,以可视组件左上角为原点。锚点坐标,以可视组件左上角为原点。
https://doc.renpy.cn/zh-CN/atl.h ... orm-property-anchor

align:将pos和anchor设置为相同的值。将pos和anchor设置为相同的值。
https://doc.renpy.cn/zh-CN/atl.h ... form-property-align

NullAction语句:https://doc.renpy.cn/zh-CN/scree ... ighlight#NullAction

评分

参与人数 1干货 +2 收起 理由
BuErShen + 2 感谢解答!

查看全部评分

回复 支持 3 抱歉 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 19:07 , Processed in 0.121474 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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