def draw(self, canvas, cam, pos, numberColumns, numberRows, row, column, angle): ratio = cam.dimCanv.copy().divideVector(cam.dim) self.dimCamera = self.dimOriginal.copy().divideVector(Vector(numberColumns, numberRows)).multiplyVector(ratio) canLoc = pos.getP() imageCenter = Vector( (self.image.get_width() / numberColumns) * column - (self.image.get_width() / numberColumns) / 2, (self.image.get_height() / numberRows) * row - (self.image.get_height() / numberRows) / 2) imageDimention = Vector(self.image.get_width() / numberColumns, self.image.get_height() / numberRows) canvas.draw_image(self.image, imageCenter.getP(), imageDimention.getP(), canLoc, self.dimCamera.getP(), angle)
class SpriteAnimator: def __init__(self, image): self.image = simpleguics2pygame.load_image(image) self.dimOriginal = Vector(self.image.get_width(), self.image.get_height()) self.dimCamera = Vector(0, 0) def draw(self, canvas, cam, pos, numberColumns, numberRows, row, column, angle): ratio = cam.dimCanv.copy().divideVector(cam.dim) self.dimCamera = self.dimOriginal.copy().divideVector( Vector(numberColumns, numberRows)).multiplyVector(ratio) canLoc = pos.getP() imageCenter = Vector( (self.image.get_width() / numberColumns) * column - (self.image.get_width() / numberColumns) / 2, (self.image.get_height() / numberRows) * row - (self.image.get_height() / numberRows) / 2) imageDimention = Vector(self.image.get_width() / numberColumns, self.image.get_height() / numberRows) canvas.draw_image(self.image, imageCenter.getP(), imageDimention.getP(), canLoc, self.dimCamera.getP(), angle)