나는 가속도계로 사람을 움직일 수있는 앱을 가지고 있습니다. 준비가 된 일련 시퀀스가 있고 그 다음 팝업 애니메이션을 사용하면 그 남자가 나타납니다. 비록 남자가 보이지 않고 준비 세트가 나타나면, 가속도계가 여전히 사용 가능하고 u가 그 사람을 움직일 수 있고 우발적으로 cgrectintersectsrect 변경을 사용하여 장애물을 만질 수 있습니다. 그래서 준비된 설정 순서에서 어떻게 가속도계를 비활성화하고 go word가 나타나면 다시 활성화 할 수 있습니까?일정 기간 동안 가속도계를 비활성화 한 다음 활성화하십시오
.H :
@interface GameScreen : UIViewController <UIAccelerometerDelegate> {
IBOutlet UIImageView *image1;
IBOutlet UIImageView *image2;
UIImageView *ball;
CGPoint delta;
IBOutlet UIImageView *man;
IBOutlet UIImageView *fang;
IBOutlet UIImageView* hiddenView;
IBOutlet UILabel* ready;
IBOutlet UILabel* set;
IBOutlet UILabel* go;
IBOutlet UILabel* endScreen;
IBOutlet UIImageView* guy;
CAKeyframeAnimation *popAnimation;
}
@property (nonatomic, retain)UIImageView *image1;
@property (nonatomic, retain)UIImageView *image2;
-(void)checkCollision;
@property (nonatomic, retain)IBOutlet UIImageView *ball;
@property CGPoint delta;
@end
하는 .m :
당신은 정말 코딩에 좋은 책을 읽고이 작업을 수행하는 방법에 대한 아이디어를 얻기 위해 몇 가지 튜토리얼을하고 있지만되어야한다-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
NSLog(@"x : %g", acceleration.x);
NSLog(@"y : %g", acceleration.y);
NSLog(@"z : %g", acceleration.z);
delta.y = acceleration.y * 50;
delta.x = acceleration.x * 50;
ball.center = CGPointMake(ball.center.x + delta.x, ball.center.y + delta.y);
// Right
if(ball.center.x < 0) {
ball.center = CGPointMake(320, ball.center.y);
}
// Left
if(ball.center.x > 320) {
ball.center = CGPointMake(0, ball.center.y);
}
// Top
if(ball.center.y < 0) {
ball.center = CGPointMake(ball.center.x, 460);
}
// Bottom
if(ball.center.y > 460){
ball.center = CGPointMake(ball.center.x, 0);
}
[self checkCollision];
}
한 가지 방법 (최선의 방법은 아닐 수도 있음)은 * 위임 * 속성을 * nil *로 설정하는 것입니다. – EmptyStack
내가 원하는 것을 찾을 수 없습니다 – user722566
만약 당신이 남자의 움직임이 허용되는지 여부를 확인하기 위해 플래그 값을 가질 수 있습니다. – EmptyStack