Python 如何使用cocos2d';s碰撞模型

Python 如何使用cocos2d';s碰撞模型,python,cocos2d-python,Python,Cocos2d Python,最近,我用cocos2d和Python制作了一个游戏。但是我在碰撞模型方面遇到了麻烦。我阅读了,但仍然无法使用CollisionManager添加CollidableSprite,如中所示 事实上,我必须将ActorSprite更改为CollidableSprite,以避免出现错误。有什么问题吗 import cocos.euclid as eu import cocos.collision_model as cm class CollidableSprite(cocos.sprite.Spr

最近,我用
cocos2d
Python
制作了一个游戏。但是我在碰撞模型方面遇到了麻烦。我阅读了,但仍然无法使用
CollisionManager
添加
CollidableSprite
,如中所示

事实上,我必须将
ActorSprite
更改为
CollidableSprite
,以避免出现错误。有什么问题吗

import cocos.euclid as eu
import cocos.collision_model as cm

class CollidableSprite(cocos.sprite.Sprite):
    def __init__(self, image, center_x, center_y, radius):
        super(ActorSprite, self).__init__(image)
        self.position = (center_x, center_y)
        self.cshape = cm.CircleShape(eu.Vector2(center_x, center_y), radius)

class ActorModel(object):
    def __init__(self, cx, cy, radius):
        self.cshape = cm.CircleShape(eu.Vector2(center_x, center_y), radius)
文档显示了初始化可碰撞精灵的示例。但是,
ActorSprite
来自哪里?我必须将其更改为
可碰撞的Prite
,以使课程正常运行。我声明了一个碰撞管理器来添加精灵。但是当我调用函数
CollisionManeger.known_objs()
时,它返回
None


那么,文档有什么问题吗?或者我有什么误解吗?

看起来这个示例确实应该初始化一个
CollidableSprite
,而不是
ActorSprite

CollisionManager
类只是一个接口。它没有任何作用。在中有两种实现:
CollisionManagerBruteForce
CollisionManagerGrid
。因此,您可以使用以下示例:

self.collision_manager = CollisionManagerBruteForce()

但是请注意,
CollisionManagerGrid

请原谅我糟糕的英语。您能更详细地解释一下您遇到了什么麻烦吗?也请在您的代码中编辑。通过代码和更多信息,有人可以编辑您的问题,使其更容易理解(如果因为您的英语而不清楚)。感谢您的回复~我使用CollisionManagerBruteForce()成功添加了精灵。谢谢,tython!
self.collision_manager = CollisionManagerBruteForce()