找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 95|回复: 0

[教程] 【屎山代码插件】摇骰子小游戏

[复制链接]
发表于 2025-3-2 05:33:32 | 显示全部楼层 |阅读模式

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

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

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

先上缩略图


                               
登录/注册后可看大图


叠甲

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

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

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

#这是一套的【屎山代码插件】猜球盅小游戏
https://www.renpy.cn/forum.php?mod=viewthread&tid=1574
(出处: RenPy中文空间)

[RenPy] 纯文本查看 复制代码
### 迷你游戏2比大小 ####################################################
#  使用说明/必看

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

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

# 此游戏的思路是通过screen的交替形成动画
# 并用drag形成让玩家有操作性的拖拽游戏
# 注意,此游戏用到  迷你游戏1猜球盅  定义的部分图片和变量
###################################################################################
### 系统正文 #######################################################################

#包括动效在内的预定义
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
#以上是 迷你游戏1猜球盅 里定义的图片和变量

#设置一个根据玩家拖拽路径改变的变量
default shakeroute = 0
#在init里,根据玩家拖动的方式不同改变变量
init python:
    def shakegame_dragged(drags, drop):
        if not drop:
            return
        return True
    def shakegame_dragging(drags):
        global shakeroute
        shakeroute = shakeroute + 1
        return 
#玩家操作的窗口
screen shakegame0():
    frame:
        background Solid("#bbb")
        xysize (960,540)
        pos (0,0)
        add "[grdice1]":
            anchor (0.5,1.0)
            xpos 480 ypos 450
        add "[grbox1]":
            anchor (0.5,1.0)
            xpos 480 ypos 450
    frame:
        background Solid("#999")
        xysize (960,540)
        pos (0,540)
        draggroup:
            drag:
                drag_name "box1"
                child "grboxi4"
                draggable False
                anchor (0.5,1.0)
                xpos 480 ypos 450
                add "grboxi4"
            drag:
                drag_name "box2"
                child "grboxi1"
                droppable False
                dragged shakegame_dragged
                dragging shakegame_dragging
                anchor (0.5,1.0)
                xpos 480 ypos 450
                add "[grbox2]"
    timer 0.1 action Hide("shakegame1")

#敌方(随机)操作的窗口(动画)
transform shake1():
    anchor (0.5,1.0)
    xpos 480 ypos 450
    linear 0.25 xpos 180
    linear 0.25 xpos 480
    linear 0.25 xpos 780
    linear 0.25 xpos 480
transform shake2():
    anchor (0.5,1.0)
    xpos 480 ypos 450
    alpha 0
    pause 1 alpha 1
transform shake3():
    anchor (0.5,1.0)
    xpos 480 ypos 450
    alpha 1
    linear 0.3 alpha 0
screen shakegame_1():
    tag shakegame
    frame:
        background Solid("#bbb")
        xysize (960,540)
        pos (0,0)
        add "[grdice1]"at shake2
        add "[grbox1]" at shake1
    frame:
        background Solid("#999")
        xysize (960,540)
        pos (0,540)
        add "[grbox2]":
            anchor (0.5,1.0)
            xpos 480 ypos 450
    timer 1.5 action Return(),Hide("shakegame_1")

#胜负结算窗口(动画)
screen shakegame1():
    frame:
        background Solid("#bbb")
        xysize (960,540)
        pos (0,0)
        add "[grdice1]":
            anchor (0.5,1.0)
            xpos 480 ypos 450
        add "[grbox1]":
            anchor (0.5,1.0)
            xpos 480 ypos 450
    frame:
        background Solid("#999")
        xysize (960,540)
        pos (0,540)
        add "grboxi4" at shake3
        add "[grdice2]":
            anchor (0.5,1.0)
            xpos 480 ypos 450
        add "[grbox2]":
            anchor (0.5,1.0)
            xpos 480 ypos 450
##############################################################################################################
#调用流程
#【在游戏主流程中使用jump shakegame或call shakegame即可调用游戏】
label shakegame:
    hide screen shakegame0
    hide screen shakegame1
    $ grbox1 = "grboxi1"
    $ grbox2 = "grboxi1"
    $ 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 shakegame1
    call screen shakegame_1
    call screen shakegame0
    show screen shakegame1
    $ grbox1 = "grboxi3"
    jump shakegameround
#胜负结算
label shakegameround:
    "对方的点数是[grsuiji]"
    #通过玩家拖拽得到的一定变量计算点数
    #计算式为整除(变量能整除6则点数为6,整除5则点数为5,不能整除则为1)
    "你的步长是[shakeroute]\n(步长//10)\%点数 = 0"
    $ shakeroute = shakeroute//10
    if shakeroute % 6 == 0:
        $ shakeroute = 6
        $ grdice2 = "dice6"
    elif shakeroute % 5 == 0:
        $ shakeroute = 5
        $ grdice2 = "dice5"
    elif shakeroute % 4 == 0:
        $ shakeroute = 4
        $ grdice2 = "dice4"
    elif shakeroute % 3 == 0:
        $ shakeroute = 3
        $ grdice2 = "dice3"
    elif shakeroute % 2 == 0:
        $ shakeroute = 2
        $ grdice2 = "dice2"
    else:
        $ shakeroute = 1
        $ grdice2 = "dice1"
    $ grbox2 = "grboxi3"
    show screen shakegame1
    "你的点数是[shakeroute]"
    menu:
        "这个点数..."
        "再摇一次":
            $ shakeroute = 0
            $ grbox2 = "grboxi1"
            call screen shakegame0
            show screen shakegame1
            $ grbox1 = "grboxi3"
            jump shakegameround
        "足够了":
            if shakeroute > grsuiji:
                "你赢了"
            elif shakeroute == grsuiji:
                "平局"
            else:
                "你输了"
            menu:
                "继续":
                    $ shakeroute = 0
                    $ grbox1 = "grboxi1"
                    $ grbox2 = "grboxi1"
                    jump shakegame
                "结束":
                    return




#查看我写的更多屎

【屎山代码插件】简单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 感谢分享!

查看全部评分

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

本版积分规则

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

GMT+8, 2025-3-12 17:20 , Processed in 0.055692 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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