学习Python开发小游戏(一)-----见缝插针

这篇博客介绍了一个使用Python的Pygame和pgzero库制作的旋转得分游戏。游戏中,玩家需要控制针插入圆盘,每次成功得分并逐渐增加旋转速度。当针碰撞时,游戏结束。游戏素材来源于《Python游戏趣味编程》一书,要求numpy版本为1.19.3,且音频和图片需放置在指定文件夹中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要安装的模块:

        pygame,pgzero,numpy(1.19.3)

注意以下几点:

        1.windows安装numpy的时候需要安装numpy 1.19.3版本,要不然会报错

        2.图片需要放在images文件夹中,音频放在music文件夹中

        3.images和music文件夹需要和新建的py文件放在同一级

附:

        代码中涉及到的素材来自异步社区:《Python游戏趣味编程》一书中提供的素材:https://www.epubit.com/bookDetails?id=UB72096d97d6149

以下是代码:

import pgzrun

# 存储所有针的信息
needles = []
# 针
startNeedle = Actor('needle', anchor=(170 + 50, 1.5))
startNeedle.x = 200  # 针的位置
startNeedle.y = 300
rotateSpeed = 1  # 旋转速度
score = 0  # 初始分数


def draw():
    screen.fill('white')  # 幕布颜色
    screen.draw.filled_circle((400, 300), 100, 'green')  # 圆盘位置、半径以及颜色
    screen.draw.text(str(score), (50, 250), fontsize=50, color='green')  # 显示分数
    startNeedle.draw()  # 绘制针
    for needle in needles:
        needle.draw()
    # 如果旋转速度为0代表游戏结束
    if rotateSpeed == 0:
        screen.draw.text('Game Over !', (2, 320), fontsize=35, color='red')


def update():
    global rotateSpeed
    for needle in needles:
        if needle.x == 400:
            needle.angle = needle.angle + rotateSpeed  # 增加每个针的角度,实现旋转效果


def on_key_down():
    global rotateSpeed, score
    if rotateSpeed > 0:
        music.play_once('music1')  # 播放针插入圆盘的声音

    newNeedle = Actor('needle', anchor=(170 + 50, 1.5))
    newNeedle.x = 400
    newNeedle.y = 300

    # 游戏失败
    for needle in needles:
        if newNeedle.colliderect(needle):
            rotateSpeed = 0  # 游戏结束停止旋转
            music.play_once('music2')

    needles.append(newNeedle)

    if rotateSpeed > 0:
        score += 1

    # 分数每增加20分,速度增加1
    if score > 0 and score % 20 == 0:
        rotateSpeed += 1


pgzrun.go()

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值