먼저 호텔 객실에 앉아있는 나의 죽은 시간을 코딩하는 항공사 파일럿입니다. 그래서 내 무지를 용서합니다. Obj를 사용하여 블랙 잭 게임을 쓰고 있습니다. C 및 Cocos2D. 내 문제는 다음과 같습니다 : 내가 스탠드를 쳤을 때 17에 도달 할 때까지 딜러를 위해 카드를 그려야합니다.하지만 그 일을 처리했지만 루프에 지연을 삽입하자마자 작동이 멈 춥니 다. 나는 같은 지연을 구현하는 여러 가지 시도 : 그냥 모든 버튼을 정지루프 내에서 지연을 실행 중
[self performSelector:@selector(dealDealerCard:faceUp:) withObject:self afterDelay:2.0];
합니다. 나는 또한 실행 액션으로 CCSequence를 시도했다.
// if the stand button was pressed
-(void)standButtonPressed:(id)sender
{
BJDrawnCard *holeCard = [dealerHand getFlippedCard];
[holeCard flipCard];
while ([dealerHand getTotal]<=17){
[self performSelector:@selector(dealDealerCard:faceUp:) withObject:self afterDelay:2.0];
}
여기 방법입니다 : 정리해 너무
// Deal Dealers Card
-(void)dealDealerCard:(id) dummy faceUp:(BOOL)isFaceUp
{
drawnCard=[havila drawFromDeck];
if (isFaceUp) {
[drawnCard setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache]spriteFrameByName:drawnCard.imageFileName]];
}else [drawnCard setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache]spriteFrameByName:@"Backside.png"]];
[dealerHand getCard:drawnCard];
[drawnCard setScale:0.5f];
[drawnCard setPosition:[self shoePosition]];
[cardsheet addChild:drawnCard];
// animate the cards
float cardVelocity = (sqrtf((size.width*size.width)+(size.height*size.height)))/0.5; // set the base speed for the movment
// calculate the time needed to move the card
CGPoint moveDifference = ccpSub([self dealerCardPosition],
[self shoePosition]);
float moveDuration = ccpLength(moveDifference)/
cardVelocity;
// define the movement
CCMoveTo *move = [CCMoveTo actionWithDuration:
moveDuration position:[self dealerCardPosition]];
CCDelayTime *delay = [CCDelayTime
actionWithDuration:0.5];
//Run the action
[drawnCard runAction:[CCSequence actions:move,delay,nil]];
numDealerHits++;
}
: 나는 또한 스케줄러 및 NSTimer 등 여기
내 코드를 시도 나는 실행하기 위해 노력하고있어 이 메서드를 총 호출 수가 17이 될 때까지 호출간에 2.0 초 지연으로 호출하는 조건부 루프.어떤 도움을 받으실 수 있습니다.
일반 규칙 : 사용 안함 GUI 쓰레드에 지연을 코딩한다. 그 작업을 지연없이 파견 할 수있는 조각으로 작업을 분할해야합니다. –
"나는 ...."유일한 질문은 질문하지 않은 질문입니다. 나는 당신이 차기를 위해 무역/예술/과학을 연습한다는 것이 멋지다는 것을 알았습니다. – YvesLeBorg
피드백을 보내 주셔서 감사합니다. 운 좋게도 답을 찾아 보았습니다. 나는 Hot Licks가 맞을 것으로 생각하고 GUI를 어떻게 든 메인 코드에서 분리해야한다고 생각한다. 아마도 –