如何在精灵工具包游戏项目中编写诸如TouchDown和TouchUpInside之类的IBActions

时间:2016-03-18 20:21:19

标签: ios swift sprite-kit game-physics ibaction

我正在尝试使用Swift中的sprite kit游戏模板为iOS开发新游戏。在我之前的应用程序中,它是一个单一视图应用程序(用Objective-C编写),我能够为那些IBActions编写IBActions个相应的方法。这是我在Objective-C单视图应用程序中使用的代码,它运行良好。

降低IBAction

- (IBAction)LeftArrowTapped:(id)sender {
    [self heroMovementTimerMethodLeft];
}

- (IBAction)RightArrowTapped:(id)sender {
    [self heroMovementTimerMethodRight];
}

IBAction内修改,取消了之前触摸释放的方法

- (IBAction)TouchEndedLeft:(id)sender {
    [heroMovementTimerLeft invalidate];
}
- (IBAction)TouchEndedRight:(id)sender {
    [heroMovementTimerRight invalidate];
}

以下是触摸时调用的声明方法

- (void)heroMovementTimerMethodLeft {
   heroMovementTimerLeft =  
   [NSTimerscheduledTimerWithTimeInterval:speedOfhero target:self 
     selector:@selector(heroMovementLeft)userInfo:nil repeats:YES];
}

- (void)heroMovementTimerMethodRight {
    heroMovementTimerRight = [NSTimer 
     scheduledTimerWithTimeInterval:speedOfhero target:self 
     selector:@selector(heroMovementRight)  userInfo:nil repeats:YES];
}

- (void)heroMovementLeft {
    hero.center = CGPointMake(hero.center.x -.5, hero.center.y);
}

- (void)heroMovementRight {
    hero.center = CGPointMake(hero.center.x +.5, hero.center.y);
}

这是我在sprite kit游戏项目中的英雄self.addChild(myLabel)

hero.position = CGPointMake(self.size.width / 2, self.size.height /   
    12)
hero.xScale = 0.5
hero.yScale = 0.5

以下是我试图在sprite kit游戏中调用该动作的方法

func heroMovementLeft () {
heroMovementLeft = CGPointMake(hero.position.x -5 , hero.position.y)
}

然而它无法正常工作,我收到错误消息

我想我必须用触摸调用方法开始触摸结束(如果我错了请说明)功能但我如何格式化时间间隔或NStimer用于为我的英雄编码物理#39;运动。

0 个答案:

没有答案