1
我正在製作一個可以通過參考下面的圖像來最好地描述的地圖遊戲。 紅瓦是我的地板,它與我的玩家發生碰撞,它也處理精靈是否可以跳躍(如果沒有接觸不跳)。所以,當我穿過紅色的瓷磚時,如果碰到黃色瓷磚,我會「跳過」 。我的NSLog再次打印「可以跳」,因爲我有很長時間的球員和牆的接觸。但如果我離開黃色瓷磚,仍然走在紅色。我收到一條通知說「不能跳」,結果我的精靈不能再跳,因爲它沒有檢測到我的玩家和我的地板之間的碰撞。當它仍然存在時,聯繫正在結束
如果我能給出關於如何處理這個問題的想法,我會很感激。 感謝
floor.name = @"floor";
floor.position = CGPointMake(x + w/2, y + h/2);
floor.zPosition=0;
floor.physicsBody =
[SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(w, h)];
floor.physicsBody.usesPreciseCollisionDetection=YES;
floor.physicsBody.categoryBitMask = floorCategory;
floor.physicsBody.contactTestBitMask=spriteCategory;
floor.physicsBody.dynamic = NO;
- (void)didBeginContact:(SKPhysicsContact *)contact {
uint32_t collision = (contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask);
if (collision == (floorCategory|spriteCategory)) {
NSLog(@"Can jummp");
onFloor=YES;
}
}
- (void) didEndContact:(SKPhysicsContact *)contact {
uint32_t contactTest = (contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask);
if (contactTest == (spriteCategory| floorCategory)) {
NSLog(@"dont jumps");
onFloor = NO;
}
你有沒有機會得到很多可以/不能很快跳過消息? – sangony
@sangony不,我不跳,當我跳我得到「不能跳」,當我登陸平臺時,我得到「可以跳」。 – Jennifer
因此,如果他與黃色和紅色接觸,然後在與紅色接觸時失去與黃色的接觸,那麼你的傢伙顯示「不跳躍」? – sangony