找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 471|回复: 4

[已解决] 如何让地图显示主角位置?

[复制链接]
发表于 2023-8-25 13:34:38 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 程序过于烧脑 于 2023-8-31 12:59 编辑

需要的效果的一个地图界面,能检测与地图上位置对应的.png背景图
然后玩家的位置图标,就可以显示玩家所在地在地图上

↓假设玩家位置图标为 P,咨询室为bg zxs.png,走廊为bg zolang.png
当 玩家 出现在地图显示的范围内(主角没有出现在地图检测的任何图片内,不会出现P 图标)
当玩家出现在bg zxs.png背景图时,P 出现在 咨询室 位置
当玩家出现在bg zxs.png背景图时,P 出现在 走廊 位置

[RenPy] 纯文本查看 复制代码
screen dtb: #地图按钮
    imagebutton:
        idle "dt_%s@15.png"
        hover "dt2_%s@15.png"
        action ShowMenu("dt") 


screen dt: #地图

    add "dtl2@2.png"
    textbutton "X" action Return() xalign 0.8 yalign 0.2





大概是这样的

大概是这样的
发表于 2023-8-29 09:25:30 | 显示全部楼层

新建个字典保存图标各个位置,(注意把几个位置替换成自己需要的数值):
[RenPy] 纯文本查看 复制代码
define icon_pos_dict = {"pos1":(x1, y1), "pos2":(x2, y2), "pos3":(x3, y3), ...}
default icon_pos_key = None



地图界面稍作修改:

[RenPy] 纯文本查看 复制代码
screen map: 

    if icon_pos_dict.has_key(icon_pos_key):
        add "icon.png" pos icon_pos_dict[icon_pos_key]
    textbutton "Return" action Return() xalign 0.8 yalign 0.2



之后只要修改 icon_pos_key 的值,就可以同步修改图标位置:
[RenPy] 纯文本查看 复制代码
label start:

    "初始位置不显示图标。"
    
    call screen map
    
    "换到位置1。"
    
    $ icon_pos_key = "pos1"
    
    call screen map
    
    "换到位置2。"
    
    $ icon_pos_key = "pos2"
    
    call screen map
    
    "换到位置3。"
    
    $ icon_pos_key = "pos3"
    
    call screen map
    
    "......"
    
    
    return



此外,如果楼主只使用scene语句切换背景图的话,也可以配置 config.scene_callbacks 回调函数,在使用scene语句时直接修改 icon_pos_key 的值。
回复 支持 1 抱歉 0

使用道具 举报

 楼主| 发表于 2023-8-29 11:36:07 | 显示全部楼层
本帖最后由 程序过于烧脑 于 2023-9-5 23:42 编辑
被诅咒的章鱼 发表于 2023-8-29 09:25
新建个字典保存图标各个位置,(注意把几个位置替换成自己需要的数值):

(这是后面改的评论,这里问了个蠢问题,太尴尬了能不能当我没问过这条蠢问题,呜呜)




回复 支持 抱歉

使用道具 举报

发表于 2023-8-30 08:45:13 | 显示全部楼层
算了,当我什么都没发过吧……
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2023-8-30 16:12:16 | 显示全部楼层
被诅咒的章鱼 发表于 2023-8-30 08:45
算了,当我什么都没发过吧……

啊,太多了容易记不住,我以为用xy的指令,忘记还能填数字了
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 10:43 , Processed in 0.117603 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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