mini_arcade_core.spaces.d2.boundaries2d ======================================= .. py:module:: mini_arcade_core.spaces.d2.boundaries2d .. autoapi-nested-parse:: Boundary behaviors for 2D rectangular objects. This module is transitional: - Supports the legacy d2 model (`position`, `size`, `velocity`) - Supports the new model (`transform`, `kinematic`) Classes ------- .. autoapisummary:: mini_arcade_core.spaces.d2.boundaries2d.LegacyRectKinematic mini_arcade_core.spaces.d2.boundaries2d.RectKinematic mini_arcade_core.spaces.d2.boundaries2d.VerticalBounce mini_arcade_core.spaces.d2.boundaries2d.LegacyRectSprite mini_arcade_core.spaces.d2.boundaries2d.RectSprite mini_arcade_core.spaces.d2.boundaries2d.VerticalWrap Module Contents --------------- .. py:class:: LegacyRectKinematic Bases: :py:obj:`Protocol` Legacy contract for something that can bounce. .. py:attribute:: position :type: mini_arcade_core.spaces.geometry.bounds.Position2D .. py:attribute:: size :type: mini_arcade_core.spaces.geometry.bounds.Size2D .. py:attribute:: velocity :type: mini_arcade_core.spaces.d2.physics2d.Velocity2D .. py:class:: RectKinematic Bases: :py:obj:`Protocol` New contract for something that can bounce. Note: - In the current engine usage, `transform.center` is treated as top-left. .. py:attribute:: transform :type: mini_arcade_core.spaces.geometry.transform.Transform2D .. py:attribute:: kinematic :type: mini_arcade_core.spaces.physics.kinematics2d.Kinematic2D .. py:class:: VerticalBounce Bounce an object off the top/bottom bounds by inverting vertical velocity and clamping its position inside bounds. .. py:attribute:: bounds :type: mini_arcade_core.spaces.geometry.bounds.Bounds2D .. py:method:: apply(obj: RectKinematic | LegacyRectKinematic) -> bool Apply vertical bounce to the given object. .. py:class:: LegacyRectSprite Bases: :py:obj:`Protocol` Legacy contract for something that can wrap. .. py:attribute:: position :type: mini_arcade_core.spaces.geometry.bounds.Position2D .. py:attribute:: size :type: mini_arcade_core.spaces.geometry.bounds.Size2D .. py:class:: RectSprite Bases: :py:obj:`Protocol` New contract for something that can wrap. .. py:attribute:: transform :type: mini_arcade_core.spaces.geometry.transform.Transform2D .. py:class:: VerticalWrap Wrap an object top <-> bottom. .. py:attribute:: bounds :type: mini_arcade_core.spaces.geometry.bounds.Bounds2D .. py:method:: apply(obj: RectSprite | LegacyRectSprite) -> None Apply vertical wrap to the given object.