<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了iOS實現拼圖小遊戲的具體程式碼,供大家參考,具體內容如下
首先找到這8張圖片,還需要一張空白的圖片,自己隨便剪一張吧。
定義三個屬性:button可變陣列,圖片可變陣列,正確順序的圖片陣列。
@property(retain, nonatomic)NSMutableArray *buttonArray; @property(retain, nonatomic)NSMutableArray *a; @property(retain, nonatomic)NSArray *aa;
鋪好拼圖介面
//圖片陣列a,用來儲存每個圖片名稱,並且用於後來的打亂 self.a = [NSMutableArray arrayWithObjects:@"1.jpg",@"2.jpg",@"3.jpg",@"4.jpg",@"5.jpg",@"6.jpg",@"7.jpg",@"8.jpg",@"9.jpg", nil]; //備份一個正確順序的圖片陣列,用於判斷遊戲是否過關 self.aa = [NSArray arrayWithArray:self.a]; //重新開始按鈕 UIButton *star = [[UIButton alloc] initWithFrame:CGRectMake(120, 400, 100, 40)]; [star setTitle:@"重新開始" forState:UIControlStateNormal]; [star setTitleColor:[UIColor blueColor] forState:UIControlStateNormal]; star.layer.cornerRadius = 6.6f; star.layer.backgroundColor = [[UIColor colorWithRed:0.922 green:0.925 blue:0.929 alpha:1]CGColor]; //新增點選事件 [star addTarget:self action:@selector(kaishi) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:star]; [star release]; //鋪出9個button self.buttonArray = [NSMutableArray array]; NSInteger count = 0; NSInteger wight = 351 / 3; NSInteger higth = 351 / 3; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(j * (wight+2) + 10, i * (higth + 2) + 20, wight, higth)]; button.backgroundColor = [UIColor blackColor]; //給每個button上圖片 [button setImage:[UIImage imageNamed:self.a[count]] forState:UIControlStateNormal]; [self.view addSubview:button]; //給每個button新增點選事件 [button addTarget:self action:@selector(change:) forControlEvents:UIControlEventTouchUpInside]; //把button放入陣列 [self.buttonArray addObject:button]; button.tag = count; [button release]; count++; } }
實現button的點選事件
- (void)change:(UIButton *)sender{ NSInteger flag = 0; int p = 0; //「9.jpg」是空白的那個,打亂後,得在圖片陣列裡找到所在下標,用flag存在來 for (NSInteger i = 0; i < 9; i++) { if ([self.a[i] isEqualToString:@"9.jpg"]) { flag = i; } } //如果所點選的button的上下左右其中有一個是空白圖片的話,就跟空白圖片交換在圖片陣列的位置 if (sender.tag - flag == 3 || sender.tag - flag == -3 || sender.tag - flag == 1 || sender.tag - flag == -1) { [self.a exchangeObjectAtIndex:flag withObjectAtIndex:sender.tag]; } //重新給每個button上圖片 for (int i = 0; i < 9; i++) { [self.buttonArray[i] setImage:[UIImage imageNamed:self.a[i]] forState:UIControlStateNormal]; } //判斷是否拼圖成功,每對應了一張圖片p就加一,如果p最後等於9說明遊戲通關 for (int i = 0; i < 9 ; i++) { if ([self.a[i] isEqualToString:self.aa[i]]) { p++; }else{ break; } } if (p == 9) { NSLog(@"%d",p); UIAlertView *a = [[UIAlertView alloc] initWithTitle:@"恭喜!" message:@"已通關" delegate:self cancelButtonTitle:@"確定" otherButtonTitles:nil]; [a show]; [a release]; } }
打亂所有圖片
- (void)kaishi{ //產生0到8兩個亂數,通過下標交換圖片陣列中的兩張圖片 for (int i = 0; i < 10; i++) { [self.a exchangeObjectAtIndex:(arc4random() % 9) withObjectAtIndex:(arc4random() % 9)]; } //給每個button上圖片 for (int i = 0; i < 9; i++) { [self.buttonArray[i] setImage:[UIImage imageNamed:self.a[i]] forState:UIControlStateNormal]; } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45