使用SpriteKit和SWIFT为游戏构build网格级别
我正在寻找构build游戏关卡的最佳方式:
- 游戏将由多个层次组成,每个层次都将是独一无二的。
- 你会播放一个对象(这里是明星),这是在网格上移动。
- 物体只能移动到底部,不能返回。
- 一个级别由多个案例组成,每个案例都会有不同的行为。
- 我的水平将有一个背景,屏幕的宽度,但高度将取决于水平,我想是屏幕的高度的许多倍。
- 背景移动取决于对象的移动
现在,我正在研究一个小原型,只是为了学习。
阅读了许多教程后,我的想法是使用SKSpriteNode创buildx个方块(菱形)。 并用标识符来标识正方形。
我不知道在性能方面是否是一个好的解决scheme? 他们会在一个层面上很多广场。 我不知道:)
我们受限于一个场景中的节点数量吗?
我觉得没有必要 你也可以使用一个由方格CGPath
填充的SKSpriteNode
背景,如果你想增加难度,你可以做一个非常快的游戏。 您可以通过使用每个CGPath
来组织游戏的“function”部分,并且在这种情况下必须更改方块时,可以使用代表该方块的CGPath
创build一个正方形,例如,为其指定一个名称很容易理解它是谁,使用涉及的CGPath
并使用这个SKSpriteNode
来:
- 盖平方米的背景
- 发挥爆炸效果
- 改变一个正方形的颜色,而不是一般的方形颜色
- 等等..
PS:我已经看到你想创build一个scrollView,在这里有一个很好的Spritekit库叫做CustomScrollView
,可以是有用的,只需要使用:
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)
更新 :关于你的评论,答案是肯定的:当你使用一个path工作时,你使用了一组以点为单位的元素(看看这个post了解如何)。
您可以使用本机:
CGPathContainsPoint(<#T##path: CGPath?##CGPath?#>, <#T##m: UnsafePointer<CGAffineTransform>##UnsafePointer<CGAffineTransform>#>, <#T##point: CGPoint##CGPoint#>, <#T##eoFill: Bool##Bool#>)
或者使用这个:
CGPathGetPathBoundingBox(<#T##path: CGPath?##CGPath?#>)
使用它:
CGRectIntersectsRect(<#T##rect1: CGRect##CGRect#>, <#T##rect2: CGRect##CGRect#>)