找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1292|回复: 1

[教程] 【屎山代码插件】猜球盅小游戏

[复制链接]
发表于 2024-8-16 13:19:20 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 leech 于 2025-3-2 05:44 编辑

先上缩略图

                               
登录/注册后可看大图


叠甲

基于个人需求写的一点小东西
写都写了,就把这盘九转大肠捧出来给大家品鉴一下
#使用的话希望能著一下我名Maz
#被您使用是我的荣幸(请狠狠的使用

#观前提示
由于本人对编程语言掌握的十分的水
所以基本都是由自己掌握的简单代码依靠逻辑堆叠而成的屎山,望轻喷

使用说明和思路会以注释写在代码里,即插即用

#此篇已被 @烈林凤 优化思路(代码纯享版)

高级猜球盅小游戏
https://www.renpy.cn/forum.php?mod=viewthread&tid=1577
(出处: RenPy中文空间)

[RenPy] 纯文本查看 复制代码
### 迷你游戏1猜球盅 ####################################################
#  使用说明/必看

# 本系统由 Maz 用 屎山 编写
# 主要面向 renpy 新手用户进行定制化,基本由 renpy 简单代码编写完成
# 将系统模块化,即插即用,并内置使用说明
# 如果您嫌说明过长,仅需关注【】内的使用说明

# 注1 为了避免变量名冲突,此系统内变量名均为注释中()内汉字的拼音首字母+英文
# 注2 为了避免文件名冲突,系统包内文件均特殊命名化,请在使用前对文件名进行查重
# 注3 注释中【】内的注释为简单定制化操作的说明
# 注4 如果您使用的是ATOM文本编辑器,快捷键 ctrl+shift+alt+{ 收起全部缩进更方便您对本系统的查阅
# 注5 如果您使用的是VSC文本编辑器,快捷键 ctrl+K,ctrl+0 收起全部缩进更方便您对本系统的查阅

# 此游戏的思路是通过screen的不断交替形成动画
# 难点在于三个球盅位置属性的逻辑交换以及差值计算式

###################################################################################
### 系统正文 #######################################################################
#包括动效在内的预定义
image grboxi1 = "minigame/rollbox1.png"
image grboxi2 = "minigame/rollbox2.png"
image grboxi3 = "minigame/rollbox3.png"
image grboxi4 = "minigame/rollbox4.png"
image dicei1 = "minigame/dice1.png"
image dicei2 = "minigame/dice2.png"
image dicei3 = "minigame/dice3.png"
image dicei4 = "minigame/dice4.png"
image dicei5 = "minigame/dice5.png"
image dicei6 = "minigame/dice6.png"
default grbox1 = "grboxi3"
default grbox2 = "grboxi3"
default grbox3 = "grboxi3"
default grdice1 = "dice1"
default grdice2 = "dice1"
#随机交换
default grsuiji = 0

#每回合交换次数
#【这一数值可自定义】
default grround = 3
#球盅的初始位置
#【这一数值可自定义】
#统一的y坐标
default grboxy = 600
#3个球盅的x坐标
default grbox1x = 0
default grbox2x = 0
default grbox3x = 0

###动效模块#######################################################################################
#【这一模块无需改动,已预设好了,如果完全了解此系统了,可通过更改timer值对动画的速度进行调整】
#默认位置
transform grpos1():
    xanchor 0.5
    yanchor 1.0
    xpos grbox1x
    ypos grboxy
transform grpos2():
    xanchor 0.5
    yanchor 1.0
    xpos grbox2x
    ypos grboxy
transform grpos3():
    xanchor 0.5
    yanchor 1.0
    xpos grbox3x
    ypos grboxy
#默认窗口
screen rollgame0():
    imagebutton:
        idle "[grdice1]" at grpos2
    imagebutton:
        idle "[grbox1]" at grpos1
    imagebutton:
        idle "[grbox2]" at grpos2
    imagebutton:
        idle "[grbox3]" at grpos3
#开始窗口
screen rollgame1():
    imagebutton:
        idle "grboxi1" at grpos1
    imagebutton:
        idle "grboxi1" at grpos2
    imagebutton:
        idle "grboxi1" at grpos3
    timer 0.1 action Hide("rollgame0"),SetVariable("grround",grround-1)
    if grround > -1:
        $ grsuiji = renpy.random.randint(1, 3)
        if grsuiji == 1:
            timer 0.3 action SetVariable("grbox1x",grbox2x),SetVariable("grbox2x",grbox1x),ToggleScreen("rollgame2"),ToggleScreen("rollgame1")
        if grsuiji == 2:
            timer 0.3 action SetVariable("grbox2x",grbox3x),SetVariable("grbox3x",grbox2x),ToggleScreen("rollgame3"),ToggleScreen("rollgame1")
        if grsuiji == 3:
            timer 0.3 action SetVariable("grbox1x",grbox3x),SetVariable("grbox3x",grbox1x),ToggleScreen("rollgame4"),ToggleScreen("rollgame1")
    else:
        timer 0.1 action ToggleScreen("rollgame1"),ToggleScreen("rollgame5")
#动画窗口
#位置1,2互换
transform change1():
    xanchor 0.5
    yanchor 1.0
    xpos grbox2x
    ypos grboxy
    linear 0.3 xpos grbox1x-(grbox1x-grbox2x)//2 ypos grboxy-30
    linear 0.3 xpos grbox1x ypos grboxy
transform change2():
    xanchor 0.5
    yanchor 1.0
    xpos grbox1x
    ypos grboxy
    linear 0.3 xpos grbox2x+(grbox1x-grbox2x)//2 ypos grboxy+30
    linear 0.3 xpos grbox2x ypos grboxy
screen rollgame2():
    imagebutton:
        idle "grboxi1" at change1
    imagebutton:
        idle "grboxi1" at change2
    imagebutton:
        idle "grboxi1" at grpos3
    timer 0.6 action ToggleScreen("rollgame1"),ToggleScreen("rollgame2")
    
#位置2,3互换
transform change3():
    xanchor 0.5
    yanchor 1.0
    xpos grbox3x
    ypos grboxy
    linear 0.3 xpos grbox2x-(grbox2x-grbox3x)//2 ypos grboxy-30
    linear 0.3 xpos grbox2x ypos grboxy
transform change4():
    xanchor 0.5
    yanchor 1.0
    xpos grbox2x
    ypos grboxy
    linear 0.3 xpos grbox3x+(grbox2x-grbox3x)//2 ypos grboxy+30
    linear 0.3 xpos grbox3x ypos grboxy
screen rollgame3():
    imagebutton:
        idle "grboxi1" at grpos1
    imagebutton:
        idle "grboxi1" at change3
    imagebutton:
        idle "grboxi1" at change4
    timer 0.6 action ToggleScreen("rollgame1"),ToggleScreen("rollgame3")

#位置1,3互换
transform change5():
    xanchor 0.5
    yanchor 1.0
    xpos grbox1x
    ypos grboxy
    linear 0.3 xpos grbox3x-(grbox3x-grbox1x)//2 ypos grboxy-30
    linear 0.3 xpos grbox3x ypos grboxy
transform change6():
    xanchor 0.5
    yanchor 1.0
    xpos grbox3x
    ypos grboxy
    linear 0.3 xpos grbox1x+(grbox3x-grbox1x)//2 ypos grboxy+30
    linear 0.3 xpos grbox1x ypos grboxy
screen rollgame4():
    imagebutton:
        idle "grboxi1" at change5
    imagebutton:
        idle "grboxi1" at grpos2
    imagebutton:
        idle "grboxi1" at change6
    timer 0.6 action ToggleScreen("rollgame1"),ToggleScreen("rollgame4")

#胜负结算
screen rollgame5():
    imagebutton:
        idle "grboxi1" at grpos1
        hover "grboxi2"
        action Hide("rollgame5"),Jump("rollgamelose")
    imagebutton:
        idle "grboxi1" at grpos2
        hover "grboxi2"
        action Hide("rollgame5"),Jump("rollgamewin")
    imagebutton:
        idle "grboxi1" at grpos3
        hover "grboxi2"
        action Hide("rollgame5"),Jump("rollgamelose")
screen rollgame6():
    imagebutton:
        idle "[grdice1]" at grpos2
    imagebutton:
        idle "grboxi3" at grpos1
    imagebutton:
        idle "grboxi3" at grpos2
    imagebutton:
        idle "grboxi3" at grpos3
label rollgamewin:
    show screen rollgame6
    "你赢了"
    hide screen rollgame6
    menu:
        "继续游戏吗?"
        "是":
            jump rollgame
        "否":
            #【这里应调整成你需要跳转的地方】
            return
label rollgamelose:
    show screen rollgame6
    "你输了"
    hide screen rollgame6
    menu:
        "继续游戏吗?"
        "是":
            jump rollgame
        "否":
            #【这里应调整成你需要跳转的地方】
            return
##############################################################################################################
#调用流程
#【在游戏主流程中使用jump rollgame或call rollgame即可调用游戏】
label rollgame:
    #【每次开始时应初始化数据,和预定义中的保持一致,以达成游戏循环】
    $ grround = 3
    $ grbox1 = "grboxi3"
    $ grbox2 = "grboxi3"
    $ grbox3 = "grboxi3"
    #3个球盅的x坐标
    $ grbox1x = 159
    $ grbox2x = 417
    $ grbox3x = 675
    ###########################################################
    $ grsuiji = renpy.random.randint(1, 6)
    if grsuiji == 1:
        $ grdice1 = "dice1"
    elif grsuiji == 2:
        $ grdice1 = "dice2"
    elif grsuiji == 3:
        $ grdice1 = "dice3"
    elif grsuiji == 4:
        $ grdice1 = "dice4"
    elif grsuiji == 5:
        $ grdice1 = "dice5"
    elif grsuiji == 6:
        $ grdice1 = "dice6"
    show screen rollgame0
    "你准备好了吗?"
    "开始!"
    $ grbox1 = "grboxi1"
    $ grbox2 = "grboxi1"
    $ grbox3 = "grboxi1"
    call screen rollgame1



#查看我写的更多屎

【屎山代码插件】简单rpg地图移动
https://www.renpy.cn/forum.php?mod=viewthread&tid=1652

【屎山代码插件】摇骰子小游戏
https://www.renpy.cn/forum.php?mod=viewthread&tid=1653

【屎山代码插件】猜球盅小游戏
https://www.renpy.cn/forum.php?mod=viewthread&tid=1574


粉身碎骨浑不怕,要留答辩在人间






minigame.rar

265.06 KB, 下载次数: 0, 下载积分: 活力 100

评分

参与人数 1干货 +1 收起 理由
烈林凤 + 1 非常好的游戏,但局限性还是有些太大了) ...

查看全部评分

发表于 5 天前 | 显示全部楼层
我将永远追随大佬
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-3-29 22:29 , Processed in 0.050278 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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