{"id":2040,"date":"2013-10-28T23:44:30","date_gmt":"2013-10-28T14:44:30","guid":{"rendered":"http:\/\/lepetit-prince.net\/ios\/?p=2040"},"modified":"2013-10-28T23:44:30","modified_gmt":"2013-10-28T14:44:30","slug":"%e3%81%bc%e3%82%88%e3%82%88%e3%82%93%e3%83%9c%e3%83%bc%e3%83%ab","status":"publish","type":"post","link":"https:\/\/lepetit-prince.net\/ios\/?p=2040","title":{"rendered":"\u307c\u3088\u3088\u3093\u30dc\u30fc\u30eb"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"iPhone\u307c\u3088\u3088\u3093\u30dc\u30fc\u30eb\" src=\"https:\/\/lh5.googleusercontent.com\/-5M1UopTH87A\/Um53oQKJUtI\/AAAAAAAABNQ\/iqNyTqTvzwE\/s288\/Screen%2520Shot%25202013-10-28%2520at%252011.41.04%2520PM.png\" title=\"iPhone\u307c\u3088\u3088\u3093\u30dc\u30fc\u30eb\" class=\"alignnone\" width=\"288\" height=\"196\" \/><\/p>\n<p><\/p>\n<p>\nSpriteKit\u306ejoint\u3092\u4f7f\u3063\u3066\u3001\u307c\u3088\u3093\u307c\u3088\u3093\u30dc\u30fc\u30eb\u3092\u8df3\u306d\u3055\u305b\u308biPhone\u30a2\u30d7\u30ea\u3092\u63cf\u3044\u3066\u307f\u307e\u3059\u3002\n<\/p>\n<p><!--more--><br \/>\n<\/p>\n<p>\n\u52d5\u4f5c\u30a4\u30e1\u30fc\u30b8<br \/>\nXcode\u304b\u3089iOS7 iPhone Simulator\u3067\u52d5\u304b\u3059\u3068\u3053\u3093\u306a\u611f\u3058\u306b\u306a\u308a\u307e\u3059\u3002\n<\/p>\n<p>\n<iframe loading=\"lazy\" title=\"Today&#039;s iOS sample no.314 - jump ball\" width=\"620\" height=\"465\" src=\"https:\/\/www.youtube.com\/embed\/PKZ_TBIBWxo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>\n\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\n<\/p>\n<p><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #d12f1b\"><span style=\"color: #78492a\">#import <\/span>&#8220;ViewController.h&#8221;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #d12f1b\"><span style=\"color: #78492a\">#import <\/span>&lt;SpriteKit\/SpriteKit.h&gt;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span style=\"color: #bb2ca2\">@interface<\/span> BigBall : <span style=\"color: #703daa\">SKScene<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span style=\"color: #bb2ca2\">@property<\/span> <span style=\"color: #bb2ca2\">BOOL<\/span> contentCreated;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #bb2ca2\">@end<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #bb2ca2\">@implementation<span style=\"color: #000000\"> BigBall<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">&#8211; (<span style=\"color: #bb2ca2\">void<\/span>)didMoveToView:(<span style=\"color: #703daa\">SKView<\/span> *)view<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">{<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #4f8187\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><\/span><span style=\"color: #bb2ca2\">if<\/span><span style=\"color: #000000\"> (!<\/span><span style=\"color: #bb2ca2\">self<\/span><span style=\"color: #000000\">.<\/span>contentCreated<span style=\"color: #000000\">) {<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #31595d\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>[<\/span><span style=\"color: #bb2ca2\">self<\/span><span style=\"color: #000000\"> <\/span>createSceneContents<span style=\"color: #000000\">];<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #4f8187\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><\/span><span style=\"color: #bb2ca2\">self<\/span><span style=\"color: #000000\">.<\/span>contentCreated<span style=\"color: #000000\"> = <\/span><span style=\"color: #bb2ca2\">YES<\/span><span style=\"color: #000000\">;<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>}<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">}<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">&#8211; (<span style=\"color: #bb2ca2\">void<\/span>)createSceneContents<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">{<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #3d1d81\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><\/span><span style=\"color: #703daa\">SKSpriteNode<\/span><span style=\"color: #000000\"> *ground = [[<\/span><span style=\"color: #703daa\">SKSpriteNode<\/span><span style=\"color: #000000\"> <\/span>alloc<span style=\"color: #000000\">] <\/span>initWithColor<span style=\"color: #000000\">:[<\/span><span style=\"color: #78492a\">SKColor<\/span><span style=\"color: #000000\"> <\/span>redColor<span style=\"color: #000000\">] <\/span>size<span style=\"color: #000000\">:<\/span>CGSizeMake<span style=\"color: #000000\">(<\/span><span style=\"color: #272ad8\">320<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #272ad8\">10<\/span><span style=\"color: #000000\">)];<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>ground.<span style=\"color: #703daa\">position<\/span> = <span style=\"color: #3d1d81\">CGPointMake<\/span>(<span style=\"color: #272ad8\">160<\/span>, <span style=\"color: #272ad8\">10<\/span>);<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>[<span style=\"color: #bb2ca2\">self<\/span> <span style=\"color: #3d1d81\">addChild<\/span>:ground];<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><span class=\"Apple-converted-space\">\u00a0\u00a0 \u00a0<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #703daa\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>ground.<\/span>physicsBody<span style=\"color: #000000\"> = [<\/span>SKPhysicsBody<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">bodyWithRectangleOfSize<\/span><span style=\"color: #000000\">:ground.<\/span>size<span style=\"color: #000000\">];<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #703daa\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>ground.<\/span>physicsBody<span style=\"color: #000000\">.<\/span>dynamic<span style=\"color: #000000\"> = <\/span><span style=\"color: #bb2ca2\">NO<\/span><span style=\"color: #000000\">;<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><span class=\"Apple-converted-space\">\u00a0\u00a0 \u00a0<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #703daa\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><\/span>SKShapeNode<span style=\"color: #000000\"> *center =[<\/span>SKShapeNode<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">node<\/span><span style=\"color: #000000\">];<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #3d1d81\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>center.<\/span><span style=\"color: #703daa\">path<\/span><span style=\"color: #000000\"> = [<\/span><span style=\"color: #703daa\">UIBezierPath<\/span><span style=\"color: #000000\"> <\/span>bezierPathWithOvalInRect<span style=\"color: #000000\">:<\/span>CGRectMake<span style=\"color: #000000\">(-<\/span><span style=\"color: #272ad8\">10<\/span><span style=\"color: #000000\">, &#8211;<\/span><span style=\"color: #272ad8\">10<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #272ad8\">20<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #272ad8\">20<\/span><span style=\"color: #000000\">)].<\/span><span style=\"color: #703daa\">CGPath<\/span><span style=\"color: #000000\">;<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>center.<span style=\"color: #703daa\">position<\/span> = <span style=\"color: #3d1d81\">CGPointMake<\/span>(<span style=\"color: #272ad8\">160<\/span>, <span style=\"color: #272ad8\">300<\/span>);<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>[<span style=\"color: #bb2ca2\">self<\/span> <span style=\"color: #3d1d81\">addChild<\/span>:center];<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #703daa\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>center.<\/span>physicsBody<span style=\"color: #000000\"> = [<\/span>SKPhysicsBody<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">bodyWithCircleOfRadius<\/span><span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">10<\/span><span style=\"color: #000000\">];<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>center.<span style=\"color: #703daa\">name<\/span> = <span style=\"color: #d12f1b\">@&#8221;center&#8221;<\/span>;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><span style=\"color: #bb2ca2\">float<\/span> dAngle = <span style=\"color: #78492a\">M_PI<\/span> \/ <span style=\"color: #272ad8\">10.0<\/span>;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><span style=\"color: #703daa\">SKNode<\/span> *first;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><span style=\"color: #703daa\">SKNode<\/span> *previous;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><span style=\"color: #bb2ca2\">for<\/span> (<span style=\"color: #bb2ca2\">int<\/span> i=<span style=\"color: #272ad8\">0<\/span>; i&lt;<span style=\"color: #272ad8\">20<\/span>; i++) {<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"color: #bb2ca2\">float<\/span> x = <span style=\"color: #272ad8\">100<\/span> * <span style=\"color: #3d1d81\">cos<\/span>(dAngle * i) + <span style=\"color: #272ad8\">160<\/span>;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"color: #bb2ca2\">float<\/span> y = <span style=\"color: #272ad8\">100<\/span> * <span style=\"color: #3d1d81\">sin<\/span>(dAngle * i) + <span style=\"color: #272ad8\">300<\/span>;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><span class=\"Apple-converted-space\">\u00a0\u00a0 \u00a0 \u00a0 \u00a0<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #703daa\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><\/span>SKShapeNode<span style=\"color: #000000\"> *n = [<\/span>SKShapeNode<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">node<\/span><span style=\"color: #000000\">];<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #3d1d81\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>n.<\/span><span style=\"color: #703daa\">path<\/span><span style=\"color: #000000\"> = [<\/span><span style=\"color: #703daa\">UIBezierPath<\/span><span style=\"color: #000000\"> <\/span>bezierPathWithOvalInRect<span style=\"color: #000000\">:<\/span>CGRectMake<span style=\"color: #000000\">(-<\/span><span style=\"color: #272ad8\">10<\/span><span style=\"color: #000000\">, &#8211;<\/span><span style=\"color: #272ad8\">10<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #272ad8\">20<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #272ad8\">20<\/span><span style=\"color: #000000\">)].<\/span><span style=\"color: #703daa\">CGPath<\/span><span style=\"color: #000000\">;<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>n.<span style=\"color: #703daa\">position<\/span> = <span style=\"color: #3d1d81\">CGPointMake<\/span>(x, y);<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>[<span style=\"color: #bb2ca2\">self<\/span> <span style=\"color: #3d1d81\">addChild<\/span>:n];<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #703daa\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>n.<\/span>physicsBody<span style=\"color: #000000\"> = [<\/span>SKPhysicsBody<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">bodyWithCircleOfRadius<\/span><span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">10<\/span><span style=\"color: #000000\">];<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><span class=\"Apple-converted-space\">\u00a0\u00a0 \u00a0 \u00a0 \u00a0<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #703daa\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><\/span>SKPhysicsJointSpring<span style=\"color: #000000\"> *joint = [<\/span>SKPhysicsJointSpring<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">jointWithBodyA<\/span><span style=\"color: #000000\">:center.<\/span>physicsBody<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">bodyB<\/span><span style=\"color: #000000\">:n.<\/span>physicsBody<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">anchorA<\/span><span style=\"color: #000000\">:<\/span><span style=\"color: #3d1d81\">CGPointMake<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #272ad8\">160<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #272ad8\">300<\/span><span style=\"color: #000000\">) <\/span><span style=\"color: #3d1d81\">anchorB<\/span><span style=\"color: #000000\">:<\/span><span style=\"color: #3d1d81\">CGPointMake<\/span><span style=\"color: #000000\">(x, y)];<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>joint.<span style=\"color: #703daa\">damping<\/span> = <span style=\"color: #272ad8\">0.2<\/span>;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>joint.<span style=\"color: #703daa\">frequency<\/span> = <span style=\"color: #272ad8\">10.0<\/span>;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>[<span style=\"color: #bb2ca2\">self<\/span>.<span style=\"color: #703daa\">physicsWorld<\/span> <span style=\"color: #3d1d81\">addJoint<\/span>:joint];<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><span class=\"Apple-converted-space\">\u00a0\u00a0 \u00a0 \u00a0 \u00a0<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"color: #bb2ca2\">if<\/span> (previous) {<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #703daa\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span><\/span>SKPhysicsJointLimit<span style=\"color: #000000\"> *limit = [<\/span>SKPhysicsJointLimit<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">jointWithBodyA<\/span><span style=\"color: #000000\">:previous.<\/span>physicsBody<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">bodyB<\/span><span style=\"color: #000000\">:n.<\/span>physicsBody<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">anchorA<\/span><span style=\"color: #000000\">:previous.<\/span>position<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">anchorB<\/span><span style=\"color: #000000\">:n.<\/span>position<span style=\"color: #000000\">];<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>limit.<span style=\"color: #703daa\">maxLength<\/span> = <span style=\"color: #272ad8\">30<\/span>;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>[<span style=\"color: #bb2ca2\">self<\/span>.<span style=\"color: #703daa\">physicsWorld<\/span> <span style=\"color: #3d1d81\">addJoint<\/span>:limit];<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>} <span style=\"color: #bb2ca2\">else<\/span> {<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>first = n;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>}<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>previous = n;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>}<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><span class=\"Apple-converted-space\">\u00a0\u00a0 \u00a0<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><span class=\"Apple-converted-space\">\u00a0\u00a0 \u00a0<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #703daa\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><\/span>SKPhysicsJointLimit<span style=\"color: #000000\"> *limit = [<\/span>SKPhysicsJointLimit<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">jointWithBodyA<\/span><span style=\"color: #000000\">:previous.<\/span>physicsBody<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">bodyB<\/span><span style=\"color: #000000\">:first.<\/span>physicsBody<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">anchorA<\/span><span style=\"color: #000000\">:previous.<\/span>position<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">anchorB<\/span><span style=\"color: #000000\">:first.<\/span>position<span style=\"color: #000000\">];<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>limit.<span style=\"color: #703daa\">maxLength<\/span> = <span style=\"color: #272ad8\">30<\/span>;<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>[<span style=\"color: #bb2ca2\">self<\/span>.<span style=\"color: #703daa\">physicsWorld<\/span> <span style=\"color: #3d1d81\">addJoint<\/span>:limit];<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">}<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">&#8211; (<span style=\"color: #bb2ca2\">void<\/span>)touchesBegan:(<span style=\"color: #703daa\">NSSet<\/span> *)touches withEvent:(<span style=\"color: #703daa\">UIEvent<\/span> *)event<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">{<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><span style=\"color: #703daa\">SKNode<\/span> *node = [<span style=\"color: #bb2ca2\">self<\/span> <span style=\"color: #3d1d81\">childNodeWithName<\/span>:<span style=\"color: #d12f1b\">@&#8221;center&#8221;<\/span>];<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #3d1d81\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>[node.<\/span><span style=\"color: #703daa\">physicsBody<\/span><span style=\"color: #000000\"> <\/span>applyImpulse<span style=\"color: #000000\">:<\/span>CGVectorMake<span style=\"color: #000000\">(<\/span><span style=\"color: #272ad8\">0<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #272ad8\">100<\/span><span style=\"color: #000000\">)];<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">}<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #bb2ca2\">@end<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #4f8187\"><span style=\"color: #bb2ca2\">@interface<\/span><span style=\"color: #000000\"> <\/span>ViewController<span style=\"color: #000000\"> ()<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #bb2ca2\">@end<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span style=\"color: #bb2ca2\">@implementation<\/span> ViewController<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">&#8211; (<span style=\"color: #bb2ca2\">void<\/span>)viewDidLoad<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">{<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #3d1d81\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>[<\/span><span style=\"color: #bb2ca2\">super<\/span><span style=\"color: #000000\"> <\/span>viewDidLoad<span style=\"color: #000000\">];<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><span class=\"Apple-converted-space\">\u00a0\u00a0 \u00a0<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><span style=\"color: #703daa\">SKView<\/span> *spriteView = [[<span style=\"color: #703daa\">SKView<\/span> <span style=\"color: #3d1d81\">alloc<\/span>] <span style=\"color: #3d1d81\">initWithFrame<\/span>:<span style=\"color: #bb2ca2\">self<\/span>.<span style=\"color: #703daa\">view<\/span>.<span style=\"color: #703daa\">bounds<\/span>];<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>[<span style=\"color: #bb2ca2\">self<\/span>.<span style=\"color: #703daa\">view<\/span> <span style=\"color: #3d1d81\">addSubview<\/span>:spriteView];<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><span class=\"Apple-converted-space\">\u00a0\u00a0 \u00a0<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><span style=\"color: #703daa\">SKScene<\/span> *scene = [[<span style=\"color: #4f8187\">BigBall<\/span> <span style=\"color: #3d1d81\">alloc<\/span>] <span style=\"color: #3d1d81\">initWithSize<\/span>:<span style=\"color: #bb2ca2\">self<\/span>.<span style=\"color: #703daa\">view<\/span>.<span style=\"color: #703daa\">bounds<\/span>.<span style=\"color: #703daa\">size<\/span>];<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>[spriteView <span style=\"color: #3d1d81\">presentScene<\/span>:scene];<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">}<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">&#8211; (<span style=\"color: #bb2ca2\">void<\/span>)didReceiveMemoryWarning<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">{<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #3d1d81\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>[<\/span><span style=\"color: #bb2ca2\">super<\/span><span style=\"color: #000000\"> <\/span>didReceiveMemoryWarning<span style=\"color: #000000\">];<\/span><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #008400\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><\/span>\/\/ Dispose of any resources that can be recreated.<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo\">}<\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px\"><\/p>\n<p style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #bb2ca2\">@end<\/p>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SpriteKit\u306ejoint\u3092\u4f7f\u3063\u3066\u3001\u307c\u3088\u3093\u307c\u3088\u3093\u30dc\u30fc&#8230;<\/p>\n","protected":false},"author":2,"featured_media":2043,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[116,24,117],"class_list":["post-2040","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios","tag-ios7","tag-iphone","tag-spritekit"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/lepetit-prince.net\/ios\/wp-content\/uploads\/c0056c24e3e25bd649fc6a98bbbfe49e.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=\/wp\/v2\/posts\/2040","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2040"}],"version-history":[{"count":2,"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=\/wp\/v2\/posts\/2040\/revisions"}],"predecessor-version":[{"id":2042,"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=\/wp\/v2\/posts\/2040\/revisions\/2042"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=\/wp\/v2\/media\/2043"}],"wp:attachment":[{"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}