int似乎正在重置简单游戏中的下降按钮

时间:2014-11-14 00:25:35

标签: ios uibutton int nstimer

我仍然很新,我想尽可能简单。

这个游戏有2个星形(按钮)使用nstimer和cgpointmake从屏幕顶部落到底部。如果你单击一个astroid,屏幕上会有一个标签,为你的分数增加一个点,而astroid会重新回到顶部再次下降。

我遇到的问题是,如果我点击一个astroid他们都会同时重置并重置?

我把它缩小到我认为问题是它与int有关,每次点击astroid时更新得分标签

任何帮助都会非常有帮助,我已经在互联网上寻找任何帮助。谢谢

  • 整数是点

  • 第一个astroid按钮是astroid1

  • 第二个astroid按钮是astroid2

  • nstimer是astroidsfall

这是视图controller.h

#import <UIKit/UIKit.h>

int point;

@interface ViewController : UIViewController  {

IBOutlet UIButton *astroid1;
IBOutlet UIButton *astroid2;
IBOutlet UILabel *pointlabel;

NSTimer *astroidsfall;

}

-(IBAction)astroidone:(id)sender;
-(IBAction)astroidtwo:(id)sender;
-(IBAction)start:(id)sender;


@end

这里是viewcontroller.m

@implementation ViewController

-(IBAction)start:(id)sender {
    astroidsfall = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self   selector:@selector(astroidphysics) userInfo:nil repeats:YES];
}

-(void)astroidphysics {
    astroid1.center = CGPointMake(astroid1.center.x, astroid1.center.y + 1);
    astroid2.center = CGPointMake(astroid2.center.x, astroid2.center.y + 1);
}

-(IBAction)astroidone:(id)sender {
    astroid1.center = CGPointMake(astroid1.center.x, astroid1.center.y - 300);

    point += 1;
    pointlabel.text = [NSString stringWithFormat:@"%i", point];
}

1 个答案:

答案 0 :(得分:0)

如果您还没有关闭自动布局,那就是问题所在。使用自动布局时,您不应设置任何帧。您应该将IBOutlet设置为按钮和屏幕顶部之间的约束,并在代码中修改其常量值以移动按钮。