2012-10-29 2 views
0

가로 이동을 통해 객체의 movemnt를 작성하는 코드가 있습니다. 초기화 한 Statment에서cocos2d에서 화면 제목을 지정하여 객체를 이동하는 방법

#define kAccelerationSpeed 10 
#define kAccelerometerFrequency 200 


-(void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration 
{ 


    CGPoint pt = thePlayer.position ; 
    CGFloat accel = acceleration.x * kAccelerationSpeed; 
    pt = [[CCDirector sharedDirector] convertToGL:pt]; 


     pt = ccp (pt.x+accel>0 , yLocationOfPlayer+accel<768); 


} 

-(id) init 
{ 
    // always call "super" init 
    // Apple recommends to re-assign "self" with the "super" return value 
    if((self=[super init])) { 
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0/kAccelerometerFrequency)]; 
     [[UIAccelerometer sharedAccelerometer] setDelegate:self]; 
    } 

무슨 잘못 위의 코드와, 내가 화면을 기울일 때 작동하지 않습니다, 그것은 "theplayer"object.please 도움에 대한 movemnt을하지 않습니다 나를 이렇게해라.

미리 감사드립니다.

+0

개체를 이동시키는 것은 무엇입니까? 나는 그 어떤 코드도 보지 못합니까? 또한 +/- 최대 가속도에 대한 10 픽셀은 그다지 확신 할 수 없습니다 ... –

+0

@ H2CO3 빠른 답장을 보내 주셔서 감사합니다. pt = ccp (pt.x + accel> 0, yLocationOfPlayer + accel <768); thepalyer 객체를 움직일만큼 충분합니까? cocos2d, postion.x.the accelartion 속도에서 newbe 오전 0, 그것은 왼쪽으로 이동합니다,이 logic.if 어떤 가끔, 제발 도와주세요 – stackiphone

+0

@ H2CO3 도이 코드를 추가하지만 그것은 ID 이동 woking 아니에요 = [CCMoveTo actionWithDuration : 1.0f position : CGPointMake (pt.x + accel> 0, yLocationOfPlayer + accel <768)]; [thePlayer runAction : move]; – stackiphone

답변

0

플레이어 스프라이트의 위치를 ​​지정하지 않습니다. 이것을 시도하십시오 :

NSLog(@"position before = %@", [NSValue valueWithCGPoint:thePlayer.position]); 
thePlayer.position = ccp (pt.x+accel>0 , yLocationOfPlayer+accel<768);  
NSLog(@"position after = %@", [NSValue valueWithCGPoint:thePlayer.position]); 

로깅은 1) 위임 방법이 해고되고 2) 예상되는 위치를 결정하는 데 도움이됩니다.

+0

그것은 작동하지 않습니다, 나는 alredy 시도, 나는 이미 CGPoint에서 theplayer.postion을 assing pt = thePlayer.position; – stackiphone

+0

"CGPoint pt = thePlayer.position"은 pt에 위치를 지정합니다. 실제 "thePlayer"객체로는 아무 것도하지 않습니다. –

+0

Iskander,하지만 난 당신의 코드를 시도, 작동하지 않습니다. – stackiphone

0

대표가 가속도계 정보를보고하도록 설정되어 있습니까? 가속도계 콜백에서 thePlayer.position을 지정하고 있습니까? 나는 왜 콜을 할 수 없지만 콜백 내에서 임무를 생각해 내고 그 결과는 다소 혼란스럽고 문제가 많았다. 나를위한 해결책은 가속도계 대리자 호출이 대리자 콜백의 변수 업데이트를 기반으로 틱 스크립트 내부에서 thePlayer의 위치를 ​​수정하고 할당하는 변수를 갖는 것이 었습니다.

+0

선생님, 내게 빠른 예를 보여줄 수 있습니까? – stackiphone

관련 문제