pygame勇闯黑暗迷宫最新版的原理程序

本人曾经编写个一个饶有趣味的小游戏叫《勇闯黑暗迷宫》,今天翻了一下,把代码进行了再度优化,这里提供没有封面,没有配音的原理程序以肆读者。

 

"""
   勇闯黑暗迷宫,这是2019/8/11版本的原理程序。
   用鼠标方箭头操作小猫上下左右移动,碰到绿旗就过关了。
   不过每次没有在一定时间内过关的话,会停电,黑乎乎的一片,
   这个时候只能凭记忆过关了。
"""
import time
import pygame
from pygame.locals import *

class Maze(pygame.sprite.Sprite):
    """迷宫类,继承自角色类"""
    def __init__(self,image):
        pygame.sprite.Sprite.__init__(self)
        self.image = image
        self.rect = image.get_rect()
        self.mask = pygame.mask.from_surface(self.image)
        self._time = 5               # 黑灯时间
        self.start_time = time.time()
        self.candraw = True
    def update(self):
        """更新"""
        if not self.candraw:return
        if time.time() - self.start_time > self._time:
            self.candraw = False
            print(self.candraw)
    def draw(self,screen):
        if self.candraw:
           screen.blit(self.image,self.rect)
           
class Sprite(pygame.sprite.Sprite):
    """角色类,继承自pygame的Sprite类"""
    def __init__(self,image,pos):
        """初始化方法,image:图像,pos:坐标"""
        pygame.sprite.Sprite.__init__(self)
        self.image = image
        self.rect = image.get_rect(center=pos)
        self.mask = pygame.mask.from_surface(self.image)
        self.die = False
        
    def update(self):
        """更新角色"""
        keys = pygame.key.get_pressed()
        if keys[K_UP] : self.rect.move_ip(0,-2)
        if keys[K_DOWN] : self.rect.move_ip(0,2)
        if keys[K_LEFT] : self.rect.move_ip(-2,0)
        if keys[K_RIGHT] : self.rect.move_ip(2,0)
        
    def draw(self,screen):
        """重画角色"""
        if self.die == False:       # 没死就重画
           screen.blit(self.image,self.rect)

You must log in to read the rest of this article. Please log in or register as a user.