找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 40993|回复: 14

[已解决] 如何随机显示第x张图片?

[复制链接]
发表于 2019-6-12 21:13:08 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 jiangjie1981 于 2019-6-17 09:22 编辑

各位大神,求助一个问题:

假设有n张图片,想要随机显示其中第i张,有没有简略的代码?
[RenPy] 纯文本查看 复制代码
image LYF_CH 1 = "LYF_CH/LYF_CH (1).png"
image LYF_CH 2 = "LYF_CH/LYF_CH (2).png"
image LYF_CH 3 = "LYF_CH/LYF_CH (3).png"
image LYF_CH 4 = "LYF_CH/LYF_CH (4).png"
image LYF_CH 5 = "LYF_CH/LYF_CH (5).png"
image LYF_CH 6 = "LYF_CH/LYF_CH (6).png"
image LYF_CH i = "LYF_CH/LYF_CH (i).png"

label LYF_CH(i):
$rand_num1 = random.randint(1,n)

if rand_num1 == 1:
        show LYF_CH 1 at left
elif rand_num1 == 2:
        show LYF_CH 2 at left
elif rand_num1 == 3:
        show LYF_CH 3 at left

………………

这种写法,岂不是要写无数多行?

 楼主| 发表于 2019-7-12 15:16:42 | 显示全部楼层
还有一个办法就是:
[RenPy] 纯文本查看 复制代码
$id = renpy.random.randint(1, 5)
$image_name = "image_name " + str(id)
show expression image_name

评分

参与人数 1干货 +1 收起 理由
BuErShen + 1 感谢分享!

查看全部评分

回复 支持 1 抱歉 0

使用道具 举报

发表于 2019-6-18 16:57:33 | 显示全部楼层
jiangjie1981 发表于 2019-6-17 09:37
感谢楼主的代码,亲测好用。

请问为何不能用:show LYF_CH [rand_num1] 这样的语句? ...

学会界面(screen)后,会明白 show screen XXX 方式,是多么的灵活与强大
回复 支持 0 抱歉 1

使用道具 举报

发表于 2019-6-13 00:05:03 | 显示全部楼层
看脚本:
[RenPy] 纯文本查看 复制代码
image LYF_CH 1 = "LYF_CH/LYF_CH (1).png"
image LYF_CH 2 = "LYF_CH/LYF_CH (2).png"
image LYF_CH 3 = "LYF_CH/LYF_CH (3).png"
image LYF_CH 4 = "LYF_CH/LYF_CH (4).png"
image LYF_CH 5 = "LYF_CH/LYF_CH (5).png"

define rand_num1 = "1"

screen TU():

    add "LYF_CH [rand_num1]"

# 游戏在此开始。
label start:

    $ rand_num1 = renpy.random.randint(1, 5)

    call screen TU

    # 此处为游戏结尾。
    return

回复 支持 1 抱歉 0

使用道具 举报

 楼主| 发表于 2019-6-17 09:37:36 | 显示全部楼层
本帖最后由 jiangjie1981 于 2019-8-26 15:44 编辑
BuErShen 发表于 2019-6-13 00:05
看脚本:[mw_shl_code=renpy,true]image LYF_CH 1 = "LYF_CH/LYF_CH (1).png"
image LYF_CH 2 = "LYF_CH/LY ...

感谢楼主的代码,亲测好用。

也可以用show expression pic_name_random_id 来实现。
回复 支持 抱歉

使用道具 举报

发表于 2019-8-18 23:23:16 | 显示全部楼层
请问

前面的image LYF_CH 1 = "LYF_CH/LYF_CH (1).png"

怎么用循环来定义啊,每个都要分开定义吗
回复 支持 抱歉

使用道具 举报

发表于 2019-8-25 12:10:40 | 显示全部楼层
本帖最后由 广岛秋泽 于 2019-8-25 12:20 编辑

那个……想追加问一下能循环随机显示图片吗_(:3」∠)_就是一直循环随机显示背景图片,做成电子感的那种效果……
回复 支持 抱歉

使用道具 举报

发表于 2019-8-26 13:01:23 | 显示全部楼层
广岛秋泽 发表于 2019-8-25 12:10
那个……想追加问一下能循环随机显示图片吗_(:3」∠)_就是一直循环随机显示背景图片,做成电子感的那种效果 ...

参考上面版主脚本,在screen里,用add添加图片:
add "LYF_CH [rand_num1]"
用timer定时action执行SetVariable来更改变量rand_num1。
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2019-8-26 15:45:42 | 显示全部楼层
龙氏 发表于 2019-8-26 13:01
参考上面版主脚本,在screen里,用add添加图片:
add "LYF_CH [rand_num1]"
用timer定时action执行SetVa ...

龙哥能来一段样例代码么?
回复 支持 抱歉

使用道具 举报

发表于 2019-8-27 19:34:06 | 显示全部楼层
jiangjie1981 发表于 2019-8-26 15:45
龙哥能来一段样例代码么?

[RenPy] 纯文本查看 复制代码
# 定义三张图片。

image aaa1 :
    "#330099"
  
image aaa2 :
    "#ffff33"
  
image aaa3 :
    "#ff0000"

# 变量默认值。
define ccc = 1

# 
screen TU():

    add "aaa[ccc]"

# 循环执行,时间间隔自行把握。
    timer 0.5 repeat True action SetScreenVariable("ccc",renpy.random.randint(1, 3))

# 游戏在此开始。

label start:

    call screen TU

    # 此处为游戏结尾,此处为游戏结尾。
    return
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-19 10:09 , Processed in 0.038107 second(s), 14 queries , File On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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