以下是部分代码预览:
""" 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资源。)
发表评论