我正在寻找建立游戏关卡的最佳方式:
目前,我正在研究一个小型原型,只是为了学习。
在阅读了很多教程之后,我的想法是使用SKSpriteNode创建x正方形(菱形)。并用标识符识别正方形。
我不知道它在性能方面是否是一个很好的解决方案?他们将在一个级别上有很多正方形。我没有意识到:)
我们是否受限于一个场景中的节点数量?
答案 0 :(得分:1)
我认为没有必要。您还可以使用由方格SKSpriteNode
填充的单个CGPath
背景,如果您想增加难度级别,则可以制作非常快速的游戏。您可以通过处理每个CGPath
来组织游戏的“功能”部分,当您必须更改正方形时,您可以使用代表该正方形的CGPath
创建一个正方形,给它一个例如,使用CGPath
使用SKSpriteNode
并使用此CustomScrollView
来指定一个索引,以便轻松了解它是谁:
P.S。:我已经看到你想要创建一个scrollView,在swift中有一个很好的Spritekit库,名为scrollView = CustomScrollView(frame: CGRect(x: 0, y: 0, width: self.frame.size.width, height: self.frame.size.height), scene: self, moveableNode: moveableNode, scrollDirection: .Vertical)
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width, scrollView.frame.size.height * 3) // makes it 3 times the height
view?.addSubview(scrollView)
here,它很有用,它只是使用:
CGPathContainsPoint(<#T##path: CGPath?##CGPath?#>, <#T##m: UnsafePointer<CGAffineTransform>##UnsafePointer<CGAffineTransform>#>, <#T##point: CGPoint##CGPoint#>, <#T##eoFill: Bool##Bool#>)
更新:关于您的评论,答案是肯定的:当您使用路径时,您使用按点组织的一组元素(请查看此post以了解如何)。
您可以使用原生:
CGPathGetPathBoundingBox(<#T##path: CGPath?##CGPath?#>)
或使用此:
CGRectIntersectsRect(<#T##rect1: CGRect##CGRect#>, <#T##rect2: CGRect##CGRect#>)
使用它:
var radiusMi = parseFloat(obj[8]);
if (typeof radiusMi === 'undefined' || isNaN(radiusMi) || radiusMi == '') {
radiusMi = 2;
}
var radiusMeters = radiusMi * 1609.344;
var currentShape = new google.maps.Circle({
map: map,
radius: radiusMeters,
strokeWeight: 0,
fillColor: '#eb278d',
fillOpacity: 0.25,
center: circleLatLng
});