找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 783|回复: 4

[经验] 按键控制玩家移动

[复制链接]
发表于 2023-12-5 16:08:43 | 显示全部楼层 |阅读模式

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

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

×
[RenPy] 纯文本查看 复制代码
# 游戏在此开始。
# 定义玩家的XY坐标位置
define p_x = 0
define p_y = 0
label start:
    call screen snKey
    return
screen snKey:
    # 设置按键响应
    key "input_left" action SetVariable("p_x",p_x-3)
    key "input_right" action SetVariable("p_x",p_x+3)
    key "input_up" action SetVariable("p_y",p_y-3)
    key "input_down" action SetVariable("p_y",p_y +3)
    # 显示玩家的位置
    textbutton "玩家":
        pos(p_x,p_y)
        text_color "#ffffff"
    text tt:
        color "#ffffff"
    pass

 楼主| 发表于 2023-12-5 16:10:39 | 显示全部楼层
厌倦了鼠标点击的文本交互玩法,向实现类似实时移动交互那种,所以找到了群友发的按键响应教程;所以突发奇想,写个帖子,防止自己忘记了;
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2023-12-5 16:22:01 | 显示全部楼层
代码升级了一下,监听鼠标按键事件,48*48取整,动态添加按钮组件
[RenPy] 纯文本查看 复制代码
# 游戏在此开始。
# 定义玩家的XY坐标位置
define p_x = 0
define p_y = 0

define button_lib = [
    (1,1),
]
label start:
    call screen snKey
    return
screen snKey:
    # 设置按键响应
    key "input_left" action SetVariable("p_x",p_x-3)
    key "input_right" action SetVariable("p_x",p_x+3)
    key "input_up" action SetVariable("p_y",p_y-3)
    key "input_down" action SetVariable("p_y",p_y +3)
    key "button_ignore" action Function(MouseDown)
    
    # 显示玩家的位置
    textbutton "玩家":
        pos(p_x,p_y)
        text_color "#ffffff"
    for item in button_lib:
        textbutton "按钮":
            pos item
            text_color "#ffffff"
    pass
init python:
    def MouseDown():
        pos = renpy.get_mouse_pos()
        global button_lib
        #button_lib.append(pos)
        x = pos[0]
        y = pos[1]
        x = (x//48)*48
        y = (y//48)*48
        button_lib.append((x,y))
        pass


回复 支持 抱歉

使用道具 举报

发表于 2024-2-4 08:32:50 | 显示全部楼层
这个确实很有用 谢谢
回复 支持 抱歉

使用道具 举报

发表于 2024-3-28 00:48:55 | 显示全部楼层
好神奇啊!多谢分享,这样人物也可以在地图里走来走去,看起来更动态有趣了!
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-4 01:10 , Processed in 0.138581 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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