objective c - SKShapeNode Positioning -



objective c - SKShapeNode Positioning -

i'm poking around spritekit , encountered weirdness i.e i'm adding rectangular skshapenodethat should fullscreen on iphone

override func didmovetoview(view: skview) { allow _box = skshapenode(rectofsize: self.frame.size) _box.strokecolor = skcolor.bluecolor() _box.fillcolor = skcolor.bluecolor() _box.position = cgpointmake(200, 200) _box.name = "box" self.addchild(_box) allow _player = skshapenode(circleofradius: 50) _player.position = cgpoint(x:cgrectgetmidx(self.frame), y:cgrectgetmidy(self.frame)) _player.fillcolor = skcolor.redcolor() _player.strokecolor = skcolor.redcolor() _player.name = "player" _player.physicsbody = skphysicsbody(circleofradius: 50) _player.physicsbody?.dynamic = true _player.physicsbody?.allowsrotation = false self.addchild(_player) allow _ground = skshapenode(rectofsize: cgsizemake(self.frame.width, 20)) _ground.name = "ground" _ground.position = cgpointmake(0, 0) _ground.fillcolor = skcolor.greencolor() _ground.strokecolor = skcolor.greencolor() _ground.physicsbody = skphysicsbody(rectangleofsize: cgsizemake(self.frame.width, 20)) _ground.physicsbody?.dynamic = false self.addchild(_ground) }

my views initialised way override func viewdidload() { super.viewdidload() }

override func viewwilllayoutsubviews() { super.viewwilllayoutsubviews() if allow scene = gamescene.unarchivefromfile("gamescene") as? gamescene { // configure view. allow skview = self.view skview skview.showsfps = true skview.showsnodecount = true /* sprite kit applies additional optimizations improve rendering performance */ skview.ignoressiblingorder = true /* set scale mode scale fit window */ scene.scalemode = .aspectfill skview.presentscene(scene) } }

the resulting scene looks so: screenshot

all nodes shifted left-bottom. left-bottom corner of rectangular shapes out of bounds (i've checked positioning bluish shape (200, 200) instead of (0, 0) - , left-bottome edges still out of screen frame.

anchor point scene set (0, 0) looks me, sets position central point of shape.

what best way define position of left-bottom corner of node, instead of mid-point?

if create shape using bezier path or cgpath, can specify position of "anchor point," path's origin specifies bottom/left corner of path. example,

uibezierpath* bezierpath = [uibezierpath bezierpathwithrect: cgrectmake(0, 0, 50, 50)]; skshapenode *shape = [skshapenode node]; shape.path = bezierpath.cgpath; shape.fillcolor = [skcolor bluecolor];

also, if deployment target ios 8, can create shape node with

skshapenode *shape = [skshapenode shapenodewithrect:cgrectmake(0, 0, 50, 50)]; shape.fillcolor = [skcolor bluecolor];

objective-c swift sprite-kit skspritenode skshapenode

Comments

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -