Pygame 学习笔记(4)

来源:互联网 发布:淘宝神笔卖家推荐 编辑:程序博客网 时间:2024/06/05 09:06

壁球游戏加入鼠标控制示例

import pygameimport syspygame.init()icon = pygame.image.load('ball.png')pygame.display.set_icon(icon)vInfo = pygame.display.Info()size = width, height = (600, 400)# size = width, height = 600, 400speed = [1, 1]BLACK = 0, 0, 0screen = pygame.display.set_mode((600, 400), pygame.RESIZABLE)# screen = pygame.display.set_mode((600, 400), pygame.NOFRAME)# screen = pygame.display.set_mode(size)pygame.display.set_caption('PyGame 游戏之旅')ball = pygame.image.load('ball.png')ballrect = ball.get_rect()fps = 300   # frames per secondfclock = pygame.time.Clock()still = Falsewhile True:    for e in pygame.event.get():        if e.type == pygame.QUIT:            sys.exit()        elif e.type == pygame.KEYDOWN:            if e.key == pygame.K_LEFT:                speed[0] = speed[0] if speed[0] == 0 else (abs(speed[0]) - 1) * int(speed[0]/abs(speed[0]))            elif e.key == pygame.K_RIGHT:                speed[0] = speed[0] + 1 if speed[0] > 0 else speed[0] - 1            elif e.key == pygame.K_DOWN:                speed[1] = speed[1] if speed[1] == 0 else (abs(speed[1]) - 1) * int(speed[1] / abs(speed[1]))            elif e.key == pygame.K_UP:                speed[1] = speed[1] + 1 if speed[1] > 0 else speed[1] - 1            elif e.key == pygame.K_ESCAPE:                sys.exit()        elif e.type == pygame.VIDEORESIZE:            size = width, height = e.size[0], e.size[1]            screen = pygame.display.set_mode(size, pygame.RESIZABLE)        elif e.type == pygame.MOUSEBUTTONDOWN:            if e.button == 1:                still = True        elif e.type == pygame.MOUSEBUTTONUP:            still = False            if e.button == 1:                ballrect = ballrect.move(e.pos[0] - ballrect.left, e.pos[1] - ballrect.top)        elif e.type == pygame.MOUSEMOTION:            if e.buttons[0] == 1:                ballrect = ballrect.move(e.pos[0] - ballrect.left, e.pos[1] - ballrect.top)    if pygame.display.get_active() and not still:        ballrect = ballrect.move(speed[0], speed[1])    if ballrect.left < 0 or ballrect.right > width:        speed[0] = - speed[0]        if ballrect.right > width and ballrect.right + speed[0] > ballrect.right:            speed[0] = -speed[0]    if ballrect.top < 0 or ballrect.bottom > height:        speed[1] = - speed[1]        if ballrect.bottom > height and ballrect.bottom + speed[1] > ballrect.bottom:            speed[1] = - speed[1]    screen.fill(BLACK)    screen.blit(ball, ballrect)    pygame.display.update()    fclock.tick(fps)

小球资源
这里写图片描述

原创粉丝点击