MCPcopy Index your code
hub / github.com/ndleah/python-mini-project / Ball

Class Ball

Lazy_Pong/pong.py:89–158  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87
88
89class Ball():
90 def __init__(self,
91 center_x: int,
92 center_y: int,
93 radius: int,
94 color: tuple,
95 display_width: int,
96 display_high: int,
97 speed_x: int = 0,
98 speed_y: int = 0,) -> None:
99
100 self.center_x = center_x
101 self.center_y = center_y
102 self.radius = radius
103 self.speed_x = speed_x
104 self.speed_y = speed_y
105 self.color = color
106 self.display_width = display_width
107 self.display_high = display_high
108
109 def update_pos(self) -> None:
110 if self.center_y - self.radius <= 0 or self.center_y + self.radius >= self.display_high:
111 self.invert_move(invert_y=True)
112 if self.speed_x != 0:
113 self.center_x += self.speed_x
114 if self.speed_y != 0:
115 self.center_y += self.speed_y
116
117 def set_speed(self, speed_x: int | float, speed_y: int | float) -> None:
118 if speed_x != 0:
119 if self.speed_x < 0:
120 self.speed_x = -speed_x
121 else:
122 self.speed_x = speed_x
123 if speed_y != 0:
124 if self.speed_y < 0:
125 self.speed_y = -speed_y
126 else:
127 self.speed_y = speed_y
128
129 def invert_move(self, invert_x=False, invert_y=False):
130 if invert_x:
131 self.speed_x *= -1
132 if invert_y:
133 self.speed_y *= -1
134
135 def get_speed(self) -> tuple:
136 return (self.speed_x, self.speed_y)
137
138 def draw(self, display: pygame.Surface) -> None:
139 self.surface = display
140 pygame.draw.circle(self.surface, self.color,
141 (self.center_x, self.center_y), self.radius)
142
143 def reset(self) -> None:
144 self.speed_x = 0
145 self.speed_y = 0
146 self.center_x = self.display_width / 2

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected