使用pygame开发一个小游戏

        学习了pygame,身为一个IKUN所以,做了一个简单的小游戏。游戏规则是,使用键盘的方向键控制坤坤,当坤坤触碰到篮球,就会爆发出音乐”只因你太美“。代码如下:

import random
import sys
import pygame
pygame.init()
screen = pygame.display.set_mode((495,299))
pygame.display.set_caption("篮球和鸡")        #显示标题
icon = pygame.image.load("坤.webp")
pygame.display.set_icon(icon)               #显示标题图像
bgImg = pygame.image.load("篮球和鸡.webp")   #背景图

#添加音效
#pygame.mixer.music.load("鸡你太美.mp3")
#pygame.mixer.music.play(-1)
bao_sound = pygame.mixer.Sound("鸡太美.mp3")


#玩家移动和玩家位置
playerX=100
playerY=200
playerStep_X=0
playerStep_Y=0
playerImg = pygame.image.load("坤球.png") #导入游戏人物50*58

#篮球移动和篮球位置
ballX= random.randint(100,400)
ballY= random.randint(20,150)
ballStep=1      #篮球速度
ballImg = pygame.image.load("篮球.png")  #导入篮球50*37

#def process_events():


def delay():
    for i in range(1,101):
        for q in range(1,301):
            pass



#篮球类
class Balls():
    def __init__(self):
        self.img = pygame.image.load("篮球.png")
        self.x = random.randint(100,400)
        self.y = random.randint(20,150)
        self.step = random.randint(2,6)

balls = []
number_of_balls =6
for i in range (number_of_balls):
    balls.append(Balls())


#游戏主循环
while True:
    screen.blit(bgImg,(0,0))
    screen.blit(playerImg, (playerX, playerY))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RIGHT:
                playerStep_X = 1
            elif event.key == pygame.K_LEFT:
                playerStep_X = -1
#            playerX += playerStep_X
        if event.type == pygame.KEYUP:
            playerStep_X = 0


        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP:
                playerStep_Y = -1
            elif event.key == pygame.K_DOWN:
                playerStep_Y = 1
#            playerY += playerStep_Y
        if event.type == pygame.KEYUP:
            playerStep_Y = 0



    #导入一个篮球
    screen.blit(ballImg, (ballX, ballY))
    ballX += ballStep
    if(ballX > 450 or ballX < 0):
        ballStep *= -1
        ballY += 3
        if ballY >= 350:
            ballY = 0

    # #导入多个篮球
    # for e in balls:
    #     screen.blit(e.img,(e.x,e.y))
    #     e.x += e.step
    #     if(e.x > 450 or e.x < 0):
    #         e.step *= -1
    #         e.y += 13
    #         if e.y >=299:
    #             e.y = 0

    #键盘控制上下左右移动
    if playerX >= 450:
        playerX = 450
    elif playerX <=0:
        playerX = 0
    playerX += playerStep_X

    if playerY <= 0:
        playerY = 0
    elif playerY >=250:
        playerY =250
    playerY += playerStep_Y

    if (ballX <= playerX-2 and ballY+10 >= playerY):
        bao_sound.play()
        ballX = random.randint(100, 400)
        ballY = random.randint(20, 150)

    pygame.display.update()

运行的结果图如下

图片可以根据自己的要求自行更改。游戏很简单,但是所学习的东西有很多,也算是一次不错的收获。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值