美文网首页
打飞机02-飞机的拖动手势

打飞机02-飞机的拖动手势

作者: H小凡 | 来源:发表于2017-06-10 14:59 被阅读143次
拖动.gif

给飞机添加一个拖动的手势

1.创建一个手势pan,添加与之关联的动作panAction
2.添加手势pan到view

-(void)didMoveToView:(SKView *)view {

self.size = self.view.frame.size;

[self backgroundNode];
[self planeNode];

//创建一个手势与panAction关联
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panAction:)];

//添加手势到view
[self.view addGestureRecognizer:pan];

}

一、首先判断手指按下的是否是飞机

//这里需要设置一个全局变量
bool isPlane;

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    isPlane = NO;
    //获取手指按下的位置
    UITouch *touch = [touches anyObject];
    CGPoint  position = [touch locationInNode:self];

    //获取当前位置的精灵(如果有)
    SKNode *node = [self nodeAtPoint:position];

    //判断当前位置的精灵的name是否为plane
    if ([node.name isEqualToString:@"plane"]) {

        //全局变量isPlane设为YES;
        isPlane = YES;

    }

}

二、编写手势对应的动作

-(void)panAction:(UIGestureRecognizer *)sender {

    //判断isPlane是否为YES
    if (isPlane) {

        //获取plane精灵
        SKSpriteNode *plane = (SKSpriteNode *)[self childNodeWithName:@"plane"];

        //因为手势是添加到view上面的,获取传递进来view上面的手指拖动的坐标
        CGPoint position = [sender locationInView:sender.view];

        //view坐标(原点是左上角)和SpriteKit坐标(原点是左下角)之间的转换,x轴相同,y轴为与屏幕的height的差值
        position = CGPointMake(position.x, self.size.height -position.y);
        
        //根据手指位置改变plane位置
        plane.position = position;
    }
    
}

相关文章

  • 打飞机02-飞机的拖动手势

    给飞机添加一个拖动的手势 1.创建一个手势pan,添加与之关联的动作panAction2.添加手势pan到view...

  • 只要一根小黄瓜,立马忘了那个他!为啥女人也要打飞机呢?

    男人打飞机就算了,怎么女人也打飞机?别急别急,让我们来研究一下这个问题。 一、女人为什么也要打飞机? 其实很好理解...

  • 打飞机

    这是一个和平的年代,没有战争。但是总有人闲得蛋疼,制造了一种游戏,打飞机。 打飞机就打吧,可是这个打飞机是会死人的...

  • 打飞机

    -- coding: utf-8 -- @Time : 2018/8/4 10:11 @Author :Hcy @...

  • 打飞机

    终身学习,终身创业88年的李小白 这是我每天写一篇文章的第44篇。 微信红包的发布 微信的5.0版本,对微信来说有...

  • 打飞机

    从小就没有父亲的安德烈在自己16岁的那天终于从母亲那里得到了一份属于父亲留给自己的遗产,那是一封有些泛黄的信件。 ...

  • 打飞机

    这两个月以来,身体非常不好,因为失恋,考试,学习,也快速下降,晚上不睡觉,

  • 怪物许树

    (一)许树是我博士时的室友,我们规定一三五他用卫生间打飞机,二四六我用卫生间打飞机,周日公休,谁打飞机用石头给砸死...

  • 17/12/23 还不睡吗

    今晚现在1点5分了 12点多打飞机了 现在睡觉 晚睡 和打飞机 打飞机不管了 先解决 晚睡吧 明天晚12点20之前...

  • iOS事件文集目录

    IOSEvents介绍 UIResponder UIEvent UITouch 手势点按手势拖动手势旋转手势捏合手...

网友评论

      本文标题:打飞机02-飞机的拖动手势

      本文链接:https://www.haomeiwen.com/subject/ssoqqxtx.html