我正在开发一个小项目,这是一个向上滚动而不是向左滚动的游戏。所以,我在我的精灵和地板上有碰撞检测,以确定角色何时可以跳跃并避免双重/无限跳跃。然而,当我的tilemap滚动时,发生了一些奇怪的事情。 “koala”精灵似乎以某种方式“反弹”了tilemap,我不认为它是物理引擎的属性,好像我关闭滚动跳跃就好了。但是当滚动开启时,我会发现这些小毫米反弹。我知道图像并没有完全捕获它,但我添加了我的Nslog,这是碰撞代码。玩家在地板上恢复原状设置为零,当我关闭滚动并跳转时...没有弹跳发生
- (void)didBeginContact:(SKPhysicsContact *)contact {
uint32_t collision = (contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask);
if (collision == (PCWallCategory|PCPlayerCategory)) {
NSLog(@"Can jummp");
onGround=YES;
}else if (collision == (PCWinCategory|PCPlayerCategory)) {
NSLog(@"You win");
//onGround=YES;
}
}
- (void)didEndContact:(SKPhysicsContact *)contact {
// 1
SKPhysicsBody *other = (contact.bodyA.categoryBitMask == PCPlayerCategory ?
contact.bodyB : contact.bodyA);
if (other.categoryBitMask & _player.physicsBody.collisionBitMask) {
// 3
NSLog(@"dont jumps");
onGround=NO;
}
}