2014-04-05 7 views
0

SpriteKit으로 Xcode 5에서 점프 게임을 만들려고합니다. 먼저 블록을 임의의 위치에 생성하려고하지만 점프중인 게임에서 '인간'에 도달 할 수 있습니다. 나는 블록을 얻었고, 그 블록은 설정된 위치에 스폰했다. 이 위치에서 2 블록을 생성해야합니다.이 블록은 + 또는 - 80 이상 또는 이하일 수 있으며 <은 80 이상 떨어져있을 수 있습니다. 이제 여기에 문제가 있습니다. Xcode에서 코드를 작성하는 방법을 모르겠습니다. 이 아마도 같은SpriteKit 블록 위치 지정

  SKTexture * BlockTexture1 = [SKTexture textureWithImageNamed:@"Block"]; 
    BlockTexture1.filteringMode = SKTextureFilteringNearest; 
    SKTexture * BlockTexture2 = [SKTexture textureWithImageNamed:@"Block"]; 
    BlockTexture2.filteringMode = SKTextureFilteringNearest; 

    SKSpriteNode * Block1 = [SKSpriteNode spriteNodeWithTexture:BlockTexture1]; 
    [Block1 setScale:1]; 
    Block1.position = CGPointMake(100 , 150); 
    Block1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:Block1.size]; 
    Block1.physicsBody.dynamic = NO; 
    Block1.physicsBody.usesPreciseCollisionDetection = YES; 
    Block1.zPosition = 3; 
    [self addChild:Block1]; 

    SKSpriteNode * Block2 = [SKSpriteNode spriteNodeWithTexture:BlockTexture2]; 
    [Block2 setScale:1]; 
    Block2.position = CGPointMake(**Block1 + or - 80, Block 1 < 80**); 
    Block2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:Block2.size]; 
    Block2.physicsBody.dynamic = NO; 
    Block2.physicsBody.usesPreciseCollisionDetection = YES; 
    Block2.zPosition = 3; 
    [self addChild:Block2]; 

답변

0

이 당신의 시작하려면 뭔가 : 내 지금까지 코드

int block1x = 100; 
int block1y = 150; 

Block1.position = CGPointMake(block1x, block1y); 

int block2x = 0; 
int block2y = 0; 

int r1 = arc4random() % 2; // produces random numbers between 0 and 1 
if(r1 == 0) 
    block2x = block1x + 80; 
if(r1 == 1) 
    block2x = block1x - 80; 

int r2 = arc4random() % 2; 
if(r2 == 0) 
    block2y = block1y + 80; 
if(r2 == 1) 
    block2y = block1y - 80; 

Block2.position = CGPointMake(block2x, block2y); 
+0

대단히 감사합니다. 이제 4 블록, 같은 상황이 생겼습니다. 1. 블록에만 설정된 위치가 있으면 어떻게 코드를 작성할 수 있습니까? 다시 감사합니다. –

+0

이전과 동일한 교장을 사용할 수 있습니다. 모두 같은 방법으로 코드를 단순하게 유지하려면 r2를 r3에 복제하면됩니다. – sangony