gpt4 book ai didi

ios - SKScene : find max position of SKSpriteNode

转载 作者:行者123 更新时间:2023-11-29 00:35:14 26 4
gpt4 key购买 nike

我正在为 iPad 和 iOS 10 编写应用程序。我的应用程序仅使用一个 SKScene(大小为 1300 x 1000)。我也使用这样定义的相机:

myCamera=[[SKCameraNode alloc] init];
myCamera.position=CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
self.camera=myCamera;
[self addChild:myCamera];

我使用了许多用户可以拖动的 SKSpriteNode(甚至超出 SKScene 的大小)。

我还用:

[myCamera setScale:newScale];

处理双指缩放。

我需要知道是否有一种方法可以在右侧的 SKScene 中获取距位置 0,0 最远的节点的最大 X 位置,而无需一一读取所有节点位置。然后对其他三个边(上、左、下)执行相同的操作。

最佳答案

保留四个 float minX、minY、maxX、maxY。当用户拖动节点时,检查其位置是否超过最大值或小于最小值。如果是,更新相应的值,例如

编辑使用calculateAccumulatedFrame来获取节点后代的完整范围。

// assuming you have code like this already
skNodeThatIAmDragging.position = currentDragPosition;
CGRect frame = [skNodeThatIAmDragging calculateAccumulatedFrame];

if (self.maxX < frame.origin.x) {
self.maxX = frame.origin.x;
}
if (self.minX > CGRectGetMaxX(frame)) {
self.minX = CGRectGetMaxX(frame);
}
// ... and so on

关于ios - SKScene : find max position of SKSpriteNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40752482/

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