找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1277|回复: 6

[原创] RenPyUtil:一个rp开发者库

[复制链接]
发表于 2023-10-6 22:54:00 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 ZYKsslm 于 2025-3-25 22:46 编辑

一个在Github上新开的造轮子项目:RenPyUtil

正如标题所述,最近在Github上开了个新项目:RenPyUtil,旨在造更多轮子给Ren'Py开发者以实现更多可能。项目地址:Github仓库
如果无法正常访问Github也没关系,以后更新项目也会同时在论坛发布。
说明
该项目使用 MIT 协议开源,但若使用需要在程序中标明。

评分

参与人数 1活力 +300 干货 +3 收起 理由
被诅咒的章鱼 + 300 + 3 感谢分享!

查看全部评分

 楼主| 发表于 2023-10-9 23:24:42 | 显示全部楼层
本帖最后由 ZYKsslm 于 2023-10-9 23:38 编辑

请重新查看源码,本次编辑修复了一些常规BUG并完善了一些功能,示范代码也相应的做了修改。
回复 支持 1 抱歉 0

使用道具 举报

发表于 2023-10-7 01:18:15 | 显示全部楼层
支持一下 但是还是提醒你 Ren'py 运行机制比较特别,支撑它的底层是一个非标准的Python集合,很多功能是无法做到落地的
可以做到语义上的强化,但是很难做到功能上的真正强化,相对比较好的解决方法就是 针对不同的平台做单独兼容。写三份代码。
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2023-10-7 22:07:03 | 显示全部楼层
Furau 发表于 2023-10-7 01:18
支持一下 但是还是提醒你 Ren'py 运行机制比较特别,支撑它的底层是一个非标准的Python集合,很多功能是无 ...

谢谢。我的目的就是多造点轮子,给开发者节省时间,提高开发效率。只要有人把累活干了,就不用别人再累一遍了
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2023-10-7 22:07:54 | 显示全部楼层
代码可能不完善,如果有BUG请及时回帖提醒
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2023-10-7 22:22:56 | 显示全部楼层
本帖最后由 ZYKsslm 于 2024-4-25 02:20 编辑

这里有一个使用示范:


[RenPy] 纯文本查看 复制代码
init python:
 
 
    # 一个任务函数
    def love_event(speaker, name):
 
        speaker(f"{name}, I love you.")
        recieve = renpy.input("So, your answer is......")
 
        return recieve

    # 使用threading_task装饰的函数将在子线程中运行
    @threading_task
    def thread_event():
        renpy.notify("Messages")
 
 
# 使用default语句定义高级角色对象
default e = AdvancedCharacter("艾琳", what_color="#FF8C00", who_color="#00CED1")
 
 
# 游戏在此开始。
 
label start:
 
    python:
        # 高级角色增添属性
        e.add_attr(love_point=50)
        e.add_attr(thread=False)
        e.add_attr(strength=100, health=40)
 
    # 输出角色所有的自定义属性及其值
    e "[e.customized_attr_dict!q]"
 
    python:
 
        # 创建一个角色任务
        love_task = CharacterTask(single_use=True, # single_use参数若为True则该任务为一次性任务
            love_point=100,
            health=50,
        )

        thread_task = CharacterTask(False, thread=True)

        # 绑定任务函数
        love_task.add_func(love_event, e, name="ZYKsslm")
        thread_task.add_func(thread_event)

        # 绑定角色任务
        e.add_task(love_task)
        e.add_task(thread_task)
 
        e.love_point += 50
        e.health += 10

        e.thread = True
 
        # 获取任务函数返回值
        recieve = love_task.func_return["love_event"]
    
    if recieve:
        e "Your answer is '[recieve!q]'"
 
    return

回复 支持 抱歉

使用道具 举报

发表于 2023-10-8 09:09:30 | 显示全部楼层
个人看法:
1. 仅作者的设计思路和编码规范就值得很多人学习和参考。
2. 高级角色类大概是给游戏添加RPG元素的通用方案,包括且不限于角色好感度系统和简单战斗等。

总之,楼主加油~
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-1 07:15 , Processed in 0.052084 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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