换桶接方块游戏

如本文章标有价格,需议价或其它事情商议请加微信pythonxia


一个有趣,好玩的思维训练小游戏,用Python精灵模块开发,以下是可执行文件下载网址:

链接:https://pan.baidu.com/s/1Awjj72wIkPFbUbsLW7nj4A
提取码:yzcm

以下是部分代码预览:

"""
   换桶接方块游戏.py
   操作方法,单击屏幕,交换颜色桶的位置,让方块落入相应颜色的桶中,
   如果落入同样颜色桶中,则加10分,否则生命数减一。
   随着方块的移动速度越快,游戏难度会越来越大!
   本程序由于配音的需要,借用了pygame的混音器,所以也要安装pygame模块,
   安装方法pip install pygame
   python精灵模块安装方法: pip install sprites
"""
from sprites import *
from pygame import mixer

def swapbuck(index1,index2):
    """交换桶的位置"""
    # 以下是交换桶的坐标
    x1,y1 = bucks[index1].pos()
    x2,y2 = bucks[index2].pos()
    bucks[index1].goto(x2,y2)
    bucks[index2].goto(x1,y1)
    # 以下是交换列表中‘桶’的索引位置
    bucks[index1],bucks[index2] = bucks[index2],bucks[index1]
    while  leftkey.down():screen.update()
    
def makesquare():
    """随机产生一个方块"""
    r = random.randint(1,4)
    if r == 1:
       sq = Sprite('res/redfk.png',tag='red',pos=(random.choice(xcors),180))
    elif r == 2:
        sq = Sprite('res/yellowfk.png',tag='yellow',pos=(random.choice(xcors),180))
    elif r == 3:
        sq = Sprite('res/greenfk.png',tag='green',pos=(random.choice(xcors),180))
    elif r == 4:
        sq = Sprite('res/bluefk.png',tag='blue',pos=(random.choice(xcors),180))        
    squares.append(sq)
    
def removesquare():
    """移去到底的方块
       遍历每个方块,如果到桶上了,则判断到了哪个桶上,
       然后判断它们的标签是否相等,如果相等,则加10分,否则爆炸!
    """
    global score,lives,speed                              # 得分和生命数与速度为全局变量 
    for sq in squares[:]:
        if sq.ycor() < -100:
            item = sq.find_overlapping()                  # 查找方块碰到的所有item
            item = list(item)[0]                          # 这里只有一个,所以取索引为0的
            这里的代码省略.....

mixer.init()                                              # 初始化混音器
success1 = mixer.Sound('res/success1.wav')                # 成功1音效
success2 = mixer.Sound('res/success2.wav')                # 成功2音效
success3 = mixer.Sound('res/success3.wav')                # 成功3音效
success4 = mixer.Sound('res/success4.wav')                # 成功4音效
snd_success = [success1,success2,success3,success4]       # 放入列表以便随机选取
snd_explode = mixer.Sound('res/explode.wav')              # 爆炸音效   

screen = Screen()
screen.setup(480,360)
screen.bgcolor('#393837')
screen.title('换桶接方块游戏')
screen.bgpic('res/cover.png')                            # 显示封面
spacekey = Key('space')                                  # 空格按键
screen.listen()                                          # 监听屏幕按键
PlaySound('res/menu.wav',SND_LOOP|SND_ASYNC)             # 循环播放背景音乐

while not spacekey.down():screen.update()                # 等待空格键被按下
screen.bgpic('nopic')                                    # 取消封面
PlaySound('',SND_PURGE)                                  # 停止播放声音  

PlaySound('res/game.wav',SND_LOOP|SND_ASYNC)             # 循环播放背景音乐
这里的代码省略.....

swap = Sprite('res/swap-arrow.png',pos=(0,-50)) # 交换指示杠
leftkey = Mouse()                               # 鼠标左键
squares = []                                    # 所有方块列表
clock = Clock()                                 # 时钟对象
score = 0                                       # 得分
lives = 3                                       # 生命数
speed = 2                                       # 下移速度 


这里的代码省略.....
    
swap.hide()                                   # 隐藏交换指示杠
[buck.hide() for buck in bucks]               # 隐藏每只桶
screen.bgpic('res/gameover.png')              # 显示新的背景
PlaySound('',SND_PURGE)                       # 停止播放声音  
PlaySound('res/gameover.wav',SND_LOOP|SND_ASYNC)
screen.mainloop()

想探究本程序原理,请下载完整源代码与素材,不过要先扫码付款哦。

VIP免费查看

已有0人支付

本站所有作品,教程等皆为原创,版权所有。只供个人及单位内部研究使用,对外展示或传播必需经本站同意,且注明来自本站。培训机构等用本站资源培训学生,需经本站授权。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。入住QQ群:225792826 和爱好者共同交流,并且能下载免费提供的Python资源(需提供真实姓名才可入群)
李兴球的博客_Python创意编程技术前沿_pygame » 换桶接方块游戏
scratch

学本领,探索更大的世界!

李兴球博客 风火轮编程主页