【发布时间】:2014-07-02 17:39:57
【问题描述】:
我想使用一个按钮上下移动我的精灵。由于您不能在 sprite Kit 中使用 UIButtons,所以我使用不同的 SpriteKitNodes。节点将是箭头图像。但我想使用箭头图像来移动我的原始精灵,但只需触摸它。我以为我会使用 SKAction,但我被卡住了。是否可以使用另一个精灵移动一个精灵?
【问题讨论】:
标签: ios xcode sprite-kit
我想使用一个按钮上下移动我的精灵。由于您不能在 sprite Kit 中使用 UIButtons,所以我使用不同的 SpriteKitNodes。节点将是箭头图像。但我想使用箭头图像来移动我的原始精灵,但只需触摸它。我以为我会使用 SKAction,但我被卡住了。是否可以使用另一个精灵移动一个精灵?
【问题讨论】:
标签: ios xcode sprite-kit
SpriteKit 中可能没有为按钮提供任何规定,但可以轻松地将 SKSpriteNode 子类化以充当按钮。我创建了这样一个类,可以在 GitHub here 上找到。
不建议使用SKAction 进行基于方向按钮的移动。相反,您需要为方向按钮使用标志,您将在 -update: 方法中移动节点。
将标志作为实例变量进行维护。
@implementation MyScene
{
BOOL upDirection;
BOOL downDirection;
}
在 -initWithSize: 方法中将它们初始化为 FALSE。
这就是你应该如何处理 -update 方法中的标志:
-(void)update:(CFTimeInterval)currentTime
{
/* Called before each frame is rendered */
if (upDirection)
{
myNode.position = CGPointMake(myNode.position.x, myNode.position.y + 5); //Increment value can be adjusted
}
if (downDirection)
{
myNode.position = CGPointMake(myNode.position.x, myNode.position.y - 5); //Decrement value can be adjusted
}
}
【讨论】: