0
화면을 터치 한 위치에 따라 활의 각도를 설정하는 코드가 있습니다. 간단한 "bow.rotation = X"명령이 ccTouchesMoved 이벤트에 대해 수행됩니다. 문제는 0.9 또는 0.8.2 에 대해 cocos2d의 0.7.1에서 코드를 실행하는 동안 0.9 및 0.8.2에서 더 나은 결과를 얻었습니다. touchesmove 이벤트의 일부를 건너 뛴 것처럼 보입니다. 있다? 을 heres 코드 ... :iphone-cocos2d : 0.9 & 0.8.2가 0.7.1보다 느립니다?
-(BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView: [touch view]];
location = [[CCDirector sharedDirector] convertToGL: location];
if(player.state == StateNotPrepared) {
if(CGRectContainsPoint(spriteToRect(fireButton), location)) {
[player prepareShot];
[powerMeter resetBar];
[powerMeter startLoadingBar];
} else {
float newAngle = [player angleByTouchPoint: location];
[self setAngles: newAngle];
}
}
return kEventHandled;
}
-(BOOL)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView: [touch view]];
location = [[CCDirector sharedDirector] convertToGL: location];
if(player.state == StateNotPrepared || player.state == StatePrepared) {
if(!CGRectContainsPoint(spriteToRect(fireButton), location)) {
float newAngle = [player angleByTouchPoint: location];
[self setAngles: newAngle];
}
}
return kEventHandled;
}
0.9에서 setDirectorType이라는 메서드를 찾을 수 없습니다. [[CCDirector sharedDirector] setDirectorType]; 그런 방법이 없습니다 –
거기에 있습니다. TileMapTest.m과 같이 사용되는 것을 볼 수 있습니다 : \t [CCDirector setDirectorType : CCDirectorTypeDisplayLink]; –
당신 말이 맞아요, 존재합니다. sharedDirector 인스턴스가 아닌 itlsef 클래스에서 setDirector 유형을 호출해야하며, sharedDirector로 다른 작업을 수행하기 전에이 작업을 수행해야합니다. 감사합니다. . –