小编Bre*_*ean的帖子

移动父SKNode后,Sprite工具包找不到nodeAtPoint

你好.

我在Sprite Kit中遇到了这个奇怪的问题.我正在使用nodeAtPointcategoryBitMask在调用跳转方法时检测玩家是否正在接触地面.

一切都在发挥作用.但是 - 为了在抽屉中显示一些可选按钮 - 当我移动父节点时SKAction moveTo:CGPoint(我有地面和玩家作为孩子SKNode),玩家不会跳跃.我NSLog pointBelowPlayer,它和以前一样,但是blockNode.physicsBody为空!这可能是Sprite Kit中的一个错误,还是我遗漏了一些关于继承和位置的基本信息?

跳跃的方法:

-(void)playerJump {

    // Player jump if on ground
    CGPoint pointBelowPlayer = CGPointMake(_player.position.x, _player.position.y-_player.size.height);
    SKNode *blockNode = [self nodeAtPoint:pointBelowPlayer];

    if (blockNode.physicsBody.categoryBitMask == groundCategory){
        [_player.physicsBody applyImpulse:CGVectorMake(0, 120.0f)];
    }
}
Run Code Online (Sandbox Code Playgroud)

移动父节点的方法:

-(void)toggleDrawer {
    if (bDrawerVisible) {
        [_actionLayer runAction:[SKAction moveTo:CGPointMake(0, 0) duration:1]];
        bDrawerVisible = false;
    } else {
        [_actionLayer runAction:[SKAction moveTo:CGPointMake(0, 200) duration:1]];
        bDrawerVisible = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

创建SpriteNodes:

-(id)initWithSize:(CGSize)size { …
Run Code Online (Sandbox Code Playgroud)

objective-c collision-detection ios sprite-kit

4
推荐指数
1
解决办法
1738
查看次数

Git:在没有提交的情况下创建新分支时,对主更改的更改也会分支

假设我有一个带有文本文件的全新项目.我跑:

git init

git add *

git commit -m 'Initial commit'
Run Code Online (Sandbox Code Playgroud)

然后创建一个新分支:

git checkout -b new_branch
Run Code Online (Sandbox Code Playgroud)

回到主人:

git checkout master
Run Code Online (Sandbox Code Playgroud)

如果我现在更改我的文本文件,然后在没有提交的情况下运行:

git checkout new_branch
Run Code Online (Sandbox Code Playgroud)

文件new_branch也改变了!为什么是这样?他们都指向相同的提交(相同的哈希),但它仍然感觉违反直觉,变化master也会改变new_branch.当我期望new_branch与创建时相同时,我对git的理解是否有缺陷?

(PS:我不是要求如何创建一个新分支或如何使用分支保存我的工作,我只是对这种特定环境中的gits行为感到困惑,并希望更好地理解其逻辑)

git

0
推荐指数
2
解决办法
3526
查看次数

标签 统计

collision-detection ×1

git ×1

ios ×1

objective-c ×1

sprite-kit ×1