나는 퍼즐 게임과 일치하는 메모리 기반의 작업을하고 있습니다. 이를 위해서는 시퀀스에서 버튼을 임의로 빛낼 필요가 있습니다. 나는 샘플 퍼즐, 게임 & 코드 스 니펫을 1 주일 이상 인터넷 검색을 해왔다. 그러나 시작하기에 적절한 샘플 프로젝트 나 소스를 추적 할 수 없었다.일련의 버튼에서 UIButton을 무작위로 발광시키는 방법
조명 (버튼)을 배경 이미지 (모방)를 변경하여 빛나고 있습니다. 스토리 보드에서 이미 버튼 (안정된 상태의 색이있는 전구)의 기본 이미지를 설정했습니다. IBOutletCollection의 NSMutableArray 즉 tapLightButtons를 사용했습니다. 다음은 무작위 모드에서 빛의 시퀀스를 통해 게임 경험을 얻으려고 시도한 것입니다. tapLightButtons
-(void)startGlowingLights
{
[self shuffleValuesInArray:_tapLightButtons];
[self shuffleValuesInArray:lightArray];
[self shuffleValuesInArray:_initialButtonImages];
[self performSelector:@selector(animateButtonSequence) withObject:self afterDelay:0.2];
}
- (void) animateButtonSequence
{
__block UIButton *tapLight;
[UIView animateWithDuration:0.15
delay:0.0
options:UIViewAnimationOptionCurveLinear
animations:^{
// button flash animation
} completion:^(BOOL finished) {
if (finished) {
if (i < _tapLightButtons.count) {
i++;
[self performSelector:@selector(animateButtonSequence) withObject:self afterDelay:1.0];
tapLight = [self.tapLightButtons objectAtIndex:i-1];
UIImage *glownLight = [UIImage imageNamed:[lightArray objectAtIndex:i-1]];
[tapLight setBackgroundImage:glownLight forState:UIControlStateNormal];
[[TTLMusicPlayer sharedInstance] playGlowLightSound:[[NSBundle mainBundle] pathForResource:@"beep" ofType: @"mp3"]];
//Reset the completed glowed button to previous state(off mode)
double delayInSeconds = 1.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
if (i != 0 && i < _initialButtonImages.count) {
[tapLight setBackgroundImage:[self.initialButtonImages objectAtIndex:i-1] forState:UIControlStateNormal];
}
});
}
else {
i = 0;
}
NSLog(@"i value is %d",i);
}
}];
}
-(NSMutableArray *)shuffleValuesInArray:(NSMutableArray *)shuffledArray
{
for (NSInteger x=0;x<[shuffledArray count];x++)
{
NSInteger randomNumber = (arc4random() % ([shuffledArray count] - x)) + x;
[shuffledArray exchangeObjectAtIndex:x withObjectAtIndex:randomNumber];
}
return shuffledArray;
}
자동 랜덤 방식으로 잇달아 광선 의아해 버튼 (조명)를 보유하는 배열이다.
lightArray는은 모든 기본 (초기)의 배열을 포함 버튼의 이미지 (오프 모드 등)
을
initialButtonImages을 (빛났습니다 영향을 생산하는 플래시) 모든 적절한 컬러 이미지를 유지하는 배열입니다 일부는 어떻게 내가 부분적으로 모든 배열을 섞은 후에도 놀랍게도 원하는대로 얻을 수 있었는데, 빛나는 이미지가 안정된 (색이없는 모드의 빛) 상태이어야하고 다시 설정 한 후에 안정된 이미지가 나타나야하므로 여전히 순서가 변한다. 빛이 실제로 빛을 발하기 전에 그 빛을 맞추어 라. .
스택 교환에서 게임 개발 사이트에 question 게시 됨! 무작위 순서에서 색깔의 빛
어떻게 제대로 빛을 할 수있는 버튼의 점멸 후 더 나은 이해
에 대한
게임 화면?
나는 사람들이 공개 포럼에서 모든 생각을 넣어 그들 중 대부분은 일부 클라이언트를 만들기 때문에 난 그래서 더 많은 정보를 제공해주세요 "@amar NDA – amar
의 위반을보고 실패 와서 궁금해 우리 너를 도울 수있어? ","너는 무엇을하려고 하느냐 ","왜 너는 이러는거야? "여기에 전문가와 운영자가 자주받는 의견입니다. 귀하의 의견에 대한 어떤 tq, 내가 좀 더 구체적인 방식으로 내 질문을 수정했습니다, 지금 확인하십시오 :) –
짧은 시간에 특정 솔루션을 줄 수 있다고 생각하지만 포인터 하위 클래스 UIButton 귀하의 algo 및 관련 적절한 추가 상태를 개최하는 것 같아요 반응성 코코아가 도움이 될 것입니다 – amar