from Setup import *
from Player import Player
+from Pet import Pet
from Enemy import Enemy
from Block import Block
class Game:
def __init__(self):
- self.collision_layer = {0:set(),1: set(), 2:set()}
- self.player = Player(center, self.collision_layer[1], [self.collision_layer[2], self.collision_layer[0]])
+ self.collision_layer = {"world":set(),"player": set(), "enemy":set(), "pet":set()}
- self.enemies = [Enemy((SCREEN_WIDTH * 3 /4, 0),self.collision_layer[2], [self.collision_layer[1], self.collision_layer[0]])]
- self.blocks = [Block((0, SCREEN_HEIGHT * 3 / 4),self.collision_layer[0]),
+ self.player = Player(center, self.collision_layer["player"], [self.collision_layer["enemy"], self.collision_layer["world"]])
+ self.pet = Pet(center, self.collision_layer["pet"], [self.collision_layer["world"]])
+
+ self.enemies = [Enemy((SCREEN_WIDTH * 3 /4, 0),self.collision_layer["enemy"], [self.collision_layer["player"], self.collision_layer["world"]])]
+ self.blocks = [Block((0, SCREEN_HEIGHT * 3 / 4),self.collision_layer["world"])]
# Block((SCREEN_WIDTH/2 - 50, SCREEN_HEIGHT * 3 / 4),self.collision_layer[0]),
# Block((SCREEN_WIDTH/2 + 50, SCREEN_HEIGHT * 3 / 4),self.collision_layer[0]),
- ]
def update(self, delta):
self.player.update(delta)
+ self.pet.update(delta, self.player)
for enemy in self.enemies:
enemy.update(delta, self.player)
block.draw(surf)
self.player.draw(surf)
+ self.pet.draw(surf)
--- /dev/null
+from Actors import Actor
+
+class Pet(Actor):
+ width,height = 75,50
+
+ def __init__(self, pos, collision_layer, collision_mask):
+ super().__init__(pos, collision_layer, collision_mask)
+
+ def update(self, delta, target):
+ super().update(delta)
+
+ self.follow_target(target)
+
+ self.position, self.velocity = self.move_and_collide(self.position, self.velocity, delta)
+