使用块的Sprite-kit动作

问题描述 投票:2回答:1

是)我有的:

  • 您单击并将球移动到该位置。
  • 屏幕在上下之间水平分割。
  • 假设球在下方,你不能点击下方让它移动。您必须单击屏幕的顶部。关于上部或下部,这翻转。

我想要的是:

  • 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"]; } } }
ios objective-c sprite-kit skaction
1个回答
2
投票

为了使球向上移动一定距离并自行返回,请在节点上使用applyImpulse。

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

只要您的节点受到重力的影响,它最终会回落。

© www.soinside.com 2019 - 2024. All rights reserved.