如果你读到这个:
不要做我做的事,使用UICollectionView
一位朋友制作了一部图形小说,基本上是一幅很长的连续画。在书本形式中,它以页面分隔,但他问我是否可以将其制作成应用程序。 并不是说我是一个天才的iOS开发者,但我的脚有点潮湿。
所以我的基本想法是制作一个侧面滚动"游戏"只有一个背景。这样就可以在需要时加载幻灯片,保存阅读位置,....
由于我是新手,我知道没有目标c(只是迅速)我无法弄清楚如何制作可滚动的场景。
Apple在目标c中有一些示例代码,用于解释世界/相机/场景设置。但这不完整。
我需要的是一种将背景向左和向右拖动的方法。任何有关这方面的帮助都会非常棒!
更新2这有效! ......问题是,它不会滚动,只是将世界移动到触摸点。任何帮助仍然会很棒!:
import SpriteKit
class CameraScene : SKScene {
// Flag indicating whether we've setup the camera system yet.
var isCreated: Bool = false
// The root node of your game world. Attach game entities
// (player, enemies, &c.) to here.
var world: SKNode?
// The root node of our UI. Attach control buttons & state
// indicators here.
var overlay: SKNode?
// The camera. Move this node to change what parts of the world are visible.
var camera: SKNode?
var location = CGPoint(x: 0, y: 0)
override func didMoveToView(view: SKView) {
if !isCreated {
isCreated = true
// Camera setup
self.anchorPoint = CGPoint(x: 0.5, y: 0.5)
self.camera = SKNode()
self.camera?.name = "world"
addChild(self.camera!)
self.world = SKNode()
self.world?.name = "camera"
self.camera?.addChild(self.world!)
self.world?.addChild(SKSpriteNode (imageNamed: "bg_1"))
// UI setup
self.overlay = SKNode()
self.overlay?.zPosition = 10
self.overlay?.name = "overlay"
addChild(self.overlay!)
}
}
func moveWorld () {
world?.position = CGPointMake((location.x), 0)
}
override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
var touch : UITouch! = touches.anyObject() as UITouch
location = touch.locationInView(self.view)
moveWorld()
}
答案 0 :(得分:2)
无需发明轮子(特别是如果您不熟悉平台!)
设置UICollectionView并允许它水平滚动。使数据源返回作为书页的图像名称。你(差不多)完成了!
这似乎解释了类似的东西(尽管在目标C中): http://devblog.orgsync.com/2013/04/26/creating_scrolling_filmstrip_within_uitableview/