我仍然很新,我想尽可能简单。
这个游戏有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];
}
答案 0 :(得分:0)
如果您还没有关闭自动布局,那就是问题所在。使用自动布局时,您不应设置任何帧。您应该将IBOutlet设置为按钮和屏幕顶部之间的约束,并在代码中修改其常量值以移动按钮。