Python 小游戏

一、桌球小游戏

  1. 素材

    1. 球桌

  2. 代码

    import pygame, sys,math
    from pygame.locals import *
    
    pygame.init()
    
    # 创建一个窗口,大小为 800 * 600
    canvas = pygame.display.set_mode((845, 467))
    pygame.display.set_caption('桌球小游戏')
    
    # 加载图片
    bg = pygame.image.load("image/desk.png")
    enemy = pygame.image.load("image/ball.png")
    
    # 定义母球参数
    cueX = cueY = 0     # 母球初始坐标
    cueFollowMouse = True   # 母球是否随着鼠标走
    minX = 30
    maxX = 795
    minY = 36
    maxY = 405
    
    # 鼠标参数
    countMouse = 0
    
    # 运动参数
    radian = 3.14 / 3
    speed = 5
    
    while True:
    
        # 把图画到窗口上
        canvas.blit(bg,(0,0))
        canvas.blit(enemy,(cueX, cueY))
    
        # 获取事件列表
        for e in pygame.event.get():
            type = e.type
    
            # 判断事件类型
            if type == QUIT:
                pygame.quit()  # 窗口退出
                sys.exit()  # 关闭程序
    
            # 鼠标按下事件
            if type == MOUSEBUTTONDOWN:
                cueFollowMouse = False
                if countMouse != 0:
                    mouse = pygame.mouse.get_pos()
                countMouse += 1
    
            # 监听鼠标移动事件
            if type == MOUSEMOTION:
                if cueFollowMouse:
                    cueX,cueY = pygame.mouse.get_pos()
                    cueX -= 15
                    cueY -= 15
    
        if countMouse > 1:
            if cueY >= maxY or cueY <= minY:
                radian = -radian
            if cueX >= maxX or cueX <= minX:
                radian = 3.14 - radian
            cueX += speed * math.cos(radian)
            cueY += speed * math.sin(radian)
    
        # 持续刷新屏幕
        pygame.display.update()
        # 让程序延迟 10 毫秒
        pygame.time.delay(10)
    

二、玻璃球

  1. 素材

    1. 背景

    2. 模板

  2. 代码

    import pygame, sys
    from pygame.locals import *
    
    pygame.init()
    
    # 创建一个窗口,大小为 540 * 700
    canvas = pygame.display.set_mode((360,640))
    pygame.display.set_caption('桌球小游戏')
    
    # 加载图片
    back = pygame.image.load("image/back.jpg")
    board = pygame.image.load("image/board.png")
    ball = pygame.image.load("image/ball.png")
    
    # 位置
    ballC = [165,0]
    boarC = [130,580]
    
    # 小球
    motX = motY = 5
    isMot = True
    
    # 成绩
    achie = 0
    
    while True:
    
        # 把图画到窗口上
        canvas.blit(back,(0,0))
        canvas.blit(board,boarC)
        canvas.blit(ball,ballC)
    
        # 获取事件列表
        for e in pygame.event.get():
            type = e.type
    
            # 判断事件类型
            if type == QUIT:
                pygame.quit()  # 窗口退出
                sys.exit()  # 关闭程序
    
            # 监听鼠标移动事件
            if type == MOUSEMOTION:
                coor = pygame.mouse.get_pos()
                boarC[0] = coor[0]
                boarC[0] -= 50
                if coor[0] <= 50 : boarC[0] = 0
                if coor[0] >= 310: boarC[0] = 260
    
        # 小球动起来
        if isMot :
            ballC[0] += motX
            ballC[1] += motY
            if ballC[0] >= 330 or ballC[0] <= 0 :
                achie += 1
                motX = -motX
            if ballC[1] <= 0 : motY = -motY
            if ballC[1] == 550:
                ran = range(boarC[0],boarC[0]+100)
                if ballC[0] in ran:
                    motY = -motY
            if ballC[1] > 550:
                isMot = False
                ballC = [165, 0]
                print("游戏结束,成绩为",end=":")
                print(achie)
    
        # 持续刷新屏幕
        pygame.display.update()
        # 让程序延迟 10 毫秒
        pygame.time.delay(10)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iGma_e

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值