Objective c 随时间间隔更改NSImageView
我想做一个简单的掷骰子游戏。 在过去的一年里,我已经做了大量的C编程,并且正在尝试转换成GUI和Obj C。 我的窗口里有一个按钮和两个图像单元。图像被视为输出(染料,染料2),按钮保持动作(滚筒) 我的目标是让用户单击按钮,然后让图像单元格显示一些图像,然后在重复图像更改后保留特定的图像,比如说,三次。 这是我的骰子对象和我的应用程序代理文件: 谢谢Objective c 随时间间隔更改NSImageView,objective-c,cocoa,nsimageview,Objective C,Cocoa,Nsimageview,我想做一个简单的掷骰子游戏。 在过去的一年里,我已经做了大量的C编程,并且正在尝试转换成GUI和Obj C。 我的窗口里有一个按钮和两个图像单元。图像被视为输出(染料,染料2),按钮保持动作(滚筒) 我的目标是让用户单击按钮,然后让图像单元格显示一些图像,然后在重复图像更改后保留特定的图像,比如说,三次。 这是我的骰子对象和我的应用程序代理文件: 谢谢 @implementation Dice -(NSImage *) dicecreator { int x; x = rand() % 6 +
@implementation Dice
-(NSImage *) dicecreator {
int x;
x = rand() % 6 + 1;
switch(x){
case 1:
_side = [NSImage imageNamed: @"firstside.jpg"];
break;
case 2:
_side = [NSImage imageNamed: @"secondside.jpg"];
break;
case 3:
_side = [NSImage imageNamed: @"thirdside.jpg"];
break;
case 4:
_side = [NSImage imageNamed: @"fourthside.jpg"];
break;
case 5:
_side = [NSImage imageNamed: @"fifthside.jpg"];
break;
case 6:
_side = [NSImage imageNamed: @"sixthside.jpg"];
break;
default:
return 0;
}
return _side;
}
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
}
- (IBAction)roller:(id)sender {
Dice *rollView = [[Dice alloc]init];
[self.dye setImage:rollView.dicecreator];
[self.dye2 setImage: rollView.dicecreator];
[self performSelector:@selector(dye) withObject:rollView.dicecreator afterDelay:0.5];
[self performSelector:@selector(dye2) withObject:rollView.dicecreator afterDelay:0.5];
[self performSelector:@selector(dye) withObject:rollView.dicecreator afterDelay:0.5];
[self performSelector:@selector(dye2) withObject:rollView.dicecreator afterDelay:0.5];
[self performSelector:@selector(dye) withObject:rollView.dicecreator afterDelay:0.5];
[self performSelector:@selector(dye2) withObject:rollView.dicecreator afterDelay:0.5];
}
@end
你的问题是什么 现在我可以看到,在调用roller方法大约0.5秒后,将调用所有选择器-您可能应该选择递增值,如0.5、1、1.5 另外,我建议改用NSTimer类: 编辑: 在再次阅读您的问题后,我认为您误解了选择器是什么-您应该在其中添加这样一个方法:
-(void) assignImage1:(NSImage*)image {
[self.dye setImage:image];
}
-(void) assignImage2:(NSImage*)image {
[self.dye2 setImage:image];
}
...
[self performSelector:@selector(assignImage1:) withObject:[rollView dicecreator] afterDelay:0.5];
还要注意,在objective-C中,您调用对象的函数,如:
[rollView dicecreator]
那真是太美了。正是我要找的!谢谢