我有:
您单击,球就会移动到该位置。
屏幕水平分为上下两部分。
假设球位于下侧,您无法单击下侧来使其移动。您必须单击屏幕的顶部。这会根据上或下翻转。
我要做什么:
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/