您的位置:首页 > 移动开发 > IOS开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: