以下是部分代码预览:
""" 0_最简单关卡迷宫游戏核心原理.py """
import pygame
# 颜色常量定义
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
CYAN = (0, 250, 255)
# 屏幕尺寸常量定义
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
class Player(pygame.sprite.Sprite):
""" 这是玩家控制的角色. """
def __init__(self, x, y):
# 调用父类的初始化方法
super().__init__()
# 生成图形对象,填充为白色
self.image = pygame.Surface([15, 15])
self.image.fill(WHITE)
pass
def changespeed(self, x, y):
""" Change the speed of the player. """
self.xspeed += x
self.yspeed += y
def update(self):
""" 更新玩家坐标 """
# 左右移动,(通过按左与右方向箭头控制xspeed从而控制横向坐标)
self.rect.x += self.xspeed
pass
class Wall(pygame.sprite.Sprite):
""" 墙类 """
def __init__(self, x, y, width, height):
super().__init__()
# 墙的imgage,填充为青色
self.image = pygame.Surface([width, height])
self.image.fill(CYAN)
# 墙的矩形对象
self.rect = self.image.get_rect()
self.rect.y = y
self.rect.x = x
pass
# 初始化pygame
pygame.init()
# 创建800x600的画面
screen = pygame.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT])
# 设置标题
pygame.display.set_caption('最简单关卡迷宫游戏核心原理')
# 所有的角色列表,包括墙和移动的小方块,为了一起update和draw
all_sprite_list = pygame.sprite.Group()
# 所有的墙列表
wall_list = pygame.sprite.Group()
wall = Wall(0, 0, 10, 600) # 实例化一睹墙
wall_list.add(wall) # 加入到墙列表
all_sprite_list.add(wall) # 加入到所有列表
wall = Wall(10, 0, 790, 10)
wall_list.add(wall)
all_sprite_list.add(wall)
wall = Wall(10, 200, 100, 10)
wall_list.add(wall)
all_sprite_list.add(wall)
wall = Wall(200, 50, 10, 160)
wall_list.add(wall)
all_sprite_list.add(wall)
# 创建玩家对象,它就是一个小方块
player = Player(50, 50)
player.walls = wall_list
# 把它加到所有角色列表
all_sprite_list.add(player)
# 建立时钟对象,用来设定帧率的
clock = pygame.time.Clock()
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
pass
all_sprite_list.update() # 所有角色更新坐标
screen.fill(BLACK) # 重画screen
all_sprite_list.draw(screen) # 重画所有角色
pygame.display.flip() # 更新显示
clock.tick(60)
pygame.quit()
如需要查看完整代码,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)
