ios - 使用 block 的 Sprite-kit Action

标签 ios objective-c sprite-kit skaction

我有:

  • 您单击,球就会移动到该位置。

  • 屏幕水平分为上下两部分。

  • 假设球位于下侧,您无法单击下侧来使其移动。您必须单击屏幕的顶部。这会根据上或下翻转。

我要做什么:

  • x 坐标根本不变。

  • 当球击中顶部时,它会改变方向并向下返回

  • 删除 UITouch 位置变量

  • 上下撑杆系统撑杆

    每件事都有帮助,非常感谢你。

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
        /* Called when a touch begins */
        //SKAction *action = [SKAction rotateByAngle:M_PI duration:1];
        //[sprite runAction:[SKAction repeatActionForever:action]];
    
        for (UITouch *touch in touches) {
            location = [touch locationInNode:self];
        }
    
        float ballVelocity = self.frame.size.height/3.0;
        CGPoint moveDifference = CGPointMake(location.x - ball.position.x,location.y - ball.position.y);
        float distanceToMove = sqrtf(moveDifference.x * moveDifference.x +moveDifference.y * moveDifference.y);
        float moveDuration = distanceToMove / ballVelocity;
    
    
        Act_Move = [SKAction moveTo:location duration:moveDuration];
        Act_MoveDone = [SKAction runBlock:^(){
        NSLog(@"stoped");}];
        ActballMoveSeq = [SKAction sequence:@[Act_Move,Act_MoveDone]];
    
    
        if(((location.y>screenSize.height/2)&&(ball.position.y<screenSize.height/2))||((location.y<screenSize.height/2)&&(ball.position.y>screenSize.height/2))){
    
            if(canTap == true){
                [ball runAction:ActballMoveSeq withKey:@"moveBall_seq"];
            }
        }
    }
    

最佳答案

要使球向上移动一定距离并自行下降,请对您的节点使用 applyImpulse。

// modify the dy value (100) to whatever value suits your needs
[myNode.physicsBody applyImpulse:CGVectorMake(0, 100)];

只要你的节点受到重力的影响,它最终就会下降。

关于ios - 使用 block 的 Sprite-kit Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29617331/

相关文章:

ios - 任务恢复它无法正常运行 swift 3

ios - 无法使单元格出队

objective-c - iad 横幅 - 每个应用程序一个实例或每个页面一个实例

ios - 如何获取 nil 的默认值

ios - 如何从 iOS 中的静态库构建框架?

ios - 为什么这不足以添加一个 View 以使用自动布局占据所有屏幕?

swift - 从类根到 init 内部,再到 touchesBegan 内部的作用域?

objective-c - NSArrayController 用于多态类

ios - 离开屏幕后删除节点

ios - 我可以在运行时创建 SpriteKit 纹理图集吗