我有一个 CGMuatbleCGPathRef,我正在尝试创建一个路径引用来移动我的外星人。我现在保持简单,但以后会很复杂。
我有下面的代码可以将 SpriteNode 移动到一点,但他从来没有移动过。有人可以指出我做错了什么吗?我有一个动画 Action 在他身上运行,也有重复 Action 。
首先调用启动动画纹理帧的方法(有效)
-(void)walkingBear
{
//This is our general runAction method to make our bear walk.
[spaceMosquito runAction:[SKAction repeatActionForever:
[SKAction animateWithTextures:moqFrames
timePerFrame:0.4f
resize:NO
restore:YES]] withKey:@"walkingInPlaceBear"];
return;
}
移动外星人的 Action
-(void) normalStance {
CGMutablePathRef cgpath = CGPathCreateMutable();
CGPoint endPos = CGPointMake(300, 600);
CGPoint startPos = CGPointMake(700, 900);
CGPathMoveToPoint(cgpath, nil, startPos.x, startPos.y);
CGPathMoveToPoint(cgpath, nil, endPos.x, endPos.y);
[spaceMosquito runAction:[SKAction followPath:cgpath duration:5.0f ] withKey:@"moveme"];
CGPathRelease(cgpath);
最佳答案
您没有在代码中创建路径!您只是将路径的起点从起点移动到终点,但没有创建路径。
用CGPathAddLineToPoint替换第二次调用CGPathMoveToPoint 这将创建一条您的 Sprite 可以遵循的直线路径。
关于ios - 遵循 SKAction 的路径不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20545839/