【问题标题】:Splitting touchesMoved across a single SKSpriteNode在单个 SKSpriteNode 上拆分 touchesMoved
【发布时间】:2015-07-08 21:38:32
【问题描述】:

使用 SpriteKit,我创建了一个名为 lightSaber 的 SKSpriteNode,并且使用 touchesMoved 方法,我可以旋转 SKSpriteNode 或向左或向右平移。有没有办法让它取决于我在哪里抓取 SKSpriteNode? (例如刀片或手柄)

【问题讨论】:

    标签: swift sprite-kit touch-event


    【解决方案1】:

    你可以通过

    获得touchEvent的位置
    CGPoint location = [touch locationInNode:self];
    

    这将使您能够将自定义逻辑添加到您触摸屏幕的位置。例如:

    if(location.x > 300) {
       //Do this
    } else {
       //Do that
    }
    

    您也可以将剑分成两部分,即两个节点并命名每个节点并监听两个节点上的触摸事件。

    通过

    获取touchesBegan内的节点
    SKNode *node = [self nodeAtPoint:location];
    if([node.name isEqualToString@"Handle"]) {
    
    } else if ([node.name isEqualToString@"Blade"]) {
    
    }
    

    【讨论】:

    • 但是刀片和手柄并不总是一个在另一个之上,因为触摸刀片会旋转光剑,所以 location.x > 300 不一定有帮助。将它分成两个对象也不是很实用,因为它们总是需要正确接触和定向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多