{"id":3144,"date":"2014-10-02T23:34:05","date_gmt":"2014-10-02T14:34:05","guid":{"rendered":"http:\/\/lepetit-prince.net\/ios\/?p=3144"},"modified":"2014-10-02T23:34:05","modified_gmt":"2014-10-02T14:34:05","slug":"%e3%82%b3%e3%83%9e","status":"publish","type":"post","link":"https:\/\/lepetit-prince.net\/ios\/?p=3144","title":{"rendered":"\u30b3\u30de"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/-wLrvdA5RMf0\/VC1ht63jmPI\/AAAAAAAACu8\/n9MNNzZ4y9o\/s288\/Screen%2520Shot%25202014-10-02%2520at%252011.30.55%2520PM.png\" width=\"288\" height=\"181\" alt=\"iPhone\u30b3\u30de\" class=\"alignnone\" \/><br \/>\n<\/p>\n<p>\n\u30b3\u30de\u3092\u56de\u3059iPhone\u30a2\u30d7\u30ea\u306e\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u3092\u63cf\u3044\u3066\u307f\u307e\u3059\u3002\n<\/p>\n<p><!--more--><\/p>\n<p>\n<iframe loading=\"lazy\" width=\"467\" height=\"350\" src=\"https:\/\/www.youtube.com\/embed\/vq82Ie1kbgE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/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\"><span style=\"color: #bb2ca2\">@import<\/span> SceneKit;<\/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; color: #bb2ca2\">@property<span style=\"color: #000000\"> (<\/span>nonatomic<span style=\"color: #000000\">, <\/span>weak<span style=\"color: #000000\">) <\/span><span style=\"color: #703daa\">SCNView<\/span><span style=\"color: #000000\"> *sceneView;<\/span><\/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; 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; color: #3d1d81\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><\/span><span style=\"color: #bb2ca2\">self<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #703daa\">view<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #703daa\">backgroundColor<\/span><span style=\"color: #000000\"> = [<\/span><span style=\"color: #703daa\">UIColor<\/span><span style=\"color: #000000\"> <\/span>colorWithHue<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">0.1<\/span><span style=\"color: #000000\"> <\/span>saturation<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">0.2<\/span><span style=\"color: #000000\"> <\/span>brightness<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">0.8<\/span><span style=\"color: #000000\"> <\/span>alpha<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">1<\/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: #31595d\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>[<\/span><span style=\"color: #bb2ca2\">self<\/span><span style=\"color: #000000\"> <\/span>setupScene<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 <\/span>[<\/span><span style=\"color: #bb2ca2\">self<\/span><span style=\"color: #000000\"> <\/span>createPlate<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 <\/span>[<\/span><span style=\"color: #bb2ca2\">self<\/span><span style=\"color: #000000\"> <\/span>createCamera<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 <\/span>[<\/span><span style=\"color: #bb2ca2\">self<\/span><span style=\"color: #000000\"> <\/span>createSpinningTop<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\">&#8211; (<span style=\"color: #bb2ca2\">void<\/span>)setupScene {<\/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> w = <span style=\"color: #3d1d81\">CGRectGetMaxX<\/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: #703daa\">SCNView<\/span> *sceneView = [[<span style=\"color: #703daa\">SCNView<\/span> <span style=\"color: #3d1d81\">alloc<\/span>] <span style=\"color: #3d1d81\">initWithFrame<\/span>:<span style=\"color: #3d1d81\">CGRectMake<\/span>(<span style=\"color: #272ad8\">0<\/span>, <span style=\"color: #272ad8\">0<\/span>, w, w)];<\/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>sceneView.<span style=\"color: #703daa\">scene<\/span> = [<span style=\"color: #703daa\">SCNScene<\/span> <span style=\"color: #3d1d81\">scene<\/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>sceneView.<\/span><span style=\"color: #703daa\">backgroundColor<\/span><span style=\"color: #000000\"> = [<\/span><span style=\"color: #703daa\">UIColor<\/span><span style=\"color: #000000\"> <\/span>colorWithHue<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">0.5<\/span><span style=\"color: #000000\"> <\/span>saturation<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">0.2<\/span><span style=\"color: #000000\"> <\/span>brightness<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">0.8<\/span><span style=\"color: #000000\"> <\/span>alpha<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">1<\/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>sceneView.<span style=\"color: #703daa\">center<\/span> = <span style=\"color: #3d1d81\">CGPointMake<\/span>(w\/<span style=\"color: #272ad8\">2.0<\/span>, <span style=\"color: #3d1d81\">CGRectGetMidY<\/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>:sceneView];<\/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: #bb2ca2\">self<\/span>.<span style=\"color: #4f8187\">sceneView<\/span> = sceneView;<\/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>)createPlate<\/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\">SCNBox<\/span><span style=\"color: #000000\"> *box = [<\/span><span style=\"color: #703daa\">SCNBox<\/span><span style=\"color: #000000\"> <\/span>boxWithWidth<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">20<\/span><span style=\"color: #000000\"> <\/span>height<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">2<\/span><span style=\"color: #000000\"> <\/span>length<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">20<\/span><span style=\"color: #000000\"> <\/span>chamferRadius<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">5<\/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>box.<\/span><span style=\"color: #703daa\">firstMaterial<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #703daa\">diffuse<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #703daa\">contents<\/span><span style=\"color: #000000\"> = [<\/span><span style=\"color: #703daa\">UIColor<\/span><span style=\"color: #000000\"> <\/span>colorWithHue<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">0.7<\/span><span style=\"color: #000000\"> <\/span>saturation<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">0.2<\/span><span style=\"color: #000000\"> <\/span>brightness<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">0.8<\/span><span style=\"color: #000000\"> <\/span>alpha<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">1<\/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><span style=\"color: #703daa\">SCNNode<\/span> *desk = [<span style=\"color: #703daa\">SCNNode<\/span> <span style=\"color: #3d1d81\">nodeWithGeometry<\/span>:box];<\/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: #4f8187\">sceneView<\/span>.<span style=\"color: #703daa\">scene<\/span>.<span style=\"color: #703daa\">rootNode<\/span> <span style=\"color: #3d1d81\">addChildNode<\/span>:desk];<\/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>desk.<\/span>physicsBody<span style=\"color: #000000\"> = [<\/span>SCNPhysicsBody<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">staticBody<\/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\">&#8211; (<span style=\"color: #bb2ca2\">void<\/span>)createCamera<\/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\">SCNNode<\/span> *camera = [<span style=\"color: #703daa\">SCNNode<\/span> <span style=\"color: #3d1d81\">node<\/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>camera.<span style=\"color: #703daa\">camera<\/span> = [<span style=\"color: #703daa\">SCNCamera<\/span> <span style=\"color: #3d1d81\">camera<\/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>camera.<span style=\"color: #703daa\">position<\/span> = <span style=\"color: #3d1d81\">SCNVector3Make<\/span>(<span style=\"color: #272ad8\">0<\/span>, <span style=\"color: #272ad8\">10<\/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: #4f8187\">sceneView<\/span>.<span style=\"color: #703daa\">scene<\/span>.<span style=\"color: #703daa\">rootNode<\/span> <span style=\"color: #3d1d81\">addChildNode<\/span>:camera];<\/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>)createSpinningTop<\/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\">SCNNode<\/span> *top = [<span style=\"color: #703daa\">SCNNode<\/span> <span style=\"color: #3d1d81\">node<\/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>top.<span style=\"color: #703daa\">name<\/span> = <span style=\"color: #d12f1b\">@&#8221;top&#8221;<\/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: #4f8187\">sceneView<\/span>.<span style=\"color: #703daa\">scene<\/span>.<span style=\"color: #703daa\">rootNode<\/span> <span style=\"color: #3d1d81\">addChildNode<\/span>:top];<\/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\">SCNNode<\/span> *tmpNode;<\/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\">5<\/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> r = i + <span style=\"color: #272ad8\">0.1<\/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: #703daa\">SCNCylinder<\/span> *disk = [<span style=\"color: #703daa\">SCNCylinder<\/span> <span style=\"color: #3d1d81\">cylinderWithRadius<\/span>:r <span style=\"color: #3d1d81\">height<\/span>:<span style=\"color: #272ad8\">1<\/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>disk.<span style=\"color: #703daa\">firstMaterial<\/span>.<span style=\"color: #703daa\">diffuse<\/span>.<span style=\"color: #703daa\">contents<\/span> = i == <span style=\"color: #272ad8\">4<\/span> ? [<span style=\"color: #bb2ca2\">self<\/span> <span style=\"color: #31595d\">createMark<\/span>] : [<span style=\"color: #703daa\">UIColor<\/span> <span style=\"color: #3d1d81\">colorWithHue<\/span>:<span style=\"color: #272ad8\">0.1<\/span> + <span style=\"color: #272ad8\">0.2<\/span> * i <span style=\"color: #3d1d81\">saturation<\/span>:<span style=\"color: #272ad8\">0.4<\/span> <span style=\"color: #3d1d81\">brightness<\/span>:<span style=\"color: #272ad8\">0.8<\/span> <span style=\"color: #3d1d81\">alpha<\/span>:<span style=\"color: #272ad8\">1<\/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: #703daa\">SCNNode<\/span> *n = [<span style=\"color: #703daa\">SCNNode<\/span> <span style=\"color: #3d1d81\">nodeWithGeometry<\/span>:disk];<\/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\">SCNVector3Make<\/span>(<span style=\"color: #272ad8\">0<\/span>, i + <span style=\"color: #272ad8\">10<\/span>, <span style=\"color: #272ad8\">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>[top <span style=\"color: #3d1d81\">addChildNode<\/span>:n];<\/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>n.<\/span>physicsBody<span style=\"color: #000000\"> = [<\/span>SCNPhysicsBody<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">dynamicBody<\/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><span style=\"color: #bb2ca2\">if<\/span> (tmpNode) {<\/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>SCNPhysicsSliderJoint<span style=\"color: #000000\"> *behavior = [<\/span>SCNPhysicsSliderJoint<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">jointWithBodyA<\/span><span style=\"color: #000000\">:n.<\/span>physicsBody<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">axisA<\/span><span style=\"color: #000000\">:<\/span><span style=\"color: #3d1d81\">SCNVector3Make<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #272ad8\">0<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #272ad8\">1<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #272ad8\">0<\/span><span style=\"color: #000000\">) <\/span><span style=\"color: #3d1d81\">anchorA<\/span><span style=\"color: #000000\">:n.<\/span>position<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">bodyB<\/span><span style=\"color: #000000\">:tmpNode.<\/span>physicsBody<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">axisB<\/span><span style=\"color: #000000\">:<\/span><span style=\"color: #3d1d81\">SCNVector3Make<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #272ad8\">0<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #272ad8\">1<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #272ad8\">0<\/span><span style=\"color: #000000\">) <\/span><span style=\"color: #3d1d81\">anchorB<\/span><span style=\"color: #000000\">:tmpNode.<\/span>position<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 \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 \u00a0 \u00a0 <\/span><span style=\"color: #bb2ca2\">if<\/span> (i == <span style=\"color: #272ad8\">4<\/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 \u00a0 \u00a0 <\/span>behavior.<span style=\"color: #703daa\">motorTargetAngularVelocity<\/span> = <span style=\"color: #272ad8\">80<\/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>}<\/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 \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 \u00a0 \u00a0 <\/span>behavior.<span style=\"color: #703daa\">minimumLinearLimit<\/span> = &#8211;<span style=\"color: #272ad8\">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 \u00a0 \u00a0 <\/span>[<span style=\"color: #bb2ca2\">self<\/span>.<span style=\"color: #4f8187\">sceneView<\/span>.<span style=\"color: #703daa\">scene<\/span>.<span style=\"color: #703daa\">physicsWorld<\/span> <span style=\"color: #3d1d81\">addBehavior<\/span>:behavior];<\/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>tmpNode = 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\">}<\/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: #bb2ca2\">self<\/span>.<span style=\"color: #4f8187\">sceneView<\/span>.<span style=\"color: #703daa\">scene<\/span>.<span style=\"color: #703daa\">rootNode<\/span> <span style=\"color: #3d1d81\">enumerateChildNodesUsingBlock<\/span>:^(<span style=\"color: #703daa\">SCNNode<\/span> *child, <span style=\"color: #bb2ca2\">BOOL<\/span> *stop) {<\/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> ([child.<span style=\"color: #703daa\">name<\/span> <span style=\"color: #3d1d81\">isEqual<\/span>:<span style=\"color: #d12f1b\">@&#8221;top&#8221;<\/span>] &amp;&amp; [child.<span style=\"color: #703daa\">childNodes<\/span>[<span style=\"color: #272ad8\">0<\/span>] <span style=\"color: #3d1d81\">presentationNode<\/span>].<span style=\"color: #703daa\">position<\/span>.<span style=\"color: #703daa\">y<\/span> &lt; &#8211;<span style=\"color: #272ad8\">1<\/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>[child <span style=\"color: #3d1d81\">removeFromParentNode<\/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>}<\/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; color: #31595d\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>[<\/span><span style=\"color: #bb2ca2\">self<\/span><span style=\"color: #000000\"> <\/span>createSpinningTop<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\">&#8211; (<span style=\"color: #703daa\">CALayer<\/span> *)createMark<\/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: #703daa\"><span style=\"color: #000000\"><span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span><\/span>CATextLayer<span style=\"color: #000000\"> *l = [<\/span>CATextLayer<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">layer<\/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>l.<span style=\"color: #703daa\">frame<\/span> = <span style=\"color: #3d1d81\">CGRectMake<\/span>(<span style=\"color: #272ad8\">0<\/span>, <span style=\"color: #272ad8\">0<\/span>, <span style=\"color: #272ad8\">40<\/span>, <span style=\"color: #272ad8\">50<\/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>l.<\/span><span style=\"color: #703daa\">backgroundColor<\/span><span style=\"color: #000000\"> = [<\/span><span style=\"color: #703daa\">UIColor<\/span><span style=\"color: #000000\"> <\/span>colorWithHue<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">0.8<\/span><span style=\"color: #000000\"> <\/span>saturation<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">0.4<\/span><span style=\"color: #000000\"> <\/span>brightness<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">0.8<\/span><span style=\"color: #000000\"> <\/span>alpha<span style=\"color: #000000\">:<\/span><span style=\"color: #272ad8\">1<\/span><span style=\"color: #000000\">].<\/span><span style=\"color: #703daa\">CGColor<\/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>l.<span style=\"color: #703daa\">string<\/span> = <span style=\"color: #d12f1b\">@&#8221;++&#8221;<\/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>l.<\/span>foregroundColor<span style=\"color: #000000\"> = [<\/span>UIColor<span style=\"color: #000000\"> <\/span><span style=\"color: #3d1d81\">yellowColor<\/span><span style=\"color: #000000\">].<\/span>CGColor<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><span style=\"color: #bb2ca2\">return<\/span> l;<\/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; 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\">}<\/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>\u30b3\u30de\u3092\u56de\u3059iPhone\u30a2\u30d7\u30ea\u306e\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u3092\u63cf\u3044\u3066\u307f\u307e&#8230;<\/p>\n","protected":false},"author":2,"featured_media":3146,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[125,24,119,126],"class_list":["post-3144","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios","tag-ios8","tag-iphone","tag-objective-c","tag-scenekit"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/lepetit-prince.net\/ios\/wp-content\/uploads\/ce8488a45ea6c7b3ac09b837bf0b9cab.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=\/wp\/v2\/posts\/3144","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=3144"}],"version-history":[{"count":1,"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=\/wp\/v2\/posts\/3144\/revisions"}],"predecessor-version":[{"id":3145,"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=\/wp\/v2\/posts\/3144\/revisions\/3145"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=\/wp\/v2\/media\/3146"}],"wp:attachment":[{"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lepetit-prince.net\/ios\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}