找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 924|回复: 0

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

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

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

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

×
本帖最后由 leech 于 2024-8-16 13:31 编辑

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

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

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

效果图


C:\Users\Administrator\Desktop\图层 70.png
C:\Users\Administrator\Desktop\图层 71.png
C:\Users\Administrator\Desktop\图层 72.png
C:\Users\Administrator\Desktop\图层 73.png
[RenPy] 纯文本查看 复制代码
### 猜球盅迷你游戏 ####################################################
#  使用说明/必看

# 本系统由 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"
default grbox1 = "grboxi3"
default grbox2 = "grboxi4"
default grbox3 = "grboxi3"
#随机交换
default grsuiji = 0

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

###动效模块#######################################################################################
#【这一模块无需改动,已预设好了,如果完全了解此系统了,可通过更改timer值对动画的速度进行调整】
#默认位置
transform grpos1():
    xanchor 0.5
    xpos grbox1x
    ypos grboxy
transform grpos2():
    xanchor 0.5
    xpos grbox2x
    ypos grboxy
transform grpos3():
    xanchor 0.5
    xpos grbox3x
    ypos grboxy
screen rollgame0():
    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
    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
    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
    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
    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
    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
    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 "grboxi3" at grpos1
    imagebutton:
        idle "grboxi4" 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 = "grboxi4"
    $ grbox3 = "grboxi3"
    $ grbox1x = 159
    $ grbox2x = 417
    $ grbox3x = 675
    ###########################################################
    show screen rollgame0
    "你准备好了吗?"
    "开始!"
    $ grbox1 = "grboxi1"
    $ grbox2 = "grboxi1"
    $ grbox3 = "grboxi1"
    call screen rollgame1

素材格式和路径(当然您也可以自定义
C:\Users\Administrator\Desktop\图层 74.png


图层 70.png
图层 71.png
图层 72.png
图层 73.png
图层 74.png

评分

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

查看全部评分

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

本版积分规则

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

GMT+8, 2024-12-22 14:14 , Processed in 0.115228 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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