我正在製作遊戲,並且無法創建D-Pad。當我點擊一個按鈕的時候,它只會運行一次,我不知道我可以調用哪個事件來讓它不斷運行代碼,直到玩家停止觸摸按鈕。當我嘗試使用while循環時,它只是重載本身並阻止您觸摸其他按鈕。這是我通常使用移動播放器的代碼和按鈕的實際負荷和這樣的:不斷髮送來自UIButton的消息
- (void) playerMoveLeft
{
NSArray *images = [NSArray arrayWithObjects:img9,img10,img11,img12,img13,img14,img15,img16, nil];
[imageView setAnimationImages:images];
NSLog(@"Called left");
CGRect myFrame = imageView.frame;
myFrame.origin.x = imageView.frame.origin.x - 5;
imageView.frame = myFrame;
[imageView startAnimating];
[NSTimer scheduledTimerWithTimeInterval:0.6
target:self
selector:@selector(nothingMovingLeft)
userInfo:nil
repeats:NO];
[myTimer invalidate];
myTimer = nil;
}
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
img1 = [UIImage imageNamed:@"walking-e0000.png"];
img2 = [UIImage imageNamed:@"walking-e0001.png"];
img3 = [UIImage imageNamed:@"walking-e0002.png"];
img4 = [UIImage imageNamed:@"walking-e0003.png"];
img5 = [UIImage imageNamed:@"walking-e0004.png"];
img6 = [UIImage imageNamed:@"walking-e0005.png"];
img7 = [UIImage imageNamed:@"walking-e0006.png"];
img8 = [UIImage imageNamed:@"walking-e0007.png"];
img9 = [UIImage imageNamed:@"walking-w0000.png"];
img10 = [UIImage imageNamed:@"walking-w0001.png"];
img11 = [UIImage imageNamed:@"walking-w0002.png"];
img12 = [UIImage imageNamed:@"walking-w0003.png"];
img13 = [UIImage imageNamed:@"walking-w0004.png"];
img14 = [UIImage imageNamed:@"walking-w0005.png"];
img15 = [UIImage imageNamed:@"walking-w0006.png"];
img16 = [UIImage imageNamed:@"walking-w0007.png"];
imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0,180.0,80.0,80.0)];
NSArray *images = [NSArray arrayWithObjects:img7, nil];
[imageView setAnimationImages:images];
[imageView setAnimationRepeatCount:100];
[imageView setAnimationDuration:0.5];
[imageView startAnimating];
[myView addSubview:imageView];
moveRight = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[moveRight addTarget:self action:@selector(playerMoveRight) forControlEvents:UIControlEventTouchUpInside];
[moveRight setTitle:@"->" forState:UIControlStateNormal];
moveRight.frame = CGRectMake(200, 280, 60, 60);
[myView addSubview:moveRight];
//longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(whichWayToMove:)];
//longPress.minimumPressDuration = 0.0;
//[myView addGestureRecognizer:longPress];
moveLeft = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[moveLeft addTarget:self action:@selector(playerMoveLeft) forControlEvents:UIControlEventTouchUpInside];
[moveLeft setTitle:@"<-" forState:UIControlStateNormal];
moveLeft.frame = CGRectMake(30, 280, 60, 60);
[myView addSubview:moveLeft];
NSLog(@"Finished setup");
}