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()