Example #1
0
    def update(self, dt):
        super(Player, self).update(dt)

        pressed = pygame.key.get_pressed()

        if pressed[K_r]:
            self.pos = Vec2d(0, 0)
            return

        # set speeds based on input
        if pressed[pygame.K_LEFT]:
            self.rot_speed = -4
        elif pressed[pygame.K_RIGHT]:
            self.rot_speed = 4
        else:
            self.rot_speed = 0

        if pressed[pygame.K_UP]:
            self.speed = 100
        elif pressed[pygame.K_DOWN]:
            self.speed = -100
        else:
            self.speed = 0

        # update rotation
        self.facing += self.rot_speed * dt

        # update velocity
        self.velocity = Vec2d(0, self.speed * dt)
        self.velocity.angle = self.facing

        # update position
        self.pos += self.velocity
Example #2
0
  def update(self, delta_time):
    super(Hunter, self).update(delta_time)

    self.facing += self.rot_speed*delta_time
    self.velo = Vec2d(0,self.speed * delta_time)
    self.velo.angle = self.facing
    self.pos = self.pos + self.velo
Example #3
0
    def __init__(self, damage, speed, position, color, width, height):
        super().__init__()
        self.image = pygame.Surface([width, height])
        self.image.fill(WHITE)
        self.image.set_colorkey(WHITE)

        self.damage = damage
        self.speed = Vec2d(speed)
        self.position = Vec2d(position)
        self.color = color
        self.width = width
        self.height = height

        pygame.draw.rect(self.image, color, [0, 0, width, height])
        self.rect = self.image.get_rect()
        self.rect.center = self.position
Example #4
0
 def __init__(self, pos=Vec2d(0, 0), facing=0, speed=0, rot_speed=0):
     self.pos = pos
     self.facing = facing
     self.speed = speed
     self.rot_speed = rot_speed
     self.r, self.g, self.b = 255, 0, 0
     self.colliding = False
Example #5
0
    def __init__(self, x, y, length, num_points) -> None:
        self.pos = Vec2d(x, y)
        self.length = length
        self.num_points = num_points

        self.color = [0, 200 + randint(-50, 50), 0]

        self.__angles = [0 for _ in range(self.num_points)]
        self.__points = []
        self.generate_points()
Example #6
0
    def generate_points(self):
        current_point = self.pos.copy()
        self.__points = [current_point]
        prev_angle = 0
        dy = self.calculate_points_seperation()

        for angle in self.__angles:
            new_point = Vec2d.from_angle(radians(angle + prev_angle + 90))
            new_point.mult(dy, -dy)
            new_point.add(current_point)

            self.__points.append(new_point)

            current_point = new_point.copy()
            prev_angle += angle
Example #7
0
    def avoid(self, avoidables):
        for pos, size in avoidables:
            pos = Vec2d(pos)

            i = 0
            for point in self.__points:
                if i == 0:
                    i += 1
                    continue

                if point.dist(pos) < size**2:
                    avoid_angle = pos.get_heading_angle()
                    point_angle = point.get_heading_angle()

                    d_angle = avoid_angle - point_angle
                    self.__angles[i - 1] += d_angle

                i += 1
Example #8
0
    def __init__(self, picture, health, position=(500, 500), direction=1):
        super().__init__()
        self.image = pygame.transform.scale(picture, (111, 162))
        self.image.fill(WHITE)
        self.image.set_colorkey(WHITE)

        self.picture = picture
        self.health = health
        self.position = Vec2d(position)
        self.direction = direction
        """
        Directions:
            - Up:    1
            - Left:  2
            - Down:  3
            - Right: 4
        """

        self.rect = self.image.get_rect()
Example #9
0
 def __init__(self, x, y, radius, color):
     self.pos = Vec2d(x, y)
     self.radius = radius
     self.speed = Vec2d(0, 0)
     self.color = color
Example #10
0
 def __init__(self):
   super(Hunter, self).__init__(pos = Vec2d(random.randint(-200,200),random.randint(-200,200)),
                                speed = random.randint(30, 70),
                                rot_speed = random.uniform(-1,1))
Example #11
0
 def moveDown(self, yspeed):
     self.direction = 3
     tempMovement = (0, yspeed)
     movement = Vec2d(tempMovement)
     self.position = self.position.__add__(movement)
Example #12
0
 def moveUp(self, yspeed):
     self.direction = 1
     tempMovement = (0, -yspeed)
     movement = Vec2d(tempMovement)
     self.position = self.position.__add__(movement)
Example #13
0
 def moveLeft(self, xspeed):
     self.direction = 2
     tempMovement = (-xspeed, 0)
     movement = Vec2d(tempMovement)
     self.position = self.position.__add__(movement)
Example #14
0
HORISONTAL_TO_GOAL = 160
PENTALTY_HORISONTAL = 160
PENTALTY_VERTICAL = 400
GOAL = 80
GOAL_H = 20

# Player Variables
PLAYER_RADIUS = 10
PLAYER_SPEED = 2
PLAYER_MAXSPEED = 2

BALL_MAXSPEED = 10

VIEW_DISTANCE = 1000
SHOOT_DISTANCE = 300
PLAYER_DISTANCE = 5

#Team
RED = 1
BLUE = 2

# Default pos
KEEPER_RED_POS = Vec2d(DISTANCE_FROM_SCREEN, SCREEN_Y / 2)
RED_PLAYER2 = Vec2d(SCREEN_X / 2 - 400, SCREEN_Y / 2 - 100)
RED_PLAYER3 = Vec2d(SCREEN_X / 2 - 400, SCREEN_Y / 2 + 100)
RED_PLAYER4 = Vec2d(SCREEN_X / 2 - 200, SCREEN_Y / 2)
KEEPER_BLUE_POS = Vec2d(SCREEN_X - DISTANCE_FROM_SCREEN, SCREEN_Y / 2)
BLUE_PLAYER2 = Vec2d(SCREEN_X / 2 + 400, SCREEN_Y / 2 - 100)
BLUE_PLAYER3 = Vec2d(SCREEN_X / 2 + 400, SCREEN_Y / 2 + 100)
BLUE_PLAYER4 = Vec2d(SCREEN_X / 2 + 200, SCREEN_Y / 2)
BALL_POS = Vec2d(SCREEN_X / 2, SCREEN_Y / 2)
Example #15
0
 def __init__(self, x, y):
     self._pos = Vec2d(x, y)
     self.direction = None
     self.length = None
     self.w = None
     self.l = None
Example #16
0
 def moveRight(self, xspeed):
     self.direction = 4
     tempMovement = (xspeed, 0)
     movement = Vec2d(tempMovement)
     self.position = self.position.__add__(movement)
Example #17
0
 def pos(self):
     return Vec2d(self._pos.x, self._pos.y + (self.length / 2))
Example #18
0
#endregion


def generate_grass(amount):
    dx = size[0] / amount
    grass = []

    for x in range(amount):
        g = Grass(x * dx, 600, 300 + randint(-100, 100), 6)
        grass.append(g)

    return grass


grass = generate_grass(200)
wind = (Vec2d(-100, size[1] * 0.6), 100)

take_screen_shots = True
frame_index = 0

key_lock = False
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()
    frame_start_time = time()
    screen.fill([200, 200, 250])

    mouse_pos = pygame.mouse.get_pos()
    mouse_press = pygame.mouse.get_pressed()