gpt4 book ai didi

objective-c - 为什么 mouseDragged 位置落后于实际鼠标?

转载 作者:行者123 更新时间:2023-12-04 02:40:57 25 4
gpt4 key购买 nike

我正在尝试制作一个 SpriteKit 游戏,玩家可以在其中拖动 Sprite 组,但我不知道如何让 Sprite 跟随鼠标光标。使用 SpriteKit 样板,我得到了这个:

以下是我如何移动“Hello, world!”的相关逻辑。 SKNode babies

中的 Sprite
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。

最佳答案

NSEvent在SpriteKit中还有一个方法,- (CGPoint)locationInNode:(SKNode *)node。通过使用它,我能够获得与鼠标一起移动 SKNode 的正确偏移值。

关于objective-c - 为什么 mouseDragged 位置落后于实际鼠标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21219182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com