diff --git a/.gitignore b/.gitignore index 894a44c..ce28ccc 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,9 @@ venv.bak/ # mypy .mypy_cache/ + +# Mac specific +.DS_Store + +# VS Code specific +.vscode/ \ No newline at end of file diff --git a/src/block.py b/src/block.py index f7966e2..ad0048c 100644 --- a/src/block.py +++ b/src/block.py @@ -34,4 +34,35 @@ class KineticBlock(Block): # KineticBall will handle the collison pass +class PaddleBlock(KineticBlock): + def update(self, **kwargs): + left = kwargs['left'] + right = kwargs['right'] + + if left: + self.position.x -= 10 + + if right: + self.position.x += 10 + + self.rectangle = pygame.Rect( + self.position.x - (self.rectangle.width/2), + self.position.y - (self.rectangle.height/2), + self.rectangle.width, + self.rectangle.height, + ) + +class MultipleBounceBlock(KineticBlock): + # This block will chage colors each time the ball touch it + # And will disappear after 4th hit + pass + + + + +class SingleBounceBlock(KineticBlock): + # This block will disappear after the ball touch it + def update(self, **kwargs): + if self.touched_by_ball: + self.object_list.remove(self) diff --git a/src/draw.py b/src/draw.py index 14ff036..84628ab 100644 --- a/src/draw.py +++ b/src/draw.py @@ -5,20 +5,34 @@ from ball import * from block import * +# from paddle import * -SCREEN_SIZE = [640, 480] +SCREEN_SIZE = [400, 800] BACKGROUND_COLOR = [255, 255, 255] def debug_create_objects(object_list): kinetic = GameBall(1, object_list, SCREEN_SIZE, Vector2(random.randint(20, SCREEN_SIZE[0] - 20), random.randint(20, SCREEN_SIZE[1] - 20)), - Vector2(4*random.random() - 2, 4*random.random() - 2), + #Vector2(10*random.random() - 2, 10*random.random() - 2), + Vector2(8, 8), [255, 10, 0], 20) object_list.append(kinetic) - block = KineticBlock(Vector2(200,200), 100, 100, [0, 0, 255]) - object_list.append(block) - + for i in range(10): + singleBounceBlock = SingleBounceBlock(Vector2(40*i,400), 39, 39, [0, 0, 255]) + object_list.append(singleBounceBlock) + + # block = KineticBlock(Vector2(200,200), 100, 100, [0, 0, 255]) + # object_list.append(block) + + paddle = PaddleBlock(Vector2(200,700), 100, 30, [255, 0, 0]) + object_list.append(paddle) + + multipleBounceBlock = MultipleBounceBlock(Vector2(200,300), 50, 50, [0, 0, 255]) + object_list.append(multipleBounceBlock) + + + def main(): pygame.init() screen = pygame.display.set_mode(SCREEN_SIZE) @@ -44,7 +58,7 @@ def main(): if keys[pygame.K_RIGHT]: right = True for object in object_list: - object.update() + object.update(left = left, right = right) # move paddle object.check_collision() # Draw Updates