gpt4 book ai didi

iphone - 无法从 C++ 文件访问对象属性 (Cocos2D/Box2d)

转载 作者:行者123 更新时间:2023-11-29 04:36:48 24 4
gpt4 key购买 nike

我正在使用 Box2d 实现一个联系人监听器,它是一个 C++ .mm 文件。

每当两个气泡发生碰撞时,我就想知道,这样我就可以执行一些操作。这是我的代码:

void ContactListener::BeginContact(b2Contact* contact)
{

b2Body* bodyA = contact->GetFixtureA()->GetBody();
b2Body* bodyB = contact->GetFixtureB()->GetBody();
if (bodyA->GetUserData() != NULL && bodyB->GetUserData() != NULL)
{
BubbleSprite* bNodeA = (BubbleSprite*)bodyA->GetUserData();
BubbleSprite* bNodeB = (BubbleSprite*)bodyB->GetUserData();

BOOL oneIsBeingTouched;
if(bNodeA.isDrag == YES || bNodeB.isDrag == YES) oneIsBeingTouched = YES;
...

BubbleSprite 具有属性 BOOL isDrag,该属性指示用户当前是否正在拖动它们。我遇到的问题是:

    Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 
'-[CCSprite isDrag]: unrecognized selector sent to instance 0x1ed504a0'

BubbleSprite 是 CCSprite 的子类。 isDrag 在其文件中正确声明和综合。有人对发生的事情有任何想法吗?谢谢

最佳答案

我建议使用 getter,像这样创建你的属性。

@property (nonatomic, assign, getter=isDrag) BOOL dragging;

当然还有@synthesize它。现在您可以使用 -setDragging:[bNodeA isDrag]。没什么严重的,但应该使代码更容易理解。

关于iphone - 无法从 C++ 文件访问对象属性 (Cocos2D/Box2d),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10968007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com