以下是部分代码预览:
"""pygame拖动方块示例.py
"""
import pygame
import random
# 定义颜色常量
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
class Block(pygame.sprite.Sprite):
"""
方块类,继承自角色类
"""
def __init__(self, color, width, height):
""" 初始化方法,传递的参数为颜色,宽度,高度"""
class Player(Block):
""" 此类继承自Block类,重写了update方法 """
# 所携带的方块列表
carry_block_list = []
# 初始化pygame引擎
pygame.init()
# 新建屏幕对象,它是一个surface对象
screen_width = 700
screen_height = 400
screen = pygame.display.set_mode([screen_width, screen_height])
pygame.display.set_caption("拖动方块示例")
# 所有方块列表
block_list = pygame.sprite.Group()
# 所有角色列表
all_sprites_list = pygame.sprite.Group()
for i in range(50):
# 实例化一个方块
block = Block(BLACK, 20, 15)
# 设定随机坐标
block.rect.x = random.randrange(screen_width)
block.rect.y = random.randrange(screen_height)
# 增加到方块列表和所有角色列表
block_list.add(block)
all_sprites_list.add(block)
# 实例化红色的方块
player = Player(RED, 20, 15)
all_sprites_list.add(player)
# 用来结束while循环的逻辑变量
done = False
# 设置刷新率的时钟对象
clock = pygame.time.Clock()
# 隐藏鼠标指针
pygame.mouse.set_visible(False)
# -------- 主程序循环-----------
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
all_sprites_list.update()
# 填充屏幕为白色
screen.fill(WHITE)
# 重画所有角色
all_sprites_list.draw(screen)
# 限制刷新率为60秒
clock.tick(60)
# 显示
pygame.display.flip()
pygame.quit()
如需要查看完整代码,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

