0

我有一个带有以下代码的 xcode 项目:

在fflayer.h

诠释*芬贾尔;

在fflayer.m

-(void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event {
    CGSize winSize = [[CCDirector sharedDirector] winSize];
    CGPoint touchLocation = [self convertTouchtoNodeSpace:touch];
    CGPoint oldTouchLocation = [touch previousLocationInView:touch.view];
    oldTouchLocation = [CCDirector sharedDirector] convertToGL:oldLocation];
    oldTouchLocation = [self convertoToNodeSpace:oldTouchLocation];

    CGPoint translation = ccpSub(touchLocation, oldTouchLocation);
    [self panForTranslation:translation];

    if (CGRectIntersectsRect(selSprite.boundingBox, eJar.boundingBox)) {

    selSprite.userData = FALSE;
    selSprite.visible = FALSE;
    selSprite.position = ccp(winSize.width +40, winSize.height + 40);
    _currentFlies--;
    ffinjar++;

 }

出于某种原因,这导致 ffinjar 添加 4 而不是 1。但 _currentFlies 只是减去 1。我不知道。谁能看到我可能做错了什么?

4

1 回答 1

1

这是因为您的声明是一个指针,并且增加一个指针与增加一个 int 具有不同的含义(IIRC,它增加了 sizeof(int),我不确定)。

int *ffinjar;
// perhaps should be
int ffinjar;

编辑:我已经做了一个测试,并且确实增加了一个指向 int 的指针在我的系统上增加了 4(并且 sizeof(int) 也是 4)

于 2012-07-04T02:07:12.647 回答