物理引擎#
arcade.PymunkException#
arcade.PymunkPhysicsEngine#
- class arcade.PymunkPhysicsEngine(gravity=(0, 0), damping: float = 1.0, maximum_incline_on_ground: float = 0.708)[源代码]#
PyMunk物理引擎
- 参数
gravity -- 重力指向的方向
damping -- 保持到下一个刻度的速度。值1.0表示没有速度损失,而0.9表示速度损失10%等。
maximum_incline_on_ground -- 在IS_ON_GROUND()变为FALSE之前,地面可具有的最大倾斜度默认为0.708或略大于45°
- add_collision_handler(first_type: str, second_type: str, begin_handler: Optional[Callable] = None, pre_handler: Optional[Callable] = None, post_handler: Optional[Callable] = None, separate_handler: Optional[Callable] = None)[源代码]#
添加代码以处理对象之间的冲突。
- add_sprite(sprite: arcade.sprite.Sprite, mass: float = 1, friction: float = 0.2, elasticity: Optional[float] = None, moment_of_inertia: Optional[float] = None, body_type: int = 0, damping: Optional[float] = None, gravity: Optional[Union[pymunk.vec2d.Vec2d, Tuple[float, float], pyglet.math.Vec2]] = None, max_velocity: Optional[int] = None, max_horizontal_velocity: Optional[int] = None, max_vertical_velocity: Optional[int] = None, radius: float = 0, collision_type: Optional[str] = 'default', moment_of_intertia: Optional[float] = None, moment: Optional[float] = None)[源代码]#
将精灵添加到物理引擎中。
- 参数
sprite -- 要添加的精灵
mass -- 物体的质量。默认为1
friction -- 物体所具有的摩擦力。默认为0.2
elasticity -- 这个物体多么有弹性啊。0表示没有反弹。值为1.0或更高时,可能会出现不良行为。
moment_of_inertia -- 转动惯量,或改变角动量所需的力。提供无穷大会使该对象停留在其旋转中。
body_type -- 身体的类型。默认为动态,即身体可以移动、旋转等。提供静态使其固定在世界上。
damping -- 请参阅类文档
gravity -- 请参阅类文档
max_velocity -- 对象的最大速度。
max_horizontal_velocity -- X轴上的最大速度
max_vertical_velocity -- Y轴上的最大速度
radius --
collision_type --
moment_of_intertia -- 不推荐使用与2.6.2中引入的打字错误兼容的转动惯量别名
moment -- 与版本<=2.6.1兼容的惯量别名已弃用
- add_sprite_list(sprite_list, mass: float = 1, friction: float = 0.2, elasticity: Optional[float] = None, moment_of_intertia: Optional[float] = None, body_type: int = 0, damping: Optional[float] = None, collision_type: Optional[str] = None)[源代码]#
将精灵列表中的所有精灵添加到物理引擎。
- apply_opposite_running_force(sprite: arcade.sprite.Sprite)[源代码]#
如果一个精灵在动态精灵的顶部向左移动,那么这个精灵应该被推到右边。
- check_grounding(sprite: arcade.sprite.Sprite)[源代码]#
看看球员是否在地上。用来看看我们能不能跳下去。
- get_physics_object(sprite: arcade.sprite.Sprite) arcade.pymunk_physics_engine.PymunkPhysicsObject [源代码]#
获取精灵的形状/身体。
- get_sprite_for_shape(shape: Optional[pymunk.shapes.Shape]) Optional[arcade.sprite.Sprite] [源代码]#
给出一个形状,什么精灵与它联系在一起?
- get_sprites_from_arbiter(arbiter: pymunk.arbiter.Arbiter) Tuple[Optional[arcade.sprite.Sprite], Optional[arcade.sprite.Sprite]] [源代码]#
在给定冲突仲裁器的情况下,返回与冲突关联的精灵。
- is_on_ground(sprite: arcade.sprite.Sprite) bool [源代码]#
返回真的精灵是在某物之上。
- remove_sprite(sprite: arcade.sprite.Sprite)[源代码]#
从物理引擎中移除精灵。
- set_friction(sprite: arcade.sprite.Sprite, friction: float)[源代码]#
将力施加到Sprite上。
- set_horizontal_velocity(sprite: arcade.sprite.Sprite, velocity: float)[源代码]#
设置精灵的速度
arcade.PymunkPhysicsObject#
arcade.PhysicsEnginePlatformer#
- class arcade.PhysicsEnginePlatformer(player_sprite: arcade.sprite.Sprite, platforms: Optional[Union[arcade.sprite_list.sprite_list.SpriteList, Iterable[arcade.sprite_list.sprite_list.SpriteList]]] = None, gravity_constant: float = 0.5, ladders: Optional[Union[arcade.sprite_list.sprite_list.SpriteList, Iterable[arcade.sprite_list.sprite_list.SpriteList]]] = None, walls: Optional[Union[arcade.sprite_list.sprite_list.SpriteList, Iterable[arcade.sprite_list.sprite_list.SpriteList]]] = None)[源代码]#
用于平台的简单化物理引擎。开始使用这个引擎比使用像PyMunk这样更复杂的引擎要容易得多。
注: 将静态精灵发送到
walls
参数并将精灵移动到platforms
参数将对性能有非常极端的好处。注: 此引擎将自动移动任何发送到
platforms
参数之间的boundary_top
和boundary_bottom
或者是boundary_left
和boundary_right
精灵的属性。您只需设置首字母change_x
或change_y
这就去办。- 参数
player_sprite (Sprite) -- 动人的精灵
platforms (Optional[Union[SpriteList, Iterable[SpriteList]]]) -- 玩家无法通过的精灵。该值应仅用于移动精灵。应将静态精灵发送到
walls
参数。gravity_constant (float) -- 每帧向下加速
ladders (Optional[Union[SpriteList, Iterable[SpriteList]]]) -- 用户可以爬上的梯子
walls (Optional[Union[SpriteList, Iterable[SpriteList]]]) -- 玩家无法通过的精灵。该值应仅用于静态精灵。应将移动的精灵发送到
platforms
参数。
- can_jump(y_distance: float = 5) bool [源代码]#
方法,该方法查看PERAYER_SPRITE下是否有发言权。如果有发言权,玩家可以跳跃,我们返回True。
- 返回
如果我们下面有一个平台,那就是真的
- 返回类型
arcade.PhysicsEngineSimple#
- class arcade.PhysicsEngineSimple(player_sprite: arcade.sprite.Sprite, walls: Union[arcade.sprite_list.sprite_list.SpriteList, Iterable[arcade.sprite_list.sprite_list.SpriteList]])[源代码]#
简化的物理引擎,用于无重力的游戏,如自上而下的游戏。开始使用这个引擎比使用像PyMunk这样更复杂的引擎要容易得多。
- 参数
player_sprite (Sprite) -- 动人的精灵
walls (Union[SpriteList, Iterable[SpriteList]) -- 它无法通过的精灵。这可以是一个或多个精灵列表。