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

需要安装的模块:

        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()

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值