(iphone 용 cocos2d 사용)스프라이트를 일정한 속도로 부드럽게 회전하려고합니다. 그러나 그것은 속도를 줄입니다.
먼저 중요한 코드를 설명해 드리겠습니다. (중요한 부분)
-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch * touch = [touches anyObject];
CGPoint location = [touch locationInView:[touch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
float dstAngle = CC_RADIANS_TO_DEGREES(-ccpToAngle(ccpSub(location, plane.position)));
plane.dstAngle = dstAngle;
}
-(void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch * touch = [touches anyObject];
CGPoint location = [touch locationInView:[touch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
float dstAngle = CC_RADIANS_TO_DEGREES(-ccpToAngle(ccpSub(location, plane.position)));
plane.dstAngle = dstAngle; }
화면을 터치하면 평면과 터치 사이의 각도를 계산합니다 위치.
이제 평면의 "대상"각도를 설정합니다. "평면"은 하위 클래스입니다.
내 헤더 파일에서 나는 다음과 같은 float 값을가집니다.
//this is in my plane subclass
float diffAngle_;
float startAngle_;
float dstAngle_;
float smoothRotationSpeed_;
편집 : 레이어의 초기화에서 "smoothRotationSpeed"값을 설정합니다. "rotationTick"메서드가 예약되었습니다. 비행기를 회전하는 진드기 방법이 있습니다 (또한 평면 하위 클래스에서)
이제는 스프라이트가 올바르게 회전하는 위치를 터치하면 문제가 발생하지만 처음에는 조금 더 빠르게 회전합니다. 속도가 느려집니다.
목적지 각도가 가까울수록 속도가 느려집니다.
그러나 일정한 속도로 움직이기를 원합니다. 이 "상수"속도는 "smoothRotationSpeed"값에 정의되어 있지만 코드에서 어떻게 구현할 수 있습니까?
간격을 "smoothRotationSpeed"값으로 설정하면 부드럽 지 않습니다. 그것은 지체 할 것이다.
누구든지 나를 도와주고 싶습니까?
감사합니다 ... :) – cocos2dbeginner
감사합니다. 좋은 작품 감사합니다. –