【发布时间】:2014-01-19 16:08:52
【问题描述】:
我正在尝试制作一个 SpriteKit 游戏,玩家可以在其中拖动一组精灵,但我不知道如何让精灵跟随鼠标光标。使用 SpriteKit 样板,我得到了这个:
这是我如何移动“Hello, world!”的相关逻辑SKNode中的精灵babies
SKNode *babies;
-(void)mouseDown:(NSEvent *)theEvent {
dragStart = [theEvent locationInWindow];
babiesStart = babies.position;
}
-(void)mouseDragged:(NSEvent *)theEvent {
CGPoint translation = CGPointMake([theEvent locationInWindow].x - dragStart.x,
[theEvent locationInWindow].y - dragStart.y);
float adjust = 1.0;
babies.position = CGPointMake(babiesStart.x + translation.x * adjust,
babiesStart.y + translation.y * adjust);
}
我尝试了许多不同的方法,例如theEvent 上的 deltaX 和 Y,但我得到了相同的结果。我发现的唯一解决方案是使用 adjust 变量,但这显然是一个 hack。
【问题讨论】:
-
您的场景是 3D 的吗?这可能是由于透视?
-
据我所知,这是一个 2D 场景。我的其余代码是 Xcode 在您创建新的 SceneKit 项目时为您提供的。
-
当我看到一个 SceneKit 问题时我感到非常兴奋,但在阅读之后我很确定 OP 正在谈论 SpriteKit(SKNode 它是 SpriteKit 的一部分,而 SCNNode 是 SceneKit 的一部分,OP 还提到制作游戏)
-
你指的是什么 SpriteKit 样板?请提供一个链接,以便我们查看您发布的代码的上下文。
标签: objective-c macos sprite-kit