2014-03-06 4 views
0
I 등 사용자가 싸우고, 이동 게임 컨트롤을 사용하면 재생 애니메이션의 숫자와 문자가 게임을 개발하고 있어요

SpriteKit 텍스처 보이지

정상 상태 즉,이 사용자가 아무 컨트롤도 건드리지 않으면 플레이어 캐릭터의 텍스처가 Normal State 또는 Resting State 텍스처에 지정됩니다.

사용자가이 컨트롤을 매우 빠르게 적용하면 정상 상태로 돌아갈 때 플레이어의 캐릭터 텍스처가 사라집니다. 그러나 컨트롤 중 하나를 사용하면 애니메이션이 표시됩니다.

누구든지이 문제를 해결할 수 있습니까? 어떤 도움이라도 대단히 감사하겠습니다.

아래에서 사용한 기본 프로그래밍 구조 중 일부를 표시했습니다.

//------------------------------------------------------------------------- 

*// The 'Normal or Resting' state texture.* 

SKAction *normalStateAction = [SKAction setTexture:normalStateTexture]; 


*// To Play any Character Animation like Walk, Fight, Jump, etc.* 

[playerCharacter.sprite runAction:[SKAction sequence:@[charAnimAction,normalStateAction]]]; 


*// In the 'TouchesEnded' method for any Game Control.* 

-(void)TouchesEnded { 

    // Remove previous actions. 
    [playerCharacter.sprite removeAllActions]; 

    // Run Normal State action. 
    [playerCharacter.sprite runAction:normalStateAction]; 
} 

//------------------------------------------------------------------------- 
+1

코드의 해당 부분을 게시하십시오. 추측은 여기에있는 사람이 아닙니다.) – LearnCocos2D

+0

안녕 LearnCocos2D, 답장을 보내 주셔서 감사합니다. 원래 주석에 일부 코드를 게시했습니다. – user2442902

답변

0

나는 뭔가를 간과하고있는 사람 일지 모르지만 단순히 전체적으로 완료된 코드는 제거하지 마십시오. 모든 작업이 정상 상태로 끝나면 touchesBegan에서 작업을 제거한 다음 사용자가 손을 뻗었을지라도 해당 작업을 실행하게 할 수 있습니다.

+0

안녕하세요 Theis ...... 제안 주셔서 감사합니다, 그것을 시도하고 알려 드리겠습니다. – user2442902

0

저는 비슷한 문제가 아니라고 생각합니다. 나는 다양한 애니메이션 (특정 애니메이션이 게임에서 진행되는 모든 작업에 의존)을 터치합니다. 터치가 빠르며 애니메이션이 빠르게 실행되면 SKSpriteNode의 기본 텍스처가 사라집니다.

나쁜 소식은 그 원인을 알 수 없다는 것입니다. 이 문제를 해결하기 위해 내가 한 일은 SKAction을 실행 한 직후에 내 SKSprite 노드의 텍스처가 nil로 설정되었는지 지속적으로 확인하는 것이 었습니다. 작업을 실행할 때마다이 확인을하는 것은 낭비스러운 일이지만,이 상황을 해결했으며 게임 성능에 눈에 띄지 않는 영향을 미쳤습니다. 그래서

의 (스위프트)에서 축소 된 버전 내가이 같은 모습을하고 있어요 :

이는 것 같다
func doAnimation() { 

    _character.runAction(someSKAction, withKey: "animation") 

    //Whoops!, we lost our base texture again! 
    if _character.texture == nil { 
     let atlas = SKTextureAtlas(named: "someAtlasName") 
     let texture = atlas.textureNamed("idleFrame") 
     _character.texture = texture 
    } 
} 

이 SpriteKit 버그의 일종이다, 나는 '것을 생각하지 않는 너무 이국적인 걸하고있어. 격리되고 재현 될 때까지 명확하게 주장하기가 어렵습니다.

나는이 문제를 해킹하지 않고 해결했는지 알고 싶습니다. 이 작업은 너무 해킹 된 것이므로 공유하십시오. 감사.

관련 문제