generated from mwc/project_game
Allow knife to slice into fruit
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
from random import randint
|
from random import randint
|
||||||
|
from .fruit import FruitPiece
|
||||||
|
|
||||||
class CatcherPiece:
|
class CatcherPiece:
|
||||||
character = "-"
|
character = "-"
|
||||||
@@ -28,10 +29,21 @@ class Catcher:
|
|||||||
new_x = max(0, x - 3)
|
new_x = max(0, x - 3)
|
||||||
self.position = (new_x, y)
|
self.position = (new_x, y)
|
||||||
self.update_piece_positions()
|
self.update_piece_positions()
|
||||||
|
self.check_fruit_collisions(game)
|
||||||
if keystroke.name == "KEY_RIGHT":
|
if keystroke.name == "KEY_RIGHT":
|
||||||
new_x = min(width - self.width, x + 3)
|
new_x = min(width - self.width, x + 3)
|
||||||
self.position = (new_x, y)
|
self.position = (new_x, y)
|
||||||
self.update_piece_positions()
|
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):
|
def create_pieces(self, game):
|
||||||
x, y = self.position
|
x, y = self.position
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ class FruitPiece:
|
|||||||
self.position = position
|
self.position = position
|
||||||
self.color = color
|
self.color = color
|
||||||
self.z = z
|
self.z = z
|
||||||
|
self.parent = None
|
||||||
|
|
||||||
class Fruit:
|
class Fruit:
|
||||||
display = False
|
display = False
|
||||||
@@ -67,6 +68,7 @@ class Fruit:
|
|||||||
x, y = self.position
|
x, y = self.position
|
||||||
ox, oy = offset
|
ox, oy = offset
|
||||||
piece = FruitPiece((x + ox, y + oy), self.color, z)
|
piece = FruitPiece((x + ox, y + oy), self.color, z)
|
||||||
|
piece.parent = self
|
||||||
self.pieces[offset] = piece
|
self.pieces[offset] = piece
|
||||||
game.add_agent(piece)
|
game.add_agent(piece)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user