Allow knife to slice into fruit

This commit is contained in:
Chris Proctor
2026-03-19 12:43:05 -04:00
parent 7ccccb75ee
commit 1b5d9c5af2
2 changed files with 14 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
from random import randint
from .fruit import FruitPiece
class CatcherPiece:
character = "-"
@@ -28,10 +29,21 @@ class Catcher:
new_x = max(0, x - 3)
self.position = (new_x, y)
self.update_piece_positions()
self.check_fruit_collisions(game)
if keystroke.name == "KEY_RIGHT":
new_x = min(width - self.width, x + 3)
self.position = (new_x, y)
self.update_piece_positions()
self.check_fruit_collisions(game)
def check_fruit_collisions(self, game):
agents_by_pos = game.get_agents_by_position()
seen = set()
for piece in self.pieces:
for agent in agents_by_pos.get(piece.position, []):
if isinstance(agent, FruitPiece) and agent.parent.alive and id(agent.parent) not in seen:
seen.add(id(agent.parent))
agent.parent.check_catcher_collision(game)
def create_pieces(self, game):
x, y = self.position

View File

@@ -17,6 +17,7 @@ class FruitPiece:
self.position = position
self.color = color
self.z = z
self.parent = None
class Fruit:
display = False
@@ -67,6 +68,7 @@ class Fruit:
x, y = self.position
ox, oy = offset
piece = FruitPiece((x + ox, y + oy), self.color, z)
piece.parent = self
self.pieces[offset] = piece
game.add_agent(piece)