SKNodes 및/또는 SKSpriteNodes에 애니메이션을 적용하는 것과 관련하여 몇 가지 질문이 있습니다. 첫 번째는 뷰가로드되면 이동시키는 방법입니다. 어떻게 그들을 충돌시키고 서로 떨어져서 튕기고 다른 방향으로 가야합니까? 나는 이것을 위해 SKScene을 사용하고있다. 또한 SKLabels와 함께 SKSriteNodes를 그룹화하는 방법이 있습니까?SKNodes 또는 SKSpriteNode에 애니메이션을 적용하고 충돌하여 튀기는 방법?
나는이 : 나는 SKSpriteNodes를 선언 곳
다음#import <SpriteKit/SpriteKit.h>
//constants for the collision bitmap
static const uint32_t classicCategory = 1 << 0;
static const uint32_t arcadeCategory = 1 << 1;
static const uint32_t frenzieCategory = 1 << 2;
@interface HomeScene : SKScene <SKPhysicsContactDelegate> {
BOOL isSoundActionCompleted;
}
@end
이
SKSpriteNode *classicMode = [SKSpriteNode spriteNodeWithImageNamed:@"bubble.png"];
classicMode.size = CGSizeMake(130, 130);
classicMode.position = CGPointMake(self.size.width/2, self.size.height/2+50);
classicMode.name = @"classicMode";
[self addChild:classicMode];
SKLabelNode *classicTitle = [SKLabelNode labelNodeWithFontNamed:@"Noteworthy"];
classicTitle.text = @"Classic";
classicTitle.fontSize = 25;
classicTitle.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeCenter;
classicTitle.verticalAlignmentMode = SKLabelVerticalAlignmentModeCenter;
classicTitle.fontColor = [SKColor darkGrayColor];
classicTitle.position = CGPointMake(self.size.width/2, self.size.height/2+50);
classicTitle.name = @"classicTitle";
[self addChild:classicTitle];
여기에 다른 하나
SKSpriteNode *arcadeMode = [SKSpriteNode spriteNodeWithImageNamed:@"bubble.png"];
arcadeMode.size = CGSizeMake(130, 130);
arcadeMode.position = CGPointMake(self.size.width/2+68, self.size.height/2-65);
arcadeMode.name = @"arcadeMode";
[self addChild:arcadeMode];
SKLabelNode *arcadeTitle = [SKLabelNode labelNodeWithFontNamed:@"Noteworthy"];
arcadeTitle.text = @"Arcade";
arcadeTitle.fontSize = 25;
arcadeTitle.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeCenter;
arcadeTitle.verticalAlignmentMode = SKLabelVerticalAlignmentModeCenter;
arcadeTitle.fontColor = [SKColor darkGrayColor];
arcadeTitle.position = CGPointMake(self.size.width/2+68, self.size.height/2-65);
arcadeTitle.name = @"arcadeTitle";
[self addChild:arcadeTitle];
충돌입니다 :
//collision and contact detection
self.physicsBody.categoryBitMask = arcadeCategory;
//physics and collision detection
classicMode.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:classicMode.size];
classicMode.physicsBody.dynamic = NO; //no gravity
classicMode.physicsBody.categoryBitMask = arcadeCategory;
arcadeMode.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:arcadeMode.size];
arcadeMode.physicsBody.dynamic = NO; //no gravity
arcadeMode.physicsBody.categoryBitMask = classicCategory;
그리고 충돌 감지 :
//collision detection
classicMode.physicsBody.categoryBitMask = classicCategory;
classicMode.physicsBody.collisionBitMask = arcadeCategory;
classicMode.physicsBody.contactTestBitMask = arcadeCategory;
arcadeMode.physicsBody.categoryBitMask = arcadeCategory;
arcadeMode.physicsBody.collisionBitMask = classicCategory;
arcadeMode.physicsBody.contactTestBitMask = classicCategory;
좋아 멋진 내가 다른 줄 것과 상호 작용 할 때 시도해 봐. – Ed3121577