2014-10-06 3 views
0

내 응용 프로그램을 무작위로 두 가지 동작 중에서 선택한 다음 0.5 초마다 동작을 반복하는 데 많은 문제가 있습니다. 나는 (257510) 또는 (150, 510)에서 스프라이트를 설정하는 선택 중 하나에 내 응용 프로그램을 원하는무작위로 두 동작 중 하나를 선택하고 일정한 시간마다 반복하십시오.

//Setting the sprite to a position on the screen (it happens to be right where the screen cuts off) 
    SKSpriteNode *lightnut = [SKSpriteNode spriteNodeWithImageNamed:@"lightnut.png"]; 
    lightnut.position = CGPointMake(257,510); 
    [self addChild: lightnut]; 

    //The action that makes the sprite move to the new part of the screen 
    SKAction *moveNodeUp = [SKAction moveByX:0.0 y:-600.0 duration:2.0]; 
    [lightnut runAction: moveNodeUp]; 

:

여기 내 코드입니다. 예를 들어

: 누군가가 도움을 줄 수있는 경우

SKSpriteNode *lightnut = [SKSpriteNode spriteNodeWithImageNamed:@"lightnut.png"]; 
    lightnut.position = CGPointMake(257,510); 
    OR 
    lightnut.position2 = CGPointMake (150,510); 
    [self addChild: lightnut]; 

    SKAction *moveNodeUp = [SKAction moveByX:0.0 y:-600.0 duration:2.0]; 
    [lightnut runAction: moveNodeUp]; 

하는 것이 좋은 것입니다!

또한이 내용을 이해하지 못하고 있지만 아직 해결하려고합니다. 액션을 새로 고침 할 방법이 있습니까 (예 : 내 앱이 무작위로 두 포인트를 선택하여 새로운 위치로 이동하도록 함). 이전 액션이 완료되지 않은 상태에서도 다른 스프라이트보다 먼저 새로운 스프라이트를 전송합니다. 화면을 떠났어? 감사!

답변

2

무작위로 배포하려면 arc4random_uniform() (see e.g. here)을 사용할 수 있습니다.

동전 던지기는 다음과 같이 보일 것이다 :

BOOL heads = arc4random_uniform(100) < 50; 

당신은 아마처럼 다음에 무엇을 알고 설명에 대한

lightnut.position = (heads)? CGPointMake(257,510) : CGPointMake(150,510); 
+0

감사합니다! 나는 그것에 대해 배웠다고 생각하지만 내 코드와 그 코드를 함께 쓰는 방법을 이해하지 못했습니다. 더 쉽게 만들어 주셔서 감사합니다! – Ryandev

관련 문제