【问题标题】:very basic animation using CGPointmake and NSSTimer?使用 CGPointmake 和 NSSTimer 的非常基本的动画?
【发布时间】:2014-09-15 04:59:43
【问题描述】:

我在 YouTube 上观看了有关制作 Flappy Bird 克隆的教程。代码使用CGPointMake() 和一个整数变量和一个计时器来在屏幕上上下移动小鸟,但我复制的代码不会导致小鸟移动。

Viewcontroller.h

int BirdFlight;

@interface ViewController : UIViewController{

    IBOutlet UIImageView *Bird;
    IBOutlet UIButton *StartGame;

    NSTimer *BirdMovement;
}

- (IBAction)StartGame:(id)sender;
-(void)BirdMoving;

@end

Viewcontroller.m(所有更改)

@implementation ViewController

-(IBAction)StartGame:(id)sender{
    StartGame.hidden = YES;
    BirdMovement  = [NSTimer timerWithTimeInterval:0.05 target:self
                                          selector:@selector(BirdMoving) userInfo:nil repeats:YES];
}

- (void)BirdMoving {

    Bird.center = CGPointMake(Bird.center.x, Bird.center.y - BirdFlight);
    BirdFlight = BirdFlight - 5;

    if (BirdFlight < -15) {
        BirdFlight = -15;
    }

    if (BirdFlight > 0) {
        Bird.image = [UIImage imageNamed:@"BirdUp.png"];      
    }

    if (BirdFlight < 0) {
        Bird.image = [UIImage imageNamed:@"2.png"];
    }
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {    
    BirdFlight = 30;
}

我不想使用任何其他方法来制作动画我只是想知道如何使代码像视频中那样工作。 (https://www.youtube.com/watch?v=RKG6fsM5JiA)

【问题讨论】:

  • 因为您刚刚开始,所以要习惯使用正确的命名约定。属性、变量和方法名称应以小写字母开头。大写的类名。此外,无需将任何变量、属性或方法签名放在 .h 文件中,除非您想将它们公开给其他类。如果它们是供内部(类)使用的,则将属性和方法名称放在 .m 文件顶部的类扩展名中。

标签: ios objective-c cocoa-touch animation nstimer


【解决方案1】:
[NSTimer timerWithTimeInterval:0.05 target:self
                          selector:@selector(BirdMoving) userInfo:nil repeats:YES];

应该是

[NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(BirdMoving) userInfo:nil repeats:YES];

【讨论】:

  • 哦,谢谢。请告诉我区别。
  • 糟糕,我只是注意到这是一个变量,对此感到抱歉。您尝试了 scheduleTimerWithTimeInterval 并没有用?
  • 你的 StartGame 方法被调用了吗?如果不是,则意味着您可能没有在界面生成器中链接该操作。
  • 不,我注意到了预定的。它工作得很好。我想我在视频中错过了它你能告诉我区别吗
  • 前面的例子只是创建了计时器,但没有告诉它运行。
猜你喜欢
  • 1970-01-01
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多