-
Notifications
You must be signed in to change notification settings - Fork 0
/
player.py
69 lines (60 loc) · 2.08 KB
/
player.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
__author__ = 'Hieu'
"""
Implement player/player sprite
"""
import pygame
from sprite_factory import SpriteFactory
from collision import Collision
from event_handlers import *
class Player(pygame.sprite.Sprite):
def __init__(self, manager, sprite, frame_data, player_initial_position, ball, sfx):
# Call the parent's constructor
pygame.sprite.Sprite.__init__(self)
self.change_x = 0
self.change_y = 0
self.frames = []
self.manager = manager
player_frames = SpriteFactory.generate_frames(sprite, frame_data)
image = player_frames[0]
self.frames.append(image)
self.manager.add(self)
# Set the image the player starts with
self.image = self.frames[0]
# Set a reference to the image rect
self.rect = self.image.get_rect()
# self.center = self.rect.width / 2, self.rect.height / 2
self.rect.x = player_initial_position[0]
self.rect.y = player_initial_position[1]
self.radius = 37
self.m = 50
self.collision = Collision()
self.ball = ball
self.player_list = []
self.sfx = sfx
self.player_vs_ball_observable = PlayerVsBallObservable()
self.player_vs_ball_observer = PlayerVsBallObserver(sfx)
self.player_vs_ball_observable.register(self.player_vs_ball_observer)
self.direction = [0, 0]
def update(self):
# Move left/right/up/down
self.collision.collisionPlayer2Wall(self)
self.rect.x += self.change_x
self.rect.y += self.change_y
self.collision.collisionPlayer2Ball(self, self.ball, self.player_vs_ball_observable)
def go_left(self):
self.change_x = -6
self.change_y = 0
def go_right(self):
self.change_x = 6
self.change_y = 0
def go_up(self):
self.change_y = -6
self.change_x = 0
def go_down(self):
self.change_y = 6
self.change_x = 0
def stop(self):
self.change_x = 0
self.change_y = 0
def getPlayerList(self, player_list):
self.player_list = player_list