iOS简单项目Demo-----贪吃蛇
2015-08-20 14:56
549 查看
直接代码
@interface ViewController ()@property(nonatomic,strong)NSMutableArray *array;
@property(nonatomic,strong)NSMutableArray *viewArr;
@property(nonatomic, strong)UIView *vie;
@property(nonatomic)CGPoint upCenter;
@property(nonatomic,strong)NSTimer *timer;
@property(nonatomic, assign)int moveX;
@property(nonatomic, assign)int moveY;
@end
@implementation ViewController
- (IBAction)clicked:(UIButton *)sender {
switch (sender.tag) { case 0://上 { self.moveX=0; self.moveY=-30; } break; case 1://下 { self.moveX=0; self.moveY=30; } break; case 2://左 { self.moveX=-30; self.moveY=0; } break; case 3://右 { self.moveX=30; self.moveY=0; } break; }
}
//让贪吃蛇动起来
-(void)move
{ // 开始的时候不让移动
if (self.moveY==0&&self.moveX==0) {
return;
}
// 动一次检查一次
[self pengzhang];
//移动 for (int i =0 ; i<self.array.count; i++) { UIView *view = self.array[i]; CGPoint oldCenter = view.center; if (i==0) { //是头 让头先走 CGPoint newCenter = CGPointMake(oldCenter.x+self.moveX , oldCenter.y+self.moveY); //判断是否移除了边界 if (newCenter.x<0) {//左边界 newCenter = CGPointMake(newCenter.x+320, newCenter.y); }else if (newCenter.x>320) {//右边界 newCenter = CGPointMake(newCenter.x-320, newCenter.y); }else if (newCenter.y<0) {//上边界 newCenter = CGPointMake(newCenter.x, newCenter.y+556); }else if (newCenter.y>556) {//左边界 newCenter = CGPointMake(newCenter.x, newCenter.y-556); } view.center = newCenter; }else{ view.center = self.upCenter; } self.upCenter = oldCenter; }
}
(void)viewDidLoad {
[super viewDidLoad];
self.moveX=0;
self.moveY=0;
self.array=[NSMutableArray array];
self.viewArr=[NSMutableArray array];
//初始化贪吃蛇
for (int i = 0; i<3; i++) {
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(i*30, 120, 30, 30)];
view.backgroundColor=[UIColor blueColor];
[self.view addSubview:view];
[self.array insertObject:view atIndex:0];
}
//让蛇动起来
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(move) userInfo:nil repeats:YES];
}
//判断碰撞 和判断是否有可吃的view
-(void)pengzhang{
//如果视图上没有可吃的view 那么就创建一个
if (self.viewArr.count==0) {
UIView *v = [[UIView alloc]initWithFrame:CGRectMake(arc4random()%10*30, arc4random()%10*30, 30, 30)];
v.backgroundColor=[UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1.0];
[self.viewArr addObject:v];
[self.view addSubview:v];
} //判断碰撞 UIView *view=self.array[0]; CGPoint p =CGPointMake(view.center.x+self.moveX, view.center.y+self.moveY); UIView *v=self.viewArr[0]; if (CGRectContainsPoint(v.frame, p)) { [self.array insertObject:v atIndex:0]; [self.viewArr removeAllObjects]; [self.vie removeFromSuperview]; for (UIView *vi in self.array) { [self.view addSubview:vi]; } }
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
相关文章推荐
- IOS开发页面间的传值 (代理和通知)
- 获取ios系统的电池电量比例,是否充电中,是否充满
- iOS 通知中心
- 获取ios系统的deviceModel, deviceName, systemName, systemVersion
- 如何获得ios系统持续运行时间
- ios客户端websocket的helloworld
- Quartz2d从易到难全解析---绘制圆弧、圆、图片和文字
- self和下划线的用法区别
- iOS页面跳转及数据传递
- IOS 用keychain(钥匙串)保存用户名和密码
- IOS屏幕旋转
- ios应用数据存储方式
- iOS学习笔记12-m3u8文件信息总结
- #import <frameFile/classFile.h> not found file 解决办法
- iOS 动画效果
- iOS申请真机调试证书-图文详解
- [ios]ScrollView小结
- 研究IOS毛玻璃的效果
- ios,android使用HTML5开发问题汇总
- ios storyboadr(sizeClass)开发常用技巧及错误