|
4 | 4 | # pylint: disable=too-many-arguments, too-many-locals, too-few-public-methods
|
5 | 5 |
|
6 | 6 | import math
|
7 |
| -from typing import Iterable, List, Optional, Union |
| 7 | +from typing import Iterable, List, Optional, Union, cast |
8 | 8 |
|
9 | 9 | from arcade import (
|
10 | 10 | BasicSprite,
|
11 | 11 | Sprite,
|
12 | 12 | SpriteList,
|
| 13 | + SpriteType, |
13 | 14 | check_for_collision,
|
14 | 15 | check_for_collision_with_lists
|
15 | 16 | )
|
@@ -54,7 +55,7 @@ def _circular_check(player: Sprite, walls: List[SpriteList]):
|
54 | 55 | vary *= 2
|
55 | 56 |
|
56 | 57 |
|
57 |
| -def _move_sprite(moving_sprite: Sprite, walls: List[SpriteList], ramp_up: bool) -> List[Union[Sprite, BasicSprite]]: |
| 58 | +def _move_sprite(moving_sprite: Sprite, walls: List[SpriteList[SpriteType]], ramp_up: bool) -> List[SpriteType]: |
58 | 59 |
|
59 | 60 | # See if we are starting this turn with a sprite already colliding with us.
|
60 | 61 | if len(check_for_collision_with_lists(moving_sprite, walls)) > 0:
|
@@ -231,12 +232,12 @@ class PhysicsEngineSimple:
|
231 | 232 | This can be one or multiple spritelists.
|
232 | 233 | """
|
233 | 234 |
|
234 |
| - def __init__(self, player_sprite: Sprite, walls: Union[SpriteList, Iterable[SpriteList]]): |
| 235 | + def __init__(self, player_sprite: Sprite, walls: Union[SpriteList[BasicSprite], Iterable[SpriteList[BasicSprite]]]): |
235 | 236 | assert isinstance(player_sprite, Sprite)
|
236 | 237 |
|
237 | 238 | if walls:
|
238 | 239 | if isinstance(walls, SpriteList):
|
239 |
| - self.walls = [walls] |
| 240 | + self.walls = [cast(SpriteList[BasicSprite], walls)] |
240 | 241 | else:
|
241 | 242 | self.walls = list(walls)
|
242 | 243 | else:
|
|
0 commit comments