java飞机大战线程的作用_简单的飞机大战-(线程学习)

飞机大战-(线程学习)

94cb9a7380d6f79427de88394c5c55c9.png

0a92fa69277b61860ed8e4ba693fb9d2.png

a8e5426b50aab6de7c5f89276661c529.png

//

// ViewController.m

// fly_boow

//

// Created by 郭瞾阳 on 14-7-31.

// Copyright (c) 2014年 gzy. All rights reserved.

//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

UIImage * fly_0;

UIImage * fly_1;

UIImage * fly_2;

UIImage * fly_3;

UIImage * boow;

CALayer * bg_1;

CALayer * bg_2;

CALayer * efly;

CATextLayer * socrelayer;

UIImage * zidan;

NSTimer * timer;

NSMutableArray * difly;

NSMutableArray * fly_dan;

NSInteger intx;

NSInteger inty;

NSInteger score;

NSInteger sum;

- (void)viewDidLoad

{

[super viewDidLoad];

CGRect rect = [[UIScreen mainScreen]bounds];

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(reback:) name:UIApplicationDidEnterBackgroundNotification object:[UIApplication sharedApplication] ];

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(rego:) name:UIApplicationWillEnterForegroundNotification object:[UIApplication sharedApplication] ];

intx = rect.size.width;

inty = rect.size.height;

fly_0 = [UIImage imageNamed:@"fly_0.png"];

fly_1 = [UIImage imageNamed:@"fly_1.png"];

fly_2 = [UIImage imageNamed:@"fly_2.png"];

fly_3 = [UIImage imageNamed:@"fly_3.png"];

difly = [[NSMutableArray alloc]init];

fly_dan = [[NSMutableArray alloc]init];

efly = [CALayer layer];

efly.frame = CGRectMake((intx-56)/2, inty-60, 60, 60);

[self.view.layer addSublayer:efly];

socrelayer = [CATextLayer layer];

socrelayer.frame = CGRectMake(10, 15, 120, 30);

socrelayer.fontSize = 16;

socrelayer.foregroundColor = (__bridge CGColorRef)([UIColor blackColor]);

NSNumber * socre_1;

if((socre_1 = [[NSUserDefaults standardUserDefaults] objectForKey:@"score"]))

{

score = socre_1.integerValue;

}

socrelayer.string =[NSString stringWithFormat:@"我已打%d次飞机了,好厉害",score];

[self.view.layer addSublayer:socrelayer];

timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(move) userInfo:nil repeats:YES];

}

-(void)move

{

efly.contents = (id)[fly_0 CGImage];

for(int i = 0;i

{

CALayer * bullt = [fly_dan objectAtIndex:i];

bullt.frame = CGRectOffset(bullt.frame,0 ,-15);

CALayer * bullt_1 = [fly_dan objectAtIndex:i+1];

bullt_1.frame = CGRectOffset(bullt_1.frame, -7.5,-7.5 );

CALayer * bullt_2 = [fly_dan objectAtIndex:i+2];

bullt_2.frame = CGRectOffset(bullt_2.frame, +7.5,-7.5 );

if(bullt.position.y

{

[bullt removeFromSuperlayer];

[bullt_1 removeFromSuperlayer];

[bullt_2 removeFromSuperlayer];

[fly_dan removeObject:bullt];

[fly_dan removeObject:bullt_1];

[fly_dan removeObject:bullt_2];

}

}

for(int i = 0;i

{

CALayer * fly = [difly objectAtIndex:i];

fly.frame = CGRectOffset(fly.frame,0 ,15);

if(fly.position.y>inty+50)

{

[fly removeFromSuperlayer];

[difly removeObject:fly];

}

}

for(int i = 0;i

{

CALayer * bullt = [fly_dan objectAtIndex:i];

CGPoint bullt_position = bullt.position;

for(int j = 0;j

{

CALayer * diji = [difly objectAtIndex:j];

if(fabs(efly.position.x-diji.position.x)<20&&fabs(efly.position.y-diji.position.y)<20)

{

[efly removeFromSuperlayer];

[diji removeFromSuperlayer];

[difly removeObject:diji];

UIAlertView * nima = [[UIAlertView alloc]initWithTitle:@"打飞机" message:[NSString stringWithFormat:@"你已打%d次飞机了,好厉害",score] delegate:self cancelButtonTitle:@"不打了,太累了" otherButtonTitles:@"继续打飞机", nil ];

score = 0;

[timer invalidate];

CALayer * boow = [CALayer layer];

boow.frame = CGRectMake(diji.position.x-40, diji.position.y-20, 70, 70);

boow.contents = (id)[[UIImage imageNamed:@"boow.png"] CGImage];

[self.view.layer addSublayer:boow];

[nima show];

}

if(CGRectContainsPoint(diji.frame, bullt_position))

{

CALayer * boow = [CALayer layer];

boow.frame = CGRectMake(diji.position.x-40, diji.position.y-20, 70, 70);

boow.contents = (id)[[UIImage imageNamed:@"boow.png"] CGImage];

[self.view.layer addSublayer:boow];

[self performSelector:@selector(hehe:) withObject:boow afterDelay:0.6];

[bullt removeFromSuperlayer];

//[fly_dan removeObject:bullt];

[diji removeFromSuperlayer];

[difly removeObject:diji];

score+=1;

socrelayer.string = [NSString stringWithFormat:@"我已打%d次飞机了,好厉害",score]; break;

}

}

}

sum++;

if(sum%5 == 0)

{

CALayer *zidan = [CALayer layer];

CALayer *zidan_2 = [CALayer layer];

CALayer *zidan_3 = [CALayer layer];

zidan.frame = CGRectMake(efly.position.x-12,efly.position.y-50 ,20 ,20 );

zidan.contents = (id)[[UIImage imageNamed:@"zidan.png"]CGImage];

zidan_2.frame = CGRectMake(efly.position.x-12,efly.position.y-50 ,20 ,20 );

zidan_2.contents = (id)[[UIImage imageNamed:@"zidan.png"]CGImage];

zidan_3.frame = CGRectMake(efly.position.x-12,efly.position.y-50 ,20 ,20 );

zidan_3.contents = (id)[[UIImage imageNamed:@"zidan.png"]CGImage];

[self.view.layer addSublayer:zidan];

[self.view.layer addSublayer:zidan_2];

[self.view.layer addSublayer:zidan_3];

[fly_dan addObject:zidan];

[fly_dan addObject:zidan_2];

[fly_dan addObject:zidan_3];

}

if(sum%10 == 0)

{

// int x = random()%3;

int x = arc4random()%3;

int wx = arc4random()%(intx-50);

CALayer * feiji =[CALayer layer] ;

feiji.frame = CGRectMake(wx,0,60,60);

switch(x)

{

case 0:

feiji.contents = (id)[fly_1 CGImage];

break;

case 1:

feiji.contents = (id)[fly_2 CGImage];

break;

case 2:

feiji.contents = (id)[fly_3 CGImage];

break;

}

[self.view.layer addSublayer:feiji];

[difly addObject:feiji];

}

}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

{

UITouch * touch = [touches anyObject];

CGPoint touchid = [touch locationInView:self.view];

if(touchid.y

efly.position = CGPointMake(touchid.x,touchid.y);

}

-(void)hehe:(CALayer*) nima

{

[nima removeFromSuperlayer];

}

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex: (NSInteger)buttonIndex

{

if(buttonIndex == 0)

{

}

if(buttonIndex == 1)

{

efly.frame = CGRectMake((intx-50)/2, inty-50, 60, 60);

efly.contents = (id)[UIImage imageNamed:@"fly_0.png"];

[self.view.layer addSublayer:efly];

socrelayer.string = [NSString stringWithFormat:@"我已打%d次飞机了,好厉害",score];

timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(move) userInfo:nil repeats:YES];

}

}

-(void)reback:(NSNotification*)nima

{

efly.contents = nil;

[[NSUserDefaults standardUserDefaults] setInteger:score forKey:@"score"];

}

-(void)rego:(NSNotification*)niam

{

efly.contents = (id)[[UIImage imageNamed:@"fly_0.png"] CGImage];

NSNumber * nb;

if((nb = [[NSUserDefaults standardUserDefaults]objectForKey:@"score"]))

{

score = nb.integerValue;

}

}

- (void)didReceiveMemoryWarning

{

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值