找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 17761|回复: 6

[已解决] 新人求问:如何给游戏设置胜败条件?

[复制链接]
发表于 2019-12-26 16:23:38 | 显示全部楼层 |阅读模式

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

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

×
RT
大家好,最近刚开始接触renpy,自己打算设计一款文字选择题类的游戏,并已经用default定义了一些变量(分数)。通过选项(menu实现的)会对这些数值产生影响,一旦数值变化到一定的范围(例如小于10),就会触发游戏结束(通过跳转到一个gameover的label)。目前迫切需要解决的问题是,我该通过什么方法来为全局设定这一条件呢?

目前是想到了再每一个menu后都手动加if判断,但这显得很繁琐,变量一多,就会变得难以维护。

例如有A、B、C、D四个变量,其中只要其中至少一个低于10就会触发游戏结束。

求教有没有大神指条路?

谢谢!
发表于 2019-12-26 21:27:59 来自手机 | 显示全部楼层
个人觉得,如果在最开始的时候,在init python下面初始化变量,然后在里面写上判断语句,低于十的时候,jump。会不会对全局有用呢。
回复 支持 抱歉

使用道具 举报

发表于 2019-12-26 21:30:19 来自手机 | 显示全部楼层
emm,似乎应该在外面写jump,你可以试一试,直接在init python里面初始化变量,然后在外面写判断语句,是不是会对全局有用呢。
回复 支持 抱歉

使用道具 举报

发表于 2019-12-26 21:30:51 来自手机 | 显示全部楼层
本人也是萌新,请不要相信我的鬼话
回复 支持 抱歉

使用道具 举报

发表于 2019-12-26 23:33:35 | 显示全部楼层
新建一个函数,作用是赋值加判断,然后你以后赋值那四个变量的时候就都用这个函数就行。
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2019-12-27 21:39:12 | 显示全部楼层
本帖最后由 Isdaapv 于 2019-12-28 20:00 编辑
zpalzpal2 发表于 2019-12-26 23:33
新建一个函数,作用是赋值加判断,然后你以后赋值那四个变量的时候就都用这个函数就行。 ...

谢谢解答!我已经尝试了下面的写法,但是没有效果:

在script.rpy最开始写了:

init python:
    def hanshu():
        a = bianliang1
        b = bianliang2
        c = bianliang3
        d = bianliang4
        if a < b:
            renpy.jump(over)

我以测试为目的,就没有按照本帖提的小于10,而是让变量1和变量2之间比较大小。over是一个label
我没有在这里赋值,是由于这些变量实际是最终分数,它们由其他很多基础变量的分数换算的(这些变量全部都是数字)。在游戏开始的时候,基础变量没有初始化,所以我觉得在这里就给最终分数赋值不妥。

接着在游戏里面写了:

$ hanshu()

进游戏后,最终分数的运算都按照我写的公式来的,应该没有问题,我特意设置了一个选项让a扣除很大一个数字,确保满足函数里面的if。但不能工作

我把这个函数调用加在label start后一行,以及加在menu选项下面,都试过了。都没有跳转到over的效果……

我一定是哪里写错了,还劳烦大佬点明……



更新:此问题已经解决。现将代码回馈如下:

[RenPy] 纯文本查看 复制代码
init python:
    def hanshu():
        a = bianliang1
        b = bianliang2
        c = bianliang3
        d = bianliang4
        if min(a, b, c, d) < 10
            renpy.jump("over")


游戏中需要引用hanshu的地方,写法不变。之前的写法在定义函数时候renpy.jump里少了引号,所以不能正常工作。另外经测,似乎通过python新函数定义的变量名字(如上面的a b c d),与游戏中同名变量并不冲突,所以可以不用为起名字烦恼了

再次感谢大家的帮助!
回复 支持 抱歉

使用道具 举报

发表于 2019-12-29 12:39:13 | 显示全部楼层
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 12:16 , Processed in 0.108279 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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