上回python+pygame实现推箱子小游戏之一完成了推箱子工人的类的实现,现在可以完成其他一些元素的类的实现
二
其他的页面元素(箱子box,外墙wall,终点target)class gameElementSprite,同样继承自pygame.sprite.Sprite,用elementtype来区别,只有box可以被移动,同时在移动之前,要判断在当前的位置和方向上的下一个位置能不能到达,因此要返回下一个位置。有了前面的基础,这个的实现较为简单。
import os
import pygame
from params import Params
'''
游戏元素
'''
class gameElementSprite(pygame.sprite.Sprite):
def __init__(self, elementname, col, row):
pygame.sprite.Sprite.__init__(self)
# box.png/target.png/wall.png 分别代表箱子,终点,外墙
self.imagepath = os.path.join(Params.get('resourcePath'), Params.get('imgFolder'), elementname)
self.image = pygame.image.load(self.imagepath).convert_alpha()
self.rect = self.image.get_rect()
self.elementtype = elementname.split('.')[0] # 元素精灵类型,即box,target,wall
self.col = col
self.row = row