{"id":225517,"date":"2014-08-11T22:56:04","date_gmt":"2014-08-11T18:56:04","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=225517"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=225517","title":{"rendered":"<span class=\"post_title\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0433\u0440\u044b \u043d\u0430 \u0434\u0432\u0438\u0436\u043a\u0435 Sprite Kit (\u0427\u0430\u0441\u0442\u044c 1)<\/span>"},"content":{"rendered":"<div class=\"content html_format\">     \t\u0421 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c IOS 7 \u043c\u0438\u0440 \u0443\u0437\u0440\u0435\u043b \u043d\u043e\u0432\u044b\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u0434\u0432\u0438\u0436\u043e\u043a \u043e\u0442 Apple \u2014 SpriteKit. \u0412 \u0441\u0432\u0435\u0442\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043e\u043d \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0435 \u0435\u0449\u0435 \u043c\u0430\u043b\u043e \u0447\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0432 \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e tutorial -\u043e\u0432 \u043f\u043e \u043d\u0435\u043c\u0443 \u043d\u043e \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0432\u0441\u0435 \u043e\u043d\u0438 \u043d\u0430 \u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435. \u0418 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u044f \u0437\u0430\u0434\u0430\u043b\u0430\u0441\u044c \u0446\u0435\u043b\u044c\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0422\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u043e\u0431 \u044d\u0442\u043e\u043c \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0435.<\/p>\n<h1>\u0418 \u0442\u0430\u043a \u0447\u0442\u043e \u0436\u0435 \u0442\u0430\u043a\u043e\u0435 SpriteKit?<\/h1>\n<p>  SpriteKit \u2014 \u044d\u0442\u043e 2D \u0434\u0432\u0438\u0436\u043e\u043a, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0433\u0440 \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Apple. \u0412 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0435 \u043b\u0435\u0436\u0438\u0442 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 <a href=\"http:\/\/ru.wikipedia.org\/wiki\/Box2D\"> \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0438\u0436\u043e\u043a Box 2D<\/a>. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u0435\u0433\u043e \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 Apple \u043e\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0432 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0443 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432.<br \/>  \u0412 SpriteKit \u0432\u0441\u044e \u0440\u043e\u043b\u044c \u043f\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044e \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0431\u0435\u0440\u0435\u0442 \u043d\u0430 \u0441\u0435\u0431\u044f OpenGl, \u044d\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043d\u0438\u0437\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0438 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0443\u0441\u0438\u043b\u0438\u044f \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 2D \u0438\u0433\u0440. \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0433\u0440 \u043d\u0430 SpriteKit \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u044f\u0437\u044b\u043a <b>Objective-c<\/b>, \u043d\u043e \u0441 \u0432\u044b\u0445\u043e\u0434\u043e\u043c <a href=\"https:\/\/www.apple.com\/ru\/ios\/ios8\/\">IOS 8<\/a> \u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 <a href=\"http:\/\/ru.wikipedia.org\/wiki\/Swift_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)\">Swift<\/a>, \u0438\u0433\u0440\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u043d\u0430 \u043d\u0435\u043c. <br \/>  \u041e\u0442 \u0441\u0435\u0431\u044f \u0445\u043e\u0442\u0435\u043b\u0430 \u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u043e\u0434\u0435 \u043d\u0430 <b>Swift<\/b> \u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0430\u0436\u0435 \u043b\u0435\u0433\u0447\u0435, \u0442\u0430\u043a \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u0438 \u0434\u0443\u043c\u0430\u0435\u0442\u0435 \u043a\u0430\u043a\u043e\u0439 \u044f\u0437\u044b\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u043e \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u0432\u044b\u0431\u0440\u0430\u0442\u044c <b>Swift<\/b>.<\/p>\n<p>  \u041d\u0438\u0436\u0435, \u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u0432\u0438\u0434\u0435\u043e \u0441 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0435\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 SpriteKit, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u0441\u0442\u0430\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0442\u043e \u043c\u0438\u043b\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0448\u0443.<\/p>\n<p>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/QtzwSpJbm-k?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>  <a name=\"habracut\"><\/a>  <\/p>\n<hr\/>\n<p>  <\/p>\n<h1><b>\u041d\u0430\u0447\u0430\u043b\u043e<\/b><\/h1>\n<p>  <\/p>\n<hr\/>\n<p>  \u0418 \u0442\u0430\u043a, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0447\u043d\u0435\u043c, \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 Xcode. <br \/>  \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u043a\u043e\u0433\u0434\u0430 \u0432\u0430\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0430\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c Application template \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0438\u043f Game.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/118\/22c\/c78\/11822cc78699970bb88a56363c63c761.png\"\/><\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u0441\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0430\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0430\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u044f\u0437\u044b\u043a: \u044d\u0442\u043e \u043b\u0438\u0431\u043e <b>Objective-c<\/b>, \u043b\u0438\u0431\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u043e\u0432\u044b\u0439 <b>Swift<\/b>.<br \/>  \u041c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439, \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u043d\u0430 \u043e\u0431\u043e\u0438\u0445.<br \/>  \u0414\u0430\u043b\u044c\u0448\u0435 \u0432 \u043f\u0443\u043d\u043a\u0442\u0435 <u>Game Tehnology<\/u> \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c <u>SpriteKit<\/u>.<br \/>  \u0422\u0430\u043a\u0436\u0435 \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u043f\u0438\u0441\u0430\u0442\u044c, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e Iphone.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/344\/c00\/6d6\/344c006d69b315ca97aff1d819418a35.png\"\/><\/p>\n<p>  \u0418 \u0442\u0430\u043a, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043d\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442, \u0441\u043b\u0435\u0432\u0430 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043d\u0430\u0448\u0438 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f <b>Objective-C<\/b> \u044d\u0442\u043e:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Objective-c<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/917\/c9e\/5bc\/917c9e5bc9a5f10aec8501415a46fd04.png\"\/><\/div>\n<\/div>\n<p>  \u0414\u043b\u044f <b>Swift<\/b>:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Swift<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/d0d\/3e7\/17b\/d0d3e717b136548f5f063bc6e611aabe.png\"\/><\/div>\n<\/div>\n<p>  \u041a\u0430\u043a \u0432\u044b \u0443\u0436\u0435 \u0443\u0441\u043f\u0435\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441\u043e <b>Swift<\/b> \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0434\u0432\u043e\u0435 \u043c\u0435\u043d\u044c\u0448\u0435.<br \/>  \u0421\u043b\u0435\u0432\u0430 \u043c\u044b \u0432\u0438\u0434\u0438\u043c:  <\/p>\n<table>\n<tr>\n<td>1) <b>AppDelegate<\/b> \u2014 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<br \/>  2) <b>GameViewController<\/b> \u2014 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043d\u0430\u0448\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<br \/>  3) <b>GameScene<\/b> \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u0446\u0435\u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u0438\u0433\u0440\u044b.<br \/>  4) <b> GameScene.sks<\/b> \u2014 \u044d\u0442\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b, \u0435\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0441 \u0432\u044b\u0445\u043e\u0434\u043e\u043c <b>Ios 8<\/b>, \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.  <\/td>\n<\/tr>\n<\/table>\n<p>  <b>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u0443 \u043d\u0438\u0445 \u0432\u043d\u0443\u0442\u0440\u0438.<\/b><\/p>\n<hr\/>\n<p>  <\/p>\n<h4>GameViewController<\/h4>\n<p>  <\/p>\n<hr\/>\n<p>  <b>GameViewController<\/b> \u2014 \u043e\u043d \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b. \u0412\u0441\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043b\u0443\u0436\u0430\u0449\u0438\u0435 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0437\u0434\u0435\u0441\u044c.<\/p>\n<p>  \u0412 \u0446\u0435\u043b\u043e\u043c \u0432\u0441\u0435 \u0447\u0442\u043e, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 <b>GameViewController<\/b> \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u0434\u043b\u044f \u043e\u0431\u043e\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432:<br \/>  \u0412 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <b>viewDidLoad<\/b>.<br \/>  \u0412 \u044d\u0442\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0435\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Objective-c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>- (void)viewDidLoad {     [super viewDidLoad];      \/\/ Configure the view.     SKView * skView = (SKView *)self.view; \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 SKView \u0438 \u0435\u043c\u0443 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0439 View.     skView.showsFPS = YES; \/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b     skView.showsNodeCount = YES; \/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c  \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0447\u0438\u0441\u043b\u043e Node (\u041e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u0435).     \/* Sprite Kit applies additional optimizations to improve rendering performance *\/     skView.ignoresSiblingOrder = YES;\/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430          \/\/ Create and configure the scene.     GameScene *scene = [GameScene unarchiveFromFile:@&quot;GameScene&quot;]; \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b.     scene.scaleMode = SKSceneScaleModeAspectFill; \/\/ \u041f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 ScaleMode \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Scene \u0442\u0438\u043f SKSceneScaleModeAspectFill.          \/\/ Present the scene.      \/\/ \u041f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043c\u0435\u0442\u043e\u0434\u0443 presentScene, \u043e\u0431\u044a\u0435\u043a\u0442\u0430 skView \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b \u0438 \u044d\u0442\u0438\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c \u043d\u0430\u0448\u0435 \u0441\u0446\u0435\u043d\u0443       [skView presentScene:scene]; }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Swift<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>override func viewDidLoad() {         super.viewDidLoad()   \/\/    if let scene = GameScene.unarchiveFromFile(&quot;GameScene&quot;) as? GameScene  \/\/\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043b\u0438 \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0443 GameScene    {       \/\/ Configure the view.       let skView = self.view as SKView \/\/ \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0435  SKView \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0439 UIView       skView.showsFPS = true \/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b       skView.showsNodeCount = true \/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c  \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0447\u0438\u0441\u043b\u043e Node (\u041e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u0435).                    \/* Sprite Kit applies additional optimizations to improve rendering performance *\/       skView.ignoresSiblingOrder = true \/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430                     \/* Set the scale mode to scale to fit the window *\/       scene.scaleMode = .AspectFill  \/\/ \u041f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 ScaleMode \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Scene \u0442\u0438\u043f AspectFill.               \/\/ \u041f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 presentScene, \u043e\u0431\u044a\u0435\u043a\u0442\u0430 skView \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b \u0438 \u044d\u0442\u0438\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c \u043d\u0430\u0448\u0435 \u0441\u0446\u0435\u043d\u0443             skView.presentScene(scene)    }     }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0412 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435, \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0438\u043b\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <b>SKView<\/b> \u0438 \u0435\u043c\u0443 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0439 <b>View<\/b>.<\/p>\n<p>  <font color=\"blue\"><b><b>SKView<\/b> \u2014 \u044d\u0442\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a <b>UIView<\/b>, \u043e\u043d \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b.<\/b><\/font><\/p>\n<p>  <u>\u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043d\u0430\u0448\u0435\u0433\u043e <b>SKView<\/b>:<\/u>  <\/p>\n<table>\n<tr>\n<td><b>showFPS<\/b> \u2014 \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b.<br \/>  <b>showsNodeCount<\/b> \u2014 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0447\u0438\u0441\u043b\u043e Node (\u041e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u0435).<br \/>  <b>ignoressSiblingOrder<\/b> \u2014 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430.<br \/>  \u041a\u0440\u043e\u043c\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445, \u0443 <b>SKView<\/b> \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0447\u0438\u0445 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0438 \u043f\u043e\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0441 \u043d\u0438\u043c\u0438!<\/td>\n<\/tr>\n<\/table>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u041e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b \u2014 <b>GameScene<\/b>. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043e <b>Swift<\/b> \u043e\u043d \u0443\u0436\u0435 \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0448\u0435\u0433\u043e <b>View<\/b>.<br \/>  \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<p>  <b>Objective-c<\/b>  <\/p>\n<pre><code>+ (instancetype)unarchiveFromFile:(NSString *)file {     \/* Retrieve scene file path from the application bundle *\/     NSString *nodePath = [[NSBundle mainBundle] pathForResource:file ofType:@&quot;sks&quot;];     \/* Unarchive the file to an SKScene object *\/     NSData *data = [NSData dataWithContentsOfFile:nodePath                                           options:NSDataReadingMappedIfSafe                                             error:nil];     NSKeyedUnarchiver *arch = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];     [arch setClass:self forClassName:@&quot;SKScene&quot;];     SKScene *scene = [arch decodeObjectForKey:NSKeyedArchiveRootObjectKey];     [arch finishDecoding];          return scene; }<\/code><\/pre>\n<p>  <b>Swift<\/b>  <\/p>\n<pre><code>class func unarchiveFromFile(file : NSString) -&gt; SKNode?  {                  let path = NSBundle.mainBundle().pathForResource(file, ofType: &quot;sks&quot;)                  var sceneData = NSData.dataWithContentsOfFile(path, options: .DataReadingMappedIfSafe, error: nil)         var archiver = NSKeyedUnarchiver(forReadingWithData: sceneData)                  archiver.setClass(self.classForKeyedUnarchiver(), forClassName: &quot;SKScene&quot;)         let scene = archiver.decodeObjectForKey(NSKeyedArchiveRootObjectKey) as GameScene         archiver.finishDecoding()         return scene     }<\/code><\/pre>\n<p>   \u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438 \u0435\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0435, \u043e\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0444\u0430\u0439\u043b \u043d\u0430\u0448\u0435\u0433\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 <b> GameScene.sks<\/b> \u0437\u0430\u0442\u0435\u043c \u0440\u0430\u0437\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u0435\u0433\u043e, \u0430 \u043f\u043e\u0441\u043b\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <b> SKScene<\/b> \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b.<br \/>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0447\u0442\u043e, \u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b, \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430:<br \/>  <b> scaleMode<\/b> \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0440\u0430\u0441\u0442\u044f\u0436\u043a\u0443 \u0441\u0446\u0435\u043d\u044b \u043f\u043e \u044d\u043a\u0440\u0430\u043d\u0443, \u043f\u043e\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0441 \u044d\u0442\u0438\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c!<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043d\u0430\u0448 <b>SKView<\/b> \u0438 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0435\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u043c\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434 \u043a\u043b\u0430\u0441\u0441\u0430 <b>SKView<\/b>:  <\/p>\n<table>\n<tr>\n<td><b>Objective-c<\/b>  <\/p>\n<pre><code> - (void)presentScene:(SKScene *)scene transition:(SKTransition *)transition;<\/code><\/pre>\n<p>  <b>Swift<\/b>  <\/p>\n<pre><code>func presentScene(scene: SKScene!, transition: SKTransition!)<\/code><\/pre>\n<p>   \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b, \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u0438 \u00ab\u0432\u0443\u0430\u043b\u044f\u00bb \u043d\u0430\u0448\u0430 \u0441\u0446\u0435\u043d\u0430 \u0433\u043e\u0442\u043e\u0432\u0430!<\/td>\n<\/tr>\n<\/table>\n<p>  \u041d\u0438\u0436\u0435 \u044f \u043f\u0440\u0438\u0432\u0435\u043b\u0430 \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 <b>GameViewController<\/b>.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/21c\/e03\/3d1\/21ce033d1aa6c2b25caf21e104db8977.png\"\/><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Objective-c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>#import &quot;GameViewController.h&quot; #import &quot;GameScene.h&quot;  @implementation SKScene (Unarchive)  + (instancetype)unarchiveFromFile:(NSString *)file {     \/* Retrieve scene file path from the application bundle *\/     NSString *nodePath = [[NSBundle mainBundle] pathForResource:file ofType:@&quot;sks&quot;];     \/* Unarchive the file to an SKScene object *\/     NSData *data = [NSData dataWithContentsOfFile:nodePath                                           options:NSDataReadingMappedIfSafe                                             error:nil];     NSKeyedUnarchiver *arch = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];     [arch setClass:self forClassName:@&quot;SKScene&quot;];     SKScene *scene = [arch decodeObjectForKey:NSKeyedArchiveRootObjectKey];     [arch finishDecoding];          return scene; }  @end  @implementation GameViewController  - (void)viewDidLoad {     [super viewDidLoad];      \/\/ Configure the view.     SKView * skView = (SKView *)self.view; \/\/      skView.showsFPS = YES;     skView.showsNodeCount = YES;     \/* Sprite Kit applies additional optimizations to improve rendering performance *\/     skView.ignoresSiblingOrder = YES;          \/\/ Create and configure the scene.     GameScene *scene = [GameScene unarchiveFromFile:@&quot;GameScene&quot;];     scene.scaleMode = SKSceneScaleModeAspectFill;          \/\/ Present the scene.     [skView presentScene:scene]; }  - (BOOL)shouldAutorotate {     return YES; }  - (NSUInteger)supportedInterfaceOrientations {     if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {         return UIInterfaceOrientationMaskAllButUpsideDown;     } else {         return UIInterfaceOrientationMaskAll;     } }  - (void)didReceiveMemoryWarning {     [super didReceiveMemoryWarning];     \/\/ Release any cached data, images, etc that aren't in use. }  @end <\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Swift<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>import UIKit import SpriteKit  extension SKNode {     class func unarchiveFromFile(file : NSString) -&gt; SKNode? {                  let path = NSBundle.mainBundle().pathForResource(file, ofType: &quot;sks&quot;)                  var sceneData = NSData.dataWithContentsOfFile(path, options: .DataReadingMappedIfSafe, error: nil)         var archiver = NSKeyedUnarchiver(forReadingWithData: sceneData)                  archiver.setClass(self.classForKeyedUnarchiver(), forClassName: &quot;SKScene&quot;)         let scene = archiver.decodeObjectForKey(NSKeyedArchiveRootObjectKey) as GameScene         archiver.finishDecoding()         return scene     } }  class GameViewController: UIViewController {      override func viewDidLoad() {         super.viewDidLoad()          if let scene = GameScene.unarchiveFromFile(&quot;GameScene&quot;) as? GameScene {             \/\/ Configure the view.             let skView = self.view as SKView             skView.showsFPS = true             skView.showsNodeCount = true                          \/* Sprite Kit applies additional optimizations to improve rendering performance *\/             skView.ignoresSiblingOrder = true                          \/* Set the scale mode to scale to fit the window *\/             scene.scaleMode = .AspectFill                          skView.presentScene(scene)         }     }      override func shouldAutorotate() -&gt; Bool {         return true     }      override func supportedInterfaceOrientations() -&gt; Int {         if UIDevice.currentDevice().userInterfaceIdiom == .Phone {             return Int(UIInterfaceOrientationMask.AllButUpsideDown.toRaw())         } else {             return Int(UIInterfaceOrientationMask.All.toRaw())         }     }      override func didReceiveMemoryWarning() {         super.didReceiveMemoryWarning()         \/\/ Release any cached data, images, etc that aren't in use.     }      }<\/code><\/pre>\n<\/div>\n<\/div>\n<hr\/>\n<p>  <\/p>\n<h4>GameScene<\/h4>\n<p>  <\/p>\n<hr\/>\n<p>  <b>\u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443, \u043e\u043d\u0430 \u0433\u043e\u0442\u043e\u0432\u0430 \u043a \u0431\u043e\u0435\u0432\u044b\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c \u0438 \u0442\u0443\u0442 \u0434\u0440\u0443\u0437\u044c\u044f \u043c\u043e\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435 \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435!<\/b><\/p>\n<p>  \u041a\u0430\u043a \u0432\u044b \u0443\u0436\u0435 \u0443\u0441\u043f\u0435\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443 \u043d\u0430\u0441 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f \u0441\u0446\u0435\u043d\u0430 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438.<br \/>  \u0423\u0434\u0430\u043b\u0438\u0442\u0435 \u0432\u0441\u0435 \u0432 <b>GameScene<\/b> \u0442\u0430\u043a, \u0447\u0442\u043e \u0431\u044b \u043e\u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u043a\u043e\u0434\u0443 \u043d\u0438\u0436\u0435:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Objective-c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code> #import &quot;GameScene.h&quot;  @implementation GameScene  -(void)didMoveToView:(SKView *)view {      }   @end     <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Swift<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code> import SpriteKit   class GameScene: SKScene {     override func didMoveToView(view: SKView)     {              }           }    <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/e6a\/046\/847\/e6a046847702354fe289ce1cca62a2c2.png\"\/><\/p>\n<p>  \u041c\u044b \u0432\u0438\u0434\u0438\u043c \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u0435\u0440\u044b\u0439 \u044d\u043a\u0440\u0430\u043d \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u0447\u0435\u0433\u043e, \u043a\u0440\u043e\u043c\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 Node \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u0441\u0446\u0435\u043d\u044b, \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0441\u044f \u0438 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u0434 \u0432 <b>GameScene<\/b>.<\/p>\n<p>  \u0427\u0442\u043e \u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u043d\u0430\u0448\u0430 \u0441\u0446\u0435\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u0430\u043c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u0438\u0436\u0435 \u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438 \u0441\u0430\u043c\u0438 \u0432 <b>.h<\/b> \u0444\u0430\u0439\u043b\u0435.<\/p>\n<p>  <font color=\"green\"><b>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430:<\/b><\/font>  <\/p>\n<table>\n<tr>\n<td>1) <b>size<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b.<\/i> <br \/>  2) <b>scaleMode<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b.<\/i><br \/>  3) <b>backgroundColor<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0446\u0432\u0435\u0442 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u0435 \u0441\u0435\u0440\u044b\u0439 (\u043a\u0430\u043a \u043c\u044b \u0438 \u0443\u0441\u043f\u0435\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0432\u044b\u0448\u0435).<\/i><br \/>  4) <b>anchorPoint<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b.<\/i><br \/>  5) <b>view<\/b> \u2014 <i>\u041d\u0430\u0448 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 View.<\/i><br \/>  6) <b>physicsWorld<\/b> \u2014 <i>\u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0444\u0438\u0437\u0438\u043a\u0443 \u0441\u0446\u0435\u043d\u044b (\u0413\u0440\u0430\u0432\u0438\u0442\u0430\u0446\u0438\u044f, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c) \u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043d\u0435\u043c \u043f\u043e\u0437\u0436\u0435.<\/i>  <\/td>\n<\/tr>\n<\/table>\n<p>  <font color=\"green\"><b>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/b><\/font>  <\/p>\n<table>\n<tr>\n<td>1) <b>didMoveToView:<\/b> \u2014 <i>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043d\u0430\u0448\u0430 \u0441\u0446\u0435\u043d\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043b\u0430\u0441\u044c.<\/i> <br \/>  2) <b>willMoveFromView:<\/b> \u2014 <i>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043d\u0430\u0448\u0430 \u0441\u0446\u0435\u043d\u0430 \u0431\u044b\u043b\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0430.<\/i><br \/>  3) <b>didChangeSize:<\/b> \u2014 <i>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b.<\/i><br \/>  4) <b>convertPointToView:<\/b> \u2014 <i>\u0421\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442<\/i><br \/>  5) <b>convertPointFromView:<\/b> \u2014 <i>\u0421\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442<\/i><br \/>  6) <b>initWithSize:<\/b> \u2014 <i>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b.<\/i><\/td>\n<\/tr>\n<\/table>\n<p>  <font color=\"green\"><b>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b<\/b><\/font>  <\/p>\n<table>\n<tr>\n<td><u>\u0421\u043e\u0431\u044b\u0442\u0438\u044f \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438 \u043d\u0430\u0448\u0435\u0439 \u0438\u0433\u0440\u044b, \u041e\u043d\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u0442\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0430!<\/u><br \/>  1) <b>Update:<\/b> \u2014 <i>\u0417\u0434\u0435\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043d\u0430\u0448\u0435\u0439 \u0438\u0433\u0440\u044b.<\/i> <br \/>  2) <b>didEvaluateActions<\/b> \u2014 <i>\u0421\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u043d\u0430\u0448\u0438\u0445 Action \u2014 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439.<\/i><br \/>  3) <b>didSimulatePhysics<\/b> \u2014 <i>\u0421\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439.<\/i><br \/>  4) <b>didApplyConstriants<\/b> \u2014 <i>\u0421\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439.<\/i><br \/>  5) <b>didFinishUpdate<\/b> \u2014 <i>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0432\u0441\u0435 \u0432\u044b\u0448\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0438\u0441\u044c.<\/i><\/td>\n<\/tr>\n<\/table>\n<p>  \u0418 \u0442\u0430\u043a \u0434\u0440\u0443\u0437\u044c\u044f, \u0442\u0435\u043f\u0435\u0440\u044c \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0432\u0438\u0434\u0435\u043b\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0448 \u043a\u043e\u0434. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0446\u0432\u0435\u0442 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u043c\u0441\u044f \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 <b>backgroundColor<\/b> \u0438 \u043f\u043e\u043a\u0440\u0430\u0441\u0438\u043c \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443 \u0432 \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439 \u0446\u0432\u0435\u0442. \u041a\u0430\u043a \u043c\u044b \u0443\u0436\u0435 \u0432\u0438\u0434\u0435\u043b\u0438 \u0432\u044b\u0448\u0435, \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0446\u0435\u043d\u044b \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0437\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <b>initWithSize:<\/b>, \u0430 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043d\u0430\u0448\u0430 \u0441\u0446\u0435\u043d\u0430 \u0443\u0436\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043b\u0430\u0441\u044c, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <b>didMoveToView:<\/b>. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0441\u0446\u0435\u043d\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <b>unarchiveFromFile<\/b> \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0443\u0436\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0418 \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430\u0448\u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 <b>didMoveToView:<\/b>.<\/p>\n<p>  <b>Objective-c<\/b>  <\/p>\n<pre><code>#import &quot;GameScene.h&quot;  @implementation GameScene   -(void)didMoveToView:(SKView *)view {     [self SceneSetting]; \/\/ \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u0435\u0442\u043e\u0434 SceneSetting }   -(void)SceneSetting {     self.backgroundColor = [SKColor orangeColor]; \/\/ \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0446\u0432\u0435\u0442 \u0441\u0446\u0435\u043d\u044b \u043d\u0430 \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439 }   @end <\/code><\/pre>\n<p>  <b>Swift<\/b>  <\/p>\n<pre><code> import SpriteKit  class GameScene: SKScene {     override func didMoveToView(view: SKView)     {         SceneSetting() \/\/ \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e SceneSetting     }               func SceneSetting()     {         self.backgroundColor = SKColor.orangeColor() \/\/ \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0446\u0432\u0435\u0442 \u0441\u0446\u0435\u043d\u044b \u043d\u0430 \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439              } } <\/code><\/pre>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432\u044b\u0448\u0435, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <b>didMoveToView<\/b>, \u0434\u0430\u043b\u0435\u0435 \u0432 \u043d\u0435\u043c(\u0435\u0439) \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <b>SceneSetting<\/b>, \u0430 \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0446\u0432\u0435\u0442 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u0430 \u043c\u044b \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 <b>UIColor<\/b> \u043a\u0430\u043a \u043c\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438, \u043c\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a <b>SKColor<\/b>, \u043f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e <b>define<\/b> <b>UIColor<\/b> \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u0442\u0430\u043a \u0438 \u0442\u0430\u043a, \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u044d\u0442\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0412\u044b \u043d\u0430\u0432\u0435\u0440\u043d\u043e \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u0435, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u044f \u0432\u044b\u043d\u0435\u0441\u043b\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u042f \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0430 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e, \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u043f\u043e\u0440\u043e\u0439 \u0431\u044b\u0432\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0442\u0440\u0443\u0434\u043d\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0438 \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e, \u0435\u0441\u043b\u0438 \u043c\u044b \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e.<\/p>\n<p>  \u0418 \u0442\u0430\u043a, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043d\u0438\u0437\u0443.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/68b\/007\/4ec\/68b0074ec80f0288489583b81d1968ba.png\"\/><\/p>\n<p>  <b>\u041d\u0430 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u0435, \u0435\u0449\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0442\u0430\u043a \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u044d\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u0434\u0440\u0443\u0437\u044c\u044f!<br \/>  \u0410 \u0438\u043d\u0430\u0447\u0435, \u0447\u0442\u043e \u043c\u044b \u0442\u0443\u0442 \u0434\u0435\u043b\u0430\u0435\u043c!<\/b>  <\/p>\n<hr\/>\n<p>  <\/p>\n<h4>SKNode<\/h4>\n<p>  <\/p>\n<hr\/>\n<p>  <b>\u041d\u0443 \u0447\u0442\u043e, \u0434\u0440\u0443\u0437\u044c\u044f, \u043a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u043c\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438 \u0446\u0432\u0435\u0442 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b \u0438 \u0432\u044b \u043d\u0430\u0432\u0435\u0440\u043d\u043e \u0437\u0430\u0434\u0430\u043b\u0438\u0441\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c, \u0438 \u0432\u0441\u0435? \u0438 \u0440\u0430\u0434\u0438 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0437\u0430\u0448\u043b\u0438 \u0441\u044e\u0434\u0430?<\/b><\/p>\n<p>  \u0414\u0440\u0443\u0437\u044c\u044f, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u0435 \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u043c \u0432\u0441\u044e \u043c\u043e\u0449\u044c, \u043a\u0430\u043a\u0443\u044e \u0438\u043c\u0435\u0435\u0442 \u043d\u0430\u0448\u0430 \u0441\u0446\u0435\u043d\u0430, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b\u0439 \u043f\u0443\u043d\u043a\u0442 \u044d\u0442\u043e \u2014 <b>SKNode<\/b>.<\/p>\n<p>  <b>SKNode<\/b> \u2014 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u0435\u0439\u0448\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442. \u0412 <b>SpriteKit<\/b> \u043e\u043d \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c, \u043e\u0442 \u043d\u0435\u0433\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b.<br \/>   \u0414\u0430\u0436\u0435 \u043d\u0430\u0448\u0430 \u0441\u0446\u0435\u043d\u0430 \u043f\u043e \u0441\u0443\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a\u043e\u043c \u0438 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0432\u0441\u0435\u043c\u0438 \u0435\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438. <\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u041c\u0435\u0442\u043e\u0434\u044b \u0438\u043b\u0438 \u0424\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u0430\u0448\u0435\u0433\u043e <b>SKNode<\/b>. <\/p>\n<p>  <font color=\"green\"><b>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e<\/b><\/font>  <\/p>\n<table>\n<tr>\n<td>1) <b>frame<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0444\u043e\u0440\u043c\u0443 \u043d\u0430\u0448\u0435\u0433\u043e Node.<\/i> <br \/>  2) <b>position<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043d\u0430\u0448\u0435\u0433\u043e Node.<\/i><br \/>  3) <b>zPosition<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e Node \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0438 Z.<\/i><br \/>  4) <b>zRotation<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e Node \u0432 \u0443\u0433\u043b\u0430\u0445 \u042d\u0439\u043b\u0435\u0440\u0430.<\/i><br \/>  5) <b>xScale<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u043d\u0430\u0448\u0435\u0433\u043e Node \u043f\u043e \u043e\u0441\u0438 x.<\/i><br \/>  6) <b>yScale<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u043d\u0430\u0448\u0435\u0433\u043e Node \u043f\u043e \u043e\u0441\u0438 y.<\/i><br \/>  7) <b>speed<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043d\u0430\u0448\u0435\u0433\u043e Node.<\/i><br \/>  8) <b>alpha<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0410\u043b\u044c\u0444\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u043d\u0430\u0448\u0435\u0433\u043e Node.<\/i><br \/>  9) <b>paused<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Yes, \u0435\u0441\u043b\u0438 \u043d\u0430\u0448 Node \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 Actions \u2014 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439.<\/i><br \/>  10) <b>hidden<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Yes, \u0435\u0441\u043b\u0438 \u043d\u0430\u0448 Node \u0441\u043f\u0440\u044f\u0442\u0430\u043d.<\/i><br \/>  11) <b>isUserInteractionEnabled<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Yes, \u0435\u0441\u043b\u0438 \u043d\u0430\u0448 Node \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043a\u0430\u0441\u0430\u043d\u0438\u0435.<\/i><br \/>  12) <b>parent<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442, \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 Node.(\u0415\u0441\u043b\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 nil, \u0442\u043e \u043e\u043d \u0441\u0430\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c Node )<\/i><br \/>  13) <b>children<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0441\u0435\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u043d\u0430\u0448\u0435\u0433\u043e Node.<\/i><br \/>  14) <b>name<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0438\u043c\u044f \u043d\u0430\u0448\u0435\u0433\u043e Node. (\u041e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e)<\/i><br \/>  15) <b>scene<\/b> \u2014 <i>\u0421\u0446\u0435\u043d\u0430 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u0448 Node.<\/i><br \/>  16) <b>physicsBody<\/b> \u2014 <i>\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0422\u0435\u043b\u043e \u041d\u0430\u0448\u0435\u0433\u043e Node.(\u041e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0443\u0437\u043d\u0430\u0435\u043c \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435)<\/i><br \/>  17) <b>userData<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0435\u0441\u0442\u043e \u043a\u0443\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043d\u0430\u0448\u0435\u0433\u043e Node.<\/i><br \/>  18) <b>reachConstraints<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0441\u0432\u043e\u0431\u043e\u0434\u044b \u0432 IK (Inverse Kinematics) \u2014 Action \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u0445. <\/i><br \/>  19) <b>constraints<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439.<\/i>  <\/td>\n<\/tr>\n<\/table>\n<p>  <font color=\"green\"><b>\u041c\u0435\u0442\u043e\u0434\u044b \u0438\u043b\u0438 \u0424\u0443\u043d\u043a\u0446\u0438\u0438<\/b><\/font>  <\/p>\n<table>\n<tr>\n<td>1) <b>setScale<\/b> \u2014 <i>\u0417\u0430\u0434\u0430\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431.(\u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u043f\u043e X &#038; Y)<\/i> <br \/>  2) <b>addChild<\/b> \u2014 <i>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0442\u043e\u043c\u043a\u0430.(\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0434\u0438\u043d Node \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0433\u043e)<\/i><br \/>  3) <b>insertChild<\/b> \u2014 <i>\u0418\u0437\u044a\u044f\u0442\u044c \u043f\u043e\u0442\u043e\u043c\u043a\u0430.<\/i><br \/>  4) <b>removeChildrenInArray<\/b> \u2014 <i>\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443.<\/i><br \/>  5) <b>removeAllChildren<\/b> \u2014 <i>\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432.<\/i><br \/>  6) <b>removeFromParent<\/b> \u2014 <i>\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 Node.<\/i><br \/>  7) <b>childNodeWithName<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u0442\u043e\u043c\u043a\u0430 \u043f\u043e \u0438\u043c\u0435\u043d\u0438.<\/i><br \/>  8) <b>enumerateChildNodesWithName<\/b> \u2014 <i>\u041f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0441\u0435\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0438\u043c\u0435\u043d\u0438.<\/i><br \/>  9) <b>inParentHierarchy<\/b> \u2014 <i>\u0412\u0435\u0440\u043d\u0435\u0442 Yes, \u0435\u0441\u043b\u0438 \u043d\u0430\u0448 Node \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u043b\u0435\u043d\u043e\u043c \u0418\u0435\u0440\u0430\u0440\u0445\u0438\u0438<\/i><br \/>  10) <b>runAction<\/b> \u2014 <i>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c Action \u2014 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435.<\/i><br \/>  11) <b>runAction \u2014 completion<\/b> \u2014 <i>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c Action \u2014 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0431\u043b\u043e\u043a Completion.<\/i><br \/>  12) <b>runAction \u2014 withKey<\/b> \u2014 <i>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c Action \u2014 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c.<\/i><br \/>  13) <b>hasAction<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Yes, \u0435\u0441\u043b\u0438 \u043d\u0430\u0448 Node \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 Action \u2014 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/i><br \/>  14) <b>actionForKey<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Action \u2014 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c.<\/i><br \/>  15) <b>removeActionForKey<\/b> \u2014 <i>\u0423\u0434\u0430\u043b\u0438\u0442\u044c Action \u2014 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c.<\/i><br \/>  16) <b>removeAllActions<\/b> \u2014 <i>\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 Action \u2014 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e Node.<\/i><br \/>  17) <b>containsPoint<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Yes, \u0435\u0441\u043b\u0438 \u043d\u0430\u0448\u0430 \u0442\u043e\u0447\u043a\u0430 \u043b\u0435\u0436\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0430\u0448\u0435\u0433\u043e Node\/<\/i><br \/>  18) <b>nodeAtPoint<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKNode, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0439\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u0442\u043e\u0447\u043a\u0438.<\/i><br \/>  19) <b>nodesAtPoint<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0442\u0438\u043f\u0430 SKNode \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u0442\u043e\u0447\u043a\u0438.<\/i><br \/>  20) <b>convertPoint \u2014 fromNode<\/b> \u2014 <i>\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. <\/i><br \/>  21) <b>convertPoint \u2014 toNode<\/b> \u2014 <i>\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0434\u043b\u044f \u041d\u0415 \u043d\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442.<\/i><br \/>  22) <b>intersectsNode<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Yes, \u0435\u0441\u043b\u0438 \u043d\u0430\u0448 Node \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0435\u0442\u0441\u044f \u0441 \u0433\u0440\u0430\u043d\u0438\u0446\u0435\u0439 \u0434\u0440\u0443\u0433\u043e\u0433\u043e Node <\/i><br \/>  23) <b>calculateAccumulatedFrame<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0433\u0440\u0430\u043d\u0438\u0446, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432.<\/i><br \/>  24) <b>locationInNode<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b Node, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u043a\u043e\u0441\u043d\u0443\u043b\u0438\u0441\u044c.<\/i><br \/>  25) <b>previousLocationInNode<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b Node, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u043a\u043e\u0441\u043d\u0443\u043b\u0438\u0441\u044c \u0434\u043e \u044d\u0442\u043e\u0433\u043e.<\/i><\/td>\n<\/tr>\n<\/table>\n<p>  \u0418 \u0442\u0430\u043a, \u043c\u044b \u043f\u043e\u0447\u0442\u0438 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0438, \u0434\u0440\u0443\u0437\u044c\u044f \u043f\u043e\u0442\u0435\u0440\u043f\u0438\u0442\u0435 \u0435\u0449\u0435 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c. \u041a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0443\u0442\u044c \u0432\u044b\u0448\u0435, <b>SKNode<\/b> \u043d\u0435 \u0442\u0430\u043a\u043e\u0439 \u0443\u0436 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0432 \u0441\u0432\u043e\u0435\u043c \u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438!<br \/>  \u0414\u0430 \u0438 \u0432\u043e\u043e\u0431\u0449\u0435, \u0441\u0430\u043c <b>SpriteKit <\/b> \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439, \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0435\u0440\u043f\u0435\u043d\u0438\u0435 \u0438 \u0432\u0441\u0435!<\/p>\n<p>  \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c, \u043e\u0442 <b>SKNode<\/b> \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u041e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e \u0431\u044b\u0441\u0442\u0440\u043e\u043c\u0443 \u043d\u0430 \u043d\u0438\u0445 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c:  <\/p>\n<hr\/>\n<p>  <font color=\"blue\">1) <b>SKSpriteNode<\/b> \u2014 <i>\u042d\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0421\u043f\u0440\u0430\u0439\u0442.<\/i> <br \/>  2) <b>SKShapeNode<\/b> \u2014 <i>\u042d\u0442\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0439 \u0421\u043f\u0440\u0430\u0439\u0442 \u2014 \u043e\u0431\u044a\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u0443\u044e \u0444\u043e\u0440\u043c\u0443. <\/i><br \/>  3) <b>SKFieldNode<\/b> \u2014 <i>\u042d\u0442\u043e \u043f\u043e\u043b\u044f \u0441 \u0432\u043e\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0438\u043b \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0435\u043b\u0430. <\/i><br \/>  4) <b>SKEmitterNode<\/b> \u2014 <i>\u042d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 Node(particle), \u044d\u0442\u043e \u043e\u0441\u043e\u0431\u044b\u0435 \u0447\u0430\u0441\u0442\u0438\u0446\u044b \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0440\u0443\u0442\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b. <\/i><br \/>  5) <b>SKLabelNode<\/b> \u2014 <i>\u042d\u0442\u043e Node, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0442\u0435\u043a\u0441\u0442 \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043e\u043f\u0446\u0438\u044f\u043c\u0438.<\/i><br \/>  6) <b>SKEffectNode<\/b> \u2014 <i>\u042d\u0442\u043e Node \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b \u0434\u043b\u044f \u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432.<\/i><br \/>  7) <b>SKLightNode<\/b> \u2014 <i>\u042d\u0442\u043e Node, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u0435\u0442 \u0438 \u0442\u0435\u043d\u0438 \u043a \u043d\u0430\u0448\u0435\u0439 \u0421\u0446\u0435\u043d\u0435, \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0441 \u0432\u044b\u0445\u043e\u0434\u043e\u043c Ios 8.<\/i><br \/>  8) <b>SKVideoNode<\/b> \u2014 <i>\u042d\u0442\u043e Node, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u0432 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u0435.<\/i><br \/>  9) <b>SKCropNode<\/b> \u2014 <i>\u042d\u0442\u043e Node, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b.<\/i><br \/>  10) <b>SK3DNode<\/b> \u2014 <i>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u044d\u0442\u043e Node, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c 3D \u043e\u0431\u044a\u0435\u043a\u0442\u044b.<\/i><br \/>  <\/font>  <\/p>\n<hr\/>\n<p>  <u>\u0412\u0441\u0435 \u0432\u044b\u0448\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u2014 \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043e\u043d\u0438 \u0441\u043b\u0443\u0436\u0430\u0442 \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0438\u0433\u0440 \u043d\u0430 <b>SpriteKit<\/b>.<\/u><\/p>\n<p>  \u0418 \u0442\u0430\u043a, \u043d\u0430\u0441\u0442\u0430\u043b\u043e \u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043d\u0430\u0448\u0438 <b>Node<\/b> \u0432 \u0436\u0438\u0432\u0443\u044e. \u042f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u0438\u043c\u0435\u043b\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0441\u0430\u043c\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0435 \u0438 \u043e \u0435\u0433\u043e \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u0445. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u044e\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445, \u043f\u043e\u0439\u0434\u0435\u043c \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0438 \u043d\u0430\u0447\u043d\u0435\u043c \u0441 <b>SKSpriteNode<\/b>.  <\/p>\n<hr\/>\n<p>  <\/p>\n<h1><b>\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u0437\u043e\u0440 Node<\/b><\/h1>\n<p>  <\/p>\n<hr\/>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u043e\u0431\u0437\u043e\u0440\u0443, \u043c\u044b \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u043c \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b <b>scaleMode<\/b>, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e?<br \/>  \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430, \u043c\u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0430\u043c \u0432\u0435\u0441\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u0435\u0440\u043d\u0443\u0442\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0435, \u0434\u0430 \u0438 \u0432\u0430\u043c \u043d\u0435 \u043d\u0430\u0434\u043e\u0435\u0441\u0442 \u0431\u0435\u0437 \u043a\u043e\u043d\u0446\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u044d\u043a\u0440\u0430\u043d.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0439\u0434\u0435\u043c \u043d\u0430\u0448 ViewController \u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u0432 \u043d\u0435\u043c \u044d\u0442\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e.<\/p>\n<p>  <b>Objective-c<\/b>  <\/p>\n<pre><code>scene.scaleMode = SKSceneScaleModeResizeFill;<\/code><\/pre>\n<pre><code>- (NSUInteger)supportedInterfaceOrientations {     return UIInterfaceOrientationMaskLandscape; } <\/code><\/pre>\n<p>  <b>Swift<\/b>  <\/p>\n<pre><code>scene.scaleMode = .ResizeFill<\/code><\/pre>\n<pre><code>override func supportedInterfaceOrientations() -&gt; Int {         return Int(UIInterfaceOrientationMask.Landscape.toRaw()) } <\/code><\/pre>\n<p>  <\/p>\n<hr\/>\n<p>  <\/p>\n<h4><b>SKSpriteNode<\/b><\/h4>\n<p>  <\/p>\n<hr\/>\n<p>  <b>SKSpriteNode<\/b> \u2014 \u044d\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0441\u043f\u0440\u0430\u0439\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0422\u0435\u043a\u0441\u0442\u0443\u0440\u044b (\u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435).<br \/>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043d\u0435\u0433\u043e \u0432\u0431\u043b\u0438\u0437\u0438, \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0438\u0436\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0442\u0440\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (\u0421\u043f\u0440\u0430\u0439\u0442\u0430):<br \/>  \u0421\u0438\u043d\u0438\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442, \u0421\u043f\u0440\u0430\u0439\u0442 \u0441 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u0449\u0435\u0447\u043a\u0438, \u0438 \u0421\u043f\u0440\u0430\u0439\u0442 \u0437\u0430\u0434\u043d\u0435\u0433\u043e \u0444\u043e\u043d\u0430.<br \/>  \u042f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043b\u0430 3 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0442\u0438\u043f\u0430 <b>SKSpriteNode<\/b>, \u0447\u0442\u043e \u0431\u044b \u0432\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0432 \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/57d\/067\/1d4\/57d0671d4d1816a28ed6d797d06eec1f.png\"\/><\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 Xcode \u0438 \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0438 \u043d\u0430\u0437\u043e\u0432\u0438\u0442\u0435 \u0435\u0435 <u>SpriteKitImage<\/u> (\u041c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0445\u043e\u0442\u0438\u0442\u0435)<br \/>  \u0414\u0430\u043b\u0435\u0435 \u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435 <a href=\"https:\/\/www.dropbox.com\/s\/woyp4gek65vnfdb\/SpriteKitImage.rar\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a> \u0430\u0440\u0445\u0438\u0432 \u0441 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0441\u043f\u0430\u043a\u0443\u0439\u0442\u0435 \u0435\u0433\u043e \u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u044d\u0442\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u043d\u0430\u0448\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u043f\u0430\u043f\u043a\u0443.<\/p>\n<p>  \u0412\u0435\u0441\u044c \u043a\u043e\u0434 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435, \u0437\u0434\u0435\u0441\u044c \u044f \u043e\u0431\u044a\u044f\u0441\u043d\u044e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b.<\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u043f\u0440\u0430\u0439\u0442 \u0438\u043c\u0435\u0435\u0442 \u0438\u043c\u044f <u>BackgroundSprite<\/u>, \u043f\u0435\u0440\u0435\u0434 \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <b>SKTexture<\/b>, \u0438 \u0432 \u043d\u0435\u0433\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d \u044d\u0442\u043e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442? <br \/>  \u0422\u0435\u043a\u0441\u0442\u0443\u0440\u044b, \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0435\u0449\u0435 \u0434\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u0430\u043c\u0438 \u0441\u0430\u043c\u0438\u0445 \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u0432, \u0441 \u0438\u0445 \u043f\u043e\u043c\u043e\u0449\u044c \u043c\u043e\u0436\u043d\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438, \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442-\u0436\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043f\u0440\u0430\u0439\u0442\u0430\u043c\u0438.<\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u044e. <u>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432 \u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u0432 <b>SKSpriteNode<\/b> \u0435\u0435 \u043c\u044b \u043e\u0442\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043e\u0442 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/u>, \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u043e\u0433\u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043c\u044b \u0441\u0434\u0432\u0438\u043d\u0443\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u0442\u043e \u0441\u043f\u0440\u0430\u0439\u0442 \u043d\u0430 100px, \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u0441\u0434\u0432\u0438\u043d\u0443\u043b\u0438 \u0435\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u043d\u0430 100px.<br \/>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u0437\u0430\u0434\u0430\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u043c\u044b \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <b>anchorPoint<\/b>. \u0415\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u044f \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u043f\u043e\u0434\u043e\u0433\u043d\u0430\u0442\u044c \u043d\u0430\u0448\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 \u0432\u0435\u0441\u044c \u044d\u043a\u0440\u0430\u043d. \u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u044b \u0432\u0441\u0435 \u043f\u043e\u0439\u043c\u0435\u0442\u0435!<br \/>  \u041a\u0430\u043a \u0432\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u0442\u0435, <b>anchorPoint<\/b> \u2014 \u044d\u0442\u043e \u0442\u043e\u0447\u043a\u0430 \u043e\u0442\u0441\u0447\u0435\u0442\u0430, \u0438 \u043a\u0430\u043a \u044f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b\u0430 \u0432\u044b\u0448\u0435, \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043d\u0430\u0448\u0435\u0433\u043e \u0421\u043f\u0440\u0430\u0439\u0442\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0442\u043e\u0447\u043a\u0430 \u043f\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435, \u0442\u0430\u043a \u0432\u043e\u0442 <b>anchorPoint<\/b> \u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442. \u0427\u0442\u043e \u0431\u044b \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043d\u0438\u0436\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/48c\/311\/920\/48c3119204bc4e43437eaf78bac45d0a.png\"\/><\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u044b \u0434\u0435\u043a\u0430\u0440\u0442\u043e\u0432\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u044b <b>SKSpriteNode<\/b> \u0438\u043c\u0435\u044e\u0442 <b>anchorPoint<\/b> \u0440\u0430\u0432\u043d\u044b\u0439 <b>(0.5, 0.5)<\/b>, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e \u0446\u0435\u043d\u0442\u0440\u0443. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u044f \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430 \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u0437\u0430\u0434\u0430\u043b\u0430 \u0435\u0433\u043e \u0440\u0430\u0432\u043d\u044b\u043c <b>(0, 0)<\/b>, \u0435\u0441\u043b\u0438 \u043c\u044b \u043e\u043f\u044f\u0442\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u043e\u0447\u043a\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0436\u043d\u0435\u043c \u043b\u0435\u0432\u043e\u043c \u0443\u0433\u043b\u0443, \u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0443\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u043f\u043e\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435, \u0430 \u0441\u043d\u0438\u0437\u0443 \u0441\u043b\u0435\u0432\u0430. \u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u043b\u0438 \u0441\u043a\u0430\u0436\u0443\u0442, \u0447\u0442\u043e \u043c\u044b \u0441\u0434\u0432\u0438\u043d\u0443\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u0442\u043e \u0441\u043f\u0440\u0430\u0439\u0442 \u043d\u0430 100px, \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u0441\u0434\u0432\u0438\u043d\u0443\u043b\u0438 \u0435\u0433\u043e \u0441\u0430\u043c\u0443\u044e \u043d\u0438\u0436\u043d\u0435\u044e \u0438 \u0441\u0430\u043c\u0443\u044e \u043b\u0435\u0432\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u043d\u0430 100px.<\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f, \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u0435\u0433\u043e \u0432 \u0434\u0430\u043d\u043d\u044b\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u044b\u043b\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439.<br \/>  \u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u044f? \u041f\u043e \u043d\u0435\u043c\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b. <u>\u0411\u0443\u0434\u044c\u0442\u0435 \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u044b \u0441 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0438\u043c\u0435\u043d\u0438!<\/u>.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u0437\u0430\u0434\u0430\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u043c\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u0435 \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0443 \u043d\u0435\u0435 \u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e:  <\/p>\n<table>\n<tr>\n<td><b>addChild<\/b> \u2014 <i>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0442\u043e\u043c\u043a\u0430.(\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0434\u0438\u043d Node \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0433\u043e)<\/i>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439(-\u0430\u044f) \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u0441\u0446\u0435\u043d\u0443.<\/td>\n<\/tr>\n<\/table>\n<p>  \u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b\u0430 \u0432\u044b\u0448\u0435, \u043d\u0430\u0448\u0430 \u0441\u0446\u0435\u043d\u0430 \u0442\u043e\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a\u043e\u043c \u043e\u0442 <b>SKNode<\/b> \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0434\u0438\u043d Node \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0433\u043e.<br \/>  \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a \u0436\u0435, \u0435\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435, \u0441\u043a\u0430\u0436\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0441\u043f\u0440\u0430\u0439\u0442 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439.<\/p>\n<p>  \u0412\u0442\u043e\u0440\u043e\u0439 \u0421\u043f\u0440\u0430\u0439\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>SimpleSprite<\/u>, \u043f\u0440\u0438 \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e: \u0426\u0432\u0435\u0442 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440.<br \/>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0446\u0432\u0435\u0442\u0430 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <b>UIColor<\/b>, \u043a\u0430\u043a \u044f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b\u0430 \u0432\u044b\u0448\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0438 <b>SKColor<\/b>, \u044d\u0442\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u043e\u0439.<br \/>  \u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442, \u044d\u0442\u043e <b>zPosition<\/b>, \u043a\u0430\u043a \u0432\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 <b>zPosition<\/b> \u2014 \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e Node \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0438 Z.<br \/>  \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0440\u0430\u0432\u043d\u043e <b>0<\/b>. \u041a\u043e\u0433\u0434\u0430 \u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0430 \u043d\u0430\u0448\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>SimpleSprite<\/u> \u2014 \u0432\u0442\u043e\u0440\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u0441\u044f \u043f\u043e\u0434 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438, \u0432\u0438\u0434\u0438\u043c\u043e \u0438\u0437-\u0437\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0435\u0433\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u043b\u0430 \u044d\u0442\u043e\u043c\u0443 \u0441\u043f\u0440\u0430\u0439\u0442\u0443 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <b>zPosition<\/b> \u0440\u0430\u0432\u043d\u043e\u043c\u0443 <b>1<\/b>. <br \/>  \u0415\u0449\u0435 \u043e\u0434\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435: <u>Node \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c!<\/u><br \/>  \u0422\u043e \u0435\u0441\u0442\u044c, \u0435\u0441\u043b\u0438 \u0443 \u043e\u0434\u043d\u043e\u0433\u043e <b>zPosition<\/b> \u0440\u0430\u0432\u0435\u043d 0, \u0430 \u0443 \u0434\u0440\u0443\u0433\u043e\u0433\u043e 1 \u0442\u043e \u043e\u043d\u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c!<\/p>\n<p>  \u0422\u0440\u0435\u0442\u0438\u0439 \u0421\u043f\u0440\u0430\u0439\u0442, \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>ImageSprite<\/u>, \u043f\u0440\u0438 \u0435\u0433\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u044b \u0435\u043c\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u043b\u0438 \u0438\u043c\u044f \u043d\u0430\u0448\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438.<br \/>  \u042d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e, \u0433\u0434\u0435 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <b>SKTexture<\/b>, \u043d\u043e \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442.<\/p>\n<p>  <b>Objective-c<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Objective-C<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code> #import &quot;GameScene.h&quot;  @implementation GameScene   -(void)didMoveToView:(SKView *)view {     [self SceneSetting];     [self SKSpriteNodeDemo]; \/\/ \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u043c\u0435\u0442\u043e\u0434       }   -(void)SceneSetting {      self.backgroundColor = [SKColor orangeColor];  }  -(void)SKSpriteNodeDemo {      \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKTexture \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435.     SKTexture *Texture = [SKTexture textureWithImageNamed:@&quot;desert_BG&quot;];          \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKSpriteNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKTexture, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0432\u044b\u0448\u0435.     SKSpriteNode *BackgroundSprite = [SKSpriteNode spriteNodeWithTexture:Texture];      BackgroundSprite.size = CGSizeMake(640, 320); \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440.     BackgroundSprite.position = CGPointMake(0, 0); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     BackgroundSprite.anchorPoint = CGPointMake(0, 0); \/\/\u0437\u0430\u0434\u0430\u0435\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443.     BackgroundSprite.name = @&quot;BackgroundSprite&quot;;\/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     [self addChild:BackgroundSprite];\/\/\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.          \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKSpriteNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440.     SKSpriteNode *SimpleSprite = [SKSpriteNode spriteNodeWithColor:[UIColor blueColor] size:CGSizeMake(50, 50)];     SimpleSprite.position = CGPointMake(200, 150);\/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     SimpleSprite.zPosition = 1;\/\/ \u0437\u0430\u0434\u0430\u0435\u043c  \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0438 Z.     SimpleSprite.name = @&quot;SimpleSprite&quot;;\/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     [self addChild:SimpleSprite];\/\/\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.      \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKSpriteNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435.     SKSpriteNode *ImageSprite = [SKSpriteNode spriteNodeWithImageNamed:@&quot;DerevoOpora&quot;];     ImageSprite.position = CGPointMake(250, 50);\/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     ImageSprite.size = CGSizeMake(100, 15);\/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440.     ImageSprite.name = @&quot;ImageSprite&quot;;\/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     [self addChild:ImageSprite];\/\/\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.      }   @end  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <b>Swift<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Swift<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code> import SpriteKit   class GameScene: SKScene {     override func didMoveToView(view: SKView)     {         SceneSetting()         SKSpriteNodeDemo() \/\/\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u043d\u0430\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e.     }               func SceneSetting()     {         self.backgroundColor = SKColor.orangeColor()          }          func SKSpriteNodeDemo()     {         \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e Texture \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKTexture. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435         var Texture = SKTexture(imageNamed: &quot;desert_BG&quot;)           \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e BackgroundSprite \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKSpriteNode.          \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKTexture \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438  \u0432\u044b\u0448\u0435.         var BackgroundSprite = SKSpriteNode(texture: Texture)         BackgroundSprite.size = CGSizeMake(640, 320) \/\/\u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440.         BackgroundSprite.position = CGPointMake(0, 0) \/\/\u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         BackgroundSprite.anchorPoint = CGPointMake(0, 0) \/\/\u0437\u0430\u0434\u0430\u0435\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443.         BackgroundSprite.name = &quot;BackgroundSprite&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(BackgroundSprite) \/\/\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                  \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e SimpleSprite \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKSpriteNode.          \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440.         var SimpleSprite = SKSpriteNode(color: UIColor.blueColor(), size: CGSizeMake(50, 50))         SimpleSprite.position = CGPointMake(200, 150) \/\/\u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         SimpleSprite.zPosition = 1; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c  \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0438 Z.         SimpleSprite.name = &quot;SimpleSprite&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(SimpleSprite) \/\/\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                  \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e ImageSprite \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKSpriteNode.           \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435.         var ImageSprite = SKSpriteNode(imageNamed: &quot;DerevoOpora&quot;)         ImageSprite.position = CGPointMake(250, 50)  \/\/\u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         ImageSprite.size = CGSizeMake(100, 15) \/\/\u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440.         ImageSprite.name = &quot;ImageSprite&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(ImageSprite) \/\/\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                       }           } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <font color=\"green\">\u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u0432\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e <b>SKSpriteNode<\/b> \u0438 \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0435 \u0444\u043e\u0440\u043c\u044b \u0435\u0433\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0445\u0432\u0430\u0442\u0438\u0442, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0439\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0442\u0438\u043f Node \u2014 \u044d\u0442\u043e <b>SKShapeNode<\/b>.<\/font>  <\/p>\n<hr\/>\n<p>  <\/p>\n<h4><b>SKShapeNode<\/b><\/h4>\n<p>  <\/p>\n<hr\/>\n<p>  <b>SKShapeNode<\/b> \u2014 \u042d\u0442\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0439 \u0421\u043f\u0440\u0430\u0439\u0442 \u2014 \u043e\u0431\u044a\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u0443\u044e \u0444\u043e\u0440\u043c\u0443. \u0422\u043e \u0435\u0441\u0442\u044c \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u043b\u044e\u0431\u043e\u0439 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u043e\u0439: <u>\u041e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c, \u041a\u0432\u0430\u0434\u0440\u0430\u0442, \u0422\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u042d\u043b\u043b\u0438\u043f\u0441.<\/u><br \/>  \u0412 \u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043e\u043d \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0447\u0435\u043c <b>SKSpriteNode<\/b> \u0442\u0430\u043a \u043a\u0430\u043a \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u044f \u0444\u043e\u0440\u043c\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u0430\u044f. \u041d\u043e \u043e\u043d \u043d\u0435\u0437\u0430\u043c\u0435\u043d\u0438\u043c \u0432 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0444\u043e\u0440\u043c, \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u043e\u0447\u0435\u043d\u044c \u0442\u044f\u0436\u0435\u043b\u043e \u0443\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f. <br \/>  \u041b\u0430\u0434\u043d\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043b\u043e\u0432 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0434\u0435\u043b\u0443!<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/888\/606\/d8c\/888606d8c31521560735ea0060f2b872.png\"\/><\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439(-\u043e\u043c) \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0444\u0438\u0433\u0443\u0440\u044b \u0432\u044b\u0448\u0435, \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u043d\u0438\u0436\u0435.<br \/>  <b>\u0418 \u0442\u0430\u043a, \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u044f \u0437\u0430\u043a\u043e\u043cv\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0435 \u043f\u0443\u0433\u0430\u0439\u0442\u0435\u0441\u044c, \u0435\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u043d\u0435 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.<\/b><\/p>\n<p>  <b>Objective-c<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Objective-c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code> -(void)SKShapeNodeDemo {      \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKShapeNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0440\u0430\u0434\u0438\u0443\u0441.     SKShapeNode *Circle = [SKShapeNode shapeNodeWithCircleOfRadius:20];      Circle.position = CGPointMake(50, 200); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     Circle.lineWidth = 10; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439.     Circle.strokeColor = [SKColor blueColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     Circle.fillColor = [SKColor redColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.     Circle.name = @&quot;Circle&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     [self addChild:Circle]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.           \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKShapeNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (CGRectMake).     SKShapeNode *Quad = [SKShapeNode shapeNodeWithRect:CGRectMake(0, 0, 50, 50)];     Quad.position = CGPointMake(100, 200); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     Quad.lineWidth = 4; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439.     Quad.strokeColor = [SKColor whiteColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     Quad.fillColor = [SKColor blackColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.     Quad.name = @&quot;Quad&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     [self addChild:Quad]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.            \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKShapeNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (CGRectMake).      \/\/ \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0444\u043e\u0440\u043c\u0430 \u044d\u043b\u043b\u0438\u043f\u0441\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438.     SKShapeNode *Ellips = [SKShapeNode shapeNodeWithEllipseInRect:CGRectMake(0, 0, 50, 90)];     Ellips.position = CGPointMake(200, 200); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     Ellips.lineWidth = 2; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439.     Ellips.strokeColor = [SKColor greenColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     Ellips.fillColor = [SKColor purpleColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.     Ellips.glowWidth = 5; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u044d\u0444\u0444\u0435\u043a\u0442 \u0441\u0432\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     Ellips.name = @&quot;Ellips&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     [self addChild:Ellips]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                    \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 UIBezierPath. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (CGRectMake),     \/\/ \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0434\u0438\u0443\u0441 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0443\u0433\u043b\u043e\u0432.     UIBezierPath *RoundedRectPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 50, 50) cornerRadius:12];      \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKShapeNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u0432\u044b\u0448\u0435 \u0438 \u0431\u0443\u043b\u0435\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.     \/\/ \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u043c\u0443 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e CGPath.     SKShapeNode *RoundedRect = [ SKShapeNode shapeNodeWithPath:RoundedRectPath.CGPath centered:YES];     RoundedRect.position = CGPointMake(50, 100); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     RoundedRect.lineWidth = 2;  \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439.     RoundedRect.strokeColor = [SKColor blueColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     RoundedRect.fillColor = [SKColor redColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.     RoundedRect.name = @&quot;RoundedRect&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     [self addChild:RoundedRect]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                   UIBezierPath *TrianglePath = [UIBezierPath bezierPath];  \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 UIBezierPath.     [TrianglePath moveToPoint:CGPointMake(0, 0)]; \/\/ \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438.     [TrianglePath addLineToPoint:CGPointMake(-25, -50)]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.     [TrianglePath addLineToPoint:CGPointMake(25, -50)]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.     [TrianglePath addLineToPoint:CGPointMake(0, 0)]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.         \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKShapeNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u0432\u044b\u0448\u0435 \u0438 \u0431\u0443\u043b\u0435\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.     \/\/ \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u043c\u0443 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e CGPath.     SKShapeNode *Triangle = [SKShapeNode shapeNodeWithPath:TrianglePath.CGPath centered:YES];     Triangle.position = CGPointMake(200, 70); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     Triangle.lineWidth = 2; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439.     Triangle.strokeColor = [SKColor blackColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     Triangle.fillColor = [SKColor blueColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.     Triangle.name = @&quot;Triangle&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     [self addChild:Triangle]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.           }<\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <b>Swift<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Swift<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>func SKShapeNodeDemo()     {                  \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e Circle \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKShapeNode. \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0440\u0430\u0434\u0438\u0443\u0441.         var Circle = SKShapeNode(circleOfRadius: 20)         Circle.position = CGPointMake(50, 200) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         Circle.lineWidth = 10 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0439.         Circle.strokeColor = SKColor.blueColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         Circle.fillColor = SKColor.redColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.         Circle.name = &quot;Circle&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(Circle) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                   \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e Quad \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKShapeNode.           \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (CGRectMake).         var Quad = SKShapeNode(rect: CGRectMake(0, 0, 50, 50))         Quad.position = CGPointMake(100, 200) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         Quad.lineWidth = 4 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0439.         Quad.strokeColor = SKColor.whiteColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         Quad.fillColor = SKColor.blackColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.         Quad.name = &quot;Quad&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(Quad) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                   \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e Ellips \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKShapeNode.         \/\/ \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0444\u043e\u0440\u043c\u0430 \u044d\u043b\u043b\u0438\u043f\u0441\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438.         var Ellips = SKShapeNode(ellipseInRect: CGRectMake(0, 0, 50, 90))         Ellips.position = CGPointMake(200, 200) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         Ellips.lineWidth = 2 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0439.         Ellips.strokeColor = SKColor.greenColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         Ellips.fillColor = SKColor.purpleColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.         Ellips.glowWidth = 5 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u044d\u0444\u0444\u0435\u043a\u0442 \u0441\u0432\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         Ellips.name = &quot;Ellips&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(Ellips) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                  \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e RoundedRectPath \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 UIBezierPath.         \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (CGRectMake),  \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0434\u0438\u0443\u0441 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0443\u0433\u043b\u043e\u0432.         var RoundedRectPath = UIBezierPath(roundedRect: CGRectMake(0, 0, 50, 50), cornerRadius: 12)                   \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e RoundedRect \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKShapeNode.          \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u0432\u044b\u0448\u0435 \u0438 \u0431\u0443\u043b\u0435\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.        \/\/ \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u043c\u0443 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e CGPath.         var RoundedRect = SKShapeNode(path: RoundedRectPath.CGPath, centered:true)         RoundedRect.position = CGPointMake(50, 100) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         RoundedRect.lineWidth = 2 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0439.         RoundedRect.strokeColor = SKColor.blueColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         RoundedRect.fillColor = SKColor.redColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.         RoundedRect.name = &quot;RoundedRect&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(RoundedRect) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                                                      var TrianglePath = UIBezierPath() \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 UIBezierPath.         TrianglePath.moveToPoint(CGPointMake(0, 0)) \/\/ \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438.         TrianglePath.addLineToPoint(CGPointMake(-25, -50)) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.         TrianglePath.addLineToPoint(CGPointMake(25, -50)) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.         TrianglePath.addLineToPoint(CGPointMake(0, 0)) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.                   \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e Triangle \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKShapeNode.          \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u0432\u044b\u0448\u0435 \u0438 \u0431\u0443\u043b\u0435\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.        \/\/ \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u043c\u0443 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e CGPath.         var Triangle = SKShapeNode(path: TrianglePath.CGPath, centered: true)         Triangle.position = CGPointMake(200, 70) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         Triangle.lineWidth = 2 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0439.         Triangle.strokeColor = SKColor.blackColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         Triangle.fillColor = SKColor.blueColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.         Triangle.name = &quot;Triangle&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(Triangle) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.  } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0423 <b>SKShapeNode<\/b> \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u0434\u0432\u0435 \u0433\u0440\u0443\u043f\u043f\u044b: <br \/>  <font color=\"green\"><u>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/u><\/font> \u0438\u043b\u0438 <font color=\"red\"><u>\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <b>UIBezierPath<\/b>.<\/u><\/font> <\/p>\n<p>  <b>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0445 \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438!<\/b><\/p>\n<p>  <font color=\"green\"><b><b>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/b><\/b><\/font>  <\/p>\n<hr\/>\n<p>  \u2022 <u>\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439. \u0427\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442? \u042d\u0442\u043e \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u043e\u0440\u043c\u0430 \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0430, \u0438 \u0432\u0430\u043c \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0435\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b. \u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u044b \u0432\u0441\u0435 \u043f\u043e\u0439\u043c\u0435\u0442\u0435!<\/u><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Circle<\/b><\/p>\n<div class=\"spoiler_text\">\n<table>\n<tr>\n<td>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430\u0448 \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u044d\u0442\u043e <u>Circle<\/u>. \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u043f\u0440\u0438 \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043c\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u0435\u0442\u043e\u0434 <b>shapeNodeWithCircleOfRadius<\/b> \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <b>circleOfRadius<\/b> \u0438 \u0432 \u043d\u0435\u0433\u043e(-\u043d\u0435\u0435) \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0440\u0430\u0434\u0438\u0443\u0441.<\/p>\n<p>  <b>Objective-c<\/b>  <\/p>\n<pre><code>\/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKShapeNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0440\u0430\u0434\u0438\u0443\u0441.     SKShapeNode *Circle = [SKShapeNode shapeNodeWithCircleOfRadius:20];      Circle.position = CGPointMake(50, 200); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     Circle.lineWidth = 10; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439.     Circle.strokeColor = [SKColor blueColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     Circle.fillColor = [SKColor redColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.     Circle.name = @&quot;Circle&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     [self addChild:Circle]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.<\/code><\/pre>\n<p>  <b>Swift<\/b>  <\/p>\n<pre><code>\/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e Circle \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKShapeNode. \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0440\u0430\u0434\u0438\u0443\u0441.         var Circle = SKShapeNode(circleOfRadius: 20)         Circle.position = CGPointMake(50, 200) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         Circle.lineWidth = 10 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0439.         Circle.strokeColor = SKColor.blueColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         Circle.fillColor = SKColor.redColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.         Circle.name = &quot;Circle&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(Circle) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.<\/code><\/pre>\n<p>  \u0412\u0438\u0434\u0438\u0442\u0435, \u0444\u043e\u0440\u043c\u0430 \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u0430 \u0438 \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0440\u0430\u0434\u0438\u0443\u0441.<br \/>  \u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0434\u0430\u043b\u044c\u0448\u0435, \u0430 \u0434\u0430\u043b\u0435\u0435 \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u044f \u0434\u0443\u043c\u0430\u044e \u0441 \u044d\u0442\u0438\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. <br \/>  \u041f\u043e\u0441\u043b\u0435 \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <b>lineWidth<\/b>, \u043e\u043d\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0448\u0438\u0440\u0438\u043d\u0443 \u043a\u043e\u043d\u0442\u0443\u0440\u0430 (\u041b\u0438\u043d\u0438\u0439), \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0438\u0441\u043b\u043e, \u0442\u0435\u043c \u0448\u0438\u0440\u0435 \u043a\u043e\u043d\u0442\u0443\u0440. <\/p>\n<p>  \u0414\u0430\u043b\u044c\u0448\u0435 \u0437\u0430\u0434\u0430\u0435\u043c \u0434\u0432\u0430 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e: <b>strokeColor<\/b> \u0438 <b>fillColor<\/b>.<\/p>\n<p>  \u2022 <b>strokeColor<\/b> \u2014 \u0417\u0430\u0434\u0430\u0435\u0442 \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430 (\u0446\u0432\u0435\u0442 \u043b\u0438\u043d\u0438\u0439 \u0444\u043e\u0440\u043c\u044b).<br \/>  \u2022 <b>fillColor<\/b> \u2014 \u0437\u0430\u0434\u0430\u0435\u0442 \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0444\u043e\u0440\u043c\u044b.<\/p>\n<p>  <b>\u0421 \u043f\u0435\u0440\u0432\u044b\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0432\u0441\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0441\u043e \u0432\u0442\u043e\u0440\u044b\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0437\u0430\u0433\u0432\u043e\u0437\u0434\u043a\u0430.<\/b>  <\/p>\n<table>\n<tr>\n<td>\u041a\u0430\u043a \u043d\u0430\u0432\u0435\u0440\u043d\u043e \u0432\u044b \u0443\u0441\u043f\u0435\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 5 \u0444\u0438\u0433\u0443\u0440 \u2014 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443 \u0436\u0435 \u043d\u0430 \u0441\u0446\u0435\u043d\u0435 \u043f\u0438\u0448\u0435\u0442\u0441\u044f 10 nodes? \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <b>fillColor<\/b> \u043d\u0430\u0448\u0430 \u0441\u0446\u0435\u043d\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0442\u043e\u0436\u0435 \u0437\u0430 \u043e\u0431\u044a\u0435\u043a\u0442, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 10 nodes, \u0435\u0441\u043b\u0438 \u0432\u044b \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u0435 \u0437\u0430\u0434\u0430\u043b\u0430 \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c, \u0442\u043e\u0433\u0434\u0430 \u0447\u0438\u0441\u043b\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u0441\u044f.<\/td>\n<\/tr>\n<\/table>\n<p>  <b>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0446\u0432\u0435\u0442\u0430, \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u0438 \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.<\/b>  <\/td>\n<\/tr>\n<\/table>\n<\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Quad<\/b><\/p>\n<div class=\"spoiler_text\"><b>Objective-c<\/b>  <\/p>\n<pre><code>\/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKShapeNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (CGRectMake).     SKShapeNode *Quad = [SKShapeNode shapeNodeWithRect:CGRectMake(0, 0, 50, 50)];     Quad.position = CGPointMake(100, 200); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     Quad.lineWidth = 4; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439.     Quad.strokeColor = [SKColor whiteColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     Quad.fillColor = [SKColor blackColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.     Quad.name = @&quot;Quad&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     [self addChild:Quad]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.<\/code><\/pre>\n<p>  <b>Swift<\/b>  <\/p>\n<pre><code>\/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e Quad \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKShapeNode.           \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (CGRectMake).         var Quad = SKShapeNode(rect: CGRectMake(0, 0, 50, 50))         Quad.position = CGPointMake(100, 200) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         Quad.lineWidth = 4 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0439.         Quad.strokeColor = SKColor.whiteColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         Quad.fillColor = SKColor.blackColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.         Quad.name = &quot;Quad&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(Quad) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.<\/code><\/pre>\n<p>  <\/p>\n<table>\n<tr>\n<td>\u0414\u0430\u043b\u044c\u0448\u0435 \u0443 \u043d\u0430\u0441 \u0438\u0434\u0435\u0442 \u0421\u043f\u0440\u0430\u0439\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>Quad<\/u>, \u0442\u0443\u0442 \u043f\u043e\u0447\u0442\u0438 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c \u0441\u043b\u0443\u0447\u0430\u0435. \u0422\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e (CGRectMake). <\/p>\n<pre><code>CGRectMake(0, 0, 50, 50)<\/code><\/pre>\n<p>  \u042f \u0434\u0443\u043c\u0430\u044e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437 \u0432\u0430\u0441 \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u0441 \u043d\u0435\u0439, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e \u0437\u043d\u0430\u0439\u0442\u0435: \u043e\u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. <br \/>  <b>\u041f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e: x \u2014 \u041f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0438 X, y \u2014 \u041f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0438 Y.<\/b><br \/>  <b>\u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0432\u0430 \u044d\u0442\u043e \u0428\u0438\u0440\u0438\u043d\u0430 \u0438 \u0414\u043b\u0438\u043d\u0430.<\/b><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Ellips<\/b><\/p>\n<div class=\"spoiler_text\"><b>Objective-c<\/b>  <\/p>\n<pre><code>\/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKShapeNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (CGRectMake).      \/\/ \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0444\u043e\u0440\u043c\u0430 \u044d\u043b\u043b\u0438\u043f\u0441\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438.     SKShapeNode *Ellips = [SKShapeNode shapeNodeWithEllipseInRect:CGRectMake(0, 0, 50, 90)];     Ellips.position = CGPointMake(200, 200); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     Ellips.lineWidth = 2; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439.     Ellips.strokeColor = [SKColor greenColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     Ellips.fillColor = [SKColor purpleColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.     Ellips.glowWidth = 5; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u044d\u0444\u0444\u0435\u043a\u0442 \u0441\u0432\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     Ellips.name = @&quot;Ellips&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     [self addChild:Ellips]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.<\/code><\/pre>\n<p>  <b>Swift<\/b>  <\/p>\n<pre><code>\/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e Ellips \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKShapeNode.         \/\/ \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0444\u043e\u0440\u043c\u0430 \u044d\u043b\u043b\u0438\u043f\u0441\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438.         var Ellips = SKShapeNode(ellipseInRect: CGRectMake(0, 0, 50, 90))         Ellips.position = CGPointMake(200, 200) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         Ellips.lineWidth = 2 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0439.         Ellips.strokeColor = SKColor.greenColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         Ellips.fillColor = SKColor.purpleColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.         Ellips.glowWidth = 5 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u044d\u0444\u0444\u0435\u043a\u0442 \u0441\u0432\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         Ellips.name = &quot;Ellips&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(Ellips) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.<\/code><\/pre>\n<p>  <\/p>\n<table>\n<tr>\n<td>\u0414\u0430\u043b\u0435\u0435 \u0443 \u043d\u0430\u0441 \u0438\u0434\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>Ellips<\/u>, \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0435\u0433\u043e \u0444\u043e\u0440\u043c\u0430 \u0443\u0436\u0435 \u0437\u0430\u0434\u0430\u043d\u0430 \u0438 \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438 \u044d\u0442\u043e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d. \u041e\u043d \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u043b\u043b\u0438\u043f\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0448\u0435. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043c\u0435\u0442\u043e\u0434\u0443 <b>shapeNodeWithEllipseInRect<\/b> \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <b>ellipseInRect<\/b>. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e (CGRectMake) \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0441 \u044d\u0442\u0438\u043c\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u042d\u043b\u043b\u0438\u043f\u0441.<br \/>  \u0423 \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0430, \u044d\u0442\u043e <b>glowWidth<\/b><\/p>\n<p>  \u2022 <b>glowWidth<\/b> \u2014 \u042d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u0432\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0443\u0440\u0430, \u0447\u0435\u043c \u0432\u044b\u0448\u0435 \u0447\u0438\u0441\u043b\u043e, \u0442\u0435\u043c \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u0441\u0432\u0435\u0447\u0435\u043d\u0438\u0435.  <\/td>\n<\/tr>\n<\/table>\n<\/div>\n<\/div>\n<p>  \u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u0432\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b. \u0412\u0441\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u044f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043d\u0435 \u0441\u043c\u043e\u0433\u0443, \u0434\u0430 \u0438 \u0434\u0443\u043c\u0430\u044e \u0432\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0439 \u0441\u0430\u043c\u0438\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f.  <\/p>\n<hr\/>\n<p>  <font color=\"red\"><b>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 UIBezierPath<\/b><\/font>  <\/p>\n<hr\/>\n<p>  \u2022 <u>\u041a\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <b>UIBezierPath<\/b><\/u>.<br \/>  \u0427\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442? \u0414\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0444\u043e\u0440\u043c\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u044b\u043b\u0438 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u0438 \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043d\u043e \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u0437\u0430\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a? \u0422\u0430\u043c \u043d\u0435\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438! \u0414\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043d\u0430\u043c \u0438 \u043d\u0443\u0436\u0435\u043d \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <b>UIBezierPath<\/b>.<br \/>  \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0444\u043e\u0440\u043c\u0443, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u0435 \u043d\u0430\u0448\u0435\u043c\u0443 <b>SKShapeNode<\/b> \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u043b\u0435 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442 \u0435\u0435.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">RoundedRect<\/b><\/p>\n<div class=\"spoiler_text\"><b>Objective-c<\/b>  <\/p>\n<pre><code>\/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 UIBezierPath. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (CGRectMake),     \/\/ \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0434\u0438\u0443\u0441 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0443\u0433\u043b\u043e\u0432.     UIBezierPath *RoundedRectPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 50, 50) cornerRadius:12];      \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKShapeNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u0432\u044b\u0448\u0435 \u0438 \u0431\u0443\u043b\u0435\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.     \/\/ \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u043c\u0443 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e CGPath.     SKShapeNode *RoundedRect = [ SKShapeNode shapeNodeWithPath:RoundedRectPath.CGPath centered:YES];     RoundedRect.position = CGPointMake(50, 100); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     RoundedRect.lineWidth = 2;  \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439.     RoundedRect.strokeColor = [SKColor blueColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     RoundedRect.fillColor = [SKColor redColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.     RoundedRect.name = @&quot;RoundedRect&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     [self addChild:RoundedRect]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.<\/code><\/pre>\n<p>  <b>Swift<\/b>  <\/p>\n<pre><code>\/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e RoundedRectPath \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 UIBezierPath.         \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (CGRectMake),  \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0434\u0438\u0443\u0441 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0443\u0433\u043b\u043e\u0432.         var RoundedRectPath = UIBezierPath(roundedRect: CGRectMake(0, 0, 50, 50), cornerRadius: 12)                   \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e RoundedRect \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKShapeNode.          \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u0432\u044b\u0448\u0435 \u0438 \u0431\u0443\u043b\u0435\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.        \/\/ \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u043c\u0443 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e CGPath.         var RoundedRect = SKShapeNode(path: RoundedRectPath.CGPath, centered:true)         RoundedRect.position = CGPointMake(50, 100) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         RoundedRect.lineWidth = 2 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0439.         RoundedRect.strokeColor = SKColor.blueColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         RoundedRect.fillColor = SKColor.redColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.         RoundedRect.name = &quot;RoundedRect&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(RoundedRect) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.<\/code><\/pre>\n<table>\n<tr>\n<td>\u0418\u0442\u0430\u043a, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>RoundedRect<\/u>.<br \/>  \u041f\u0435\u0440\u0435\u0434 \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <b>UIBezierPath<\/b>, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c: <br \/>  \u0444\u0443\u043d\u043a\u0446\u0438\u044e (CGRectMake) \u0438 \u0440\u0430\u0434\u0438\u0443\u0441 \u0443\u0433\u043b\u0430. \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a (\u043a\u0432\u0430\u0434\u0440\u0430\u0442) \u0441 \u0437\u0430\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0443\u0433\u043b\u0430\u043c\u0438. <\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043d\u0430\u0448 <b>UIBezierPath<\/b> \u043e\u0431\u044a\u0435\u043a\u0442 \u0433\u043e\u0442\u043e\u0432, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0430\u0448 <b>SKShapeNode<\/b>, \u0447\u0442\u043e \u043c\u044b \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u0434\u0435\u043b\u0430\u0435\u043c.<br \/>  \u041c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0435\u0433\u043e \u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 <b>UIBezierPath<\/b>, \u0438 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <b>centered<\/b>.<br \/>  <u>\u0422\u0443\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <b>CGPath<\/b>, \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u043e\u0441\u0442 \u043c\u0435\u0436\u0434\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438; \u043d\u0435 \u043b\u043e\u043c\u0430\u0439\u0442\u0435 \u043d\u0430\u0434 \u044d\u0442\u0438\u043c \u0433\u043e\u043b\u043e\u0432\u0443, \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u043d\u0430\u0439\u0442\u0435 \u0447\u0442\u043e \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c!<\/u><br \/>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u2014 \u044d\u0442\u043e <b>centered<\/b> \u0437\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0443\u0436\u0435\u043d, \u044f \u043e\u0431\u044a\u044f\u0441\u043d\u044e \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435!<br \/>  \u0418\u0442\u0430\u043a, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0432\u044b \u043d\u0430\u0432\u0435\u0440\u043d\u043e \u0443\u0436\u0435 \u043f\u043e\u043d\u044f\u043b\u0438 \u0438 \u0431\u0435\u0437 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0439. \u0415\u0441\u043b\u0438 \u0434\u0430, \u0442\u043e\u0433\u0434\u0430 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0443.<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Triangle<\/b><\/p>\n<div class=\"spoiler_text\"><b>Objective-c<\/b>  <\/p>\n<pre><code>     UIBezierPath *TrianglePath = [UIBezierPath bezierPath];  \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 UIBezierPath.     [TrianglePath moveToPoint:CGPointMake(0, 0)]; \/\/ \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438.     [TrianglePath addLineToPoint:CGPointMake(-25, -50)]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.     [TrianglePath addLineToPoint:CGPointMake(25, -50)]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.     [TrianglePath addLineToPoint:CGPointMake(0, 0)]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.         \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKShapeNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u0432\u044b\u0448\u0435 \u0438 \u0431\u0443\u043b\u0435\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.     \/\/ \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u043c\u0443 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e CGPath.     SKShapeNode *Triangle = [SKShapeNode shapeNodeWithPath:TrianglePath.CGPath centered:YES];     Triangle.position = CGPointMake(200, 70); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     Triangle.lineWidth = 2; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439.     Triangle.strokeColor = [SKColor blackColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     Triangle.fillColor = [SKColor blueColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.     Triangle.name = @&quot;Triangle&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     [self addChild:Triangle]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.<\/code><\/pre>\n<p>  <b>Swift<\/b>  <\/p>\n<pre><code>         var TrianglePath = UIBezierPath() \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 UIBezierPath.         TrianglePath.moveToPoint(CGPointMake(0, 0)) \/\/ \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438.         TrianglePath.addLineToPoint(CGPointMake(-25, -50)) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.         TrianglePath.addLineToPoint(CGPointMake(25, -50)) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.         TrianglePath.addLineToPoint(CGPointMake(0, 0)) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.                   \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e Triangle \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKShapeNode.          \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u0432\u044b\u0448\u0435 \u0438 \u0431\u0443\u043b\u0435\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.        \/\/ \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u043c\u0443 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e CGPath.         var Triangle = SKShapeNode(path: TrianglePath.CGPath, centered: true)         Triangle.position = CGPointMake(200, 70) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         Triangle.lineWidth = 2 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0439.         Triangle.strokeColor = SKColor.blackColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         Triangle.fillColor = SKColor.blueColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.         Triangle.name = &quot;Triangle&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(Triangle) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.<\/code><\/pre>\n<table>\n<tr>\n<td>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u043c\u0435\u0435\u0442 \u0438\u043c\u044f <b>Triangle<\/b>. \u042d\u0442\u043e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u043e\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <b>UIBezierPath<\/b> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0435\u0433\u043e \u043f\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0439. \u0418\u0442\u0430\u043a, \u043a\u0430\u043a \u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <b>UIBezierPath<\/b>, \u043a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0438\u0437 \u043a\u043e\u0434\u0430 \u043e\u043d \u0438\u043c\u0435\u0435\u0442 \u0438\u043c\u044f <u>TrianglePath<\/u>.<br \/>  \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u043c\u044b \u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c, \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445 \u043b\u0438\u0431\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u0410 \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435! \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u043d\u0430\u043c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443, \u0447\u0442\u043e \u043c\u044b \u0438 \u0434\u0435\u043b\u0430\u0435\u043c. \u041c\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <b>moveToPoint<\/b> \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <b>UIBezierPath<\/b>. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 (\u0432\u0435\u0440\u0448\u0438\u043d\u0443), \u043c\u044b \u043e\u0442 \u043d\u0435\u0435 \u0440\u0438\u0441\u0443\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u0432\u043d\u0438\u0437 \u0432\u043b\u0435\u0432\u043e, \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c \u0442\u043e\u0447\u0435\u043a, \u043b\u0438\u043d\u0438\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <b>addLineToPoint<\/b>. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043f\u0435\u0440\u0432\u0443\u044e \u043b\u0438\u043d\u0438\u044e, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443, \u043d\u043e \u0432\u043f\u0440\u0430\u0432\u043e \u0438 \u043f\u043e\u0441\u043b\u0435 \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u043a \u0432\u0435\u0440\u0448\u0438\u043d\u0435 (\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435). \u0418 \u0432\u0441\u0435 \u043d\u0430\u0448 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0433\u043e\u0442\u043e\u0432. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>TrianglePath<\/u>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <b>SKShapeNode<\/b> \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>Triangle<\/u> \u0438 \u043a\u0430\u043a \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0435\u0433\u043e \u043a\u0430\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0438 \u00ab\u0432\u0443\u0430\u043b\u044f\u00bb \u043d\u0430\u0448 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0433\u043e\u0442\u043e\u0432!<\/td>\n<\/tr>\n<\/table><\/div>\n<\/div>\n<p>  \u2022<font color=\"blue\"><b>\u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e\u043b\u043d\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u0442\u0438\u043f\u0430 <b>UIBezierPath<\/b>, \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043d\u0430\u0439\u0442\u0438 \u0438 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c!<\/b><\/font>   <\/p>\n<hr\/>\n<p>  \u042f \u043e\u0431\u0435\u0449\u0430\u043b\u0430 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0443\u0436\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <b>centered<\/b>. \u042f \u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0430 \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u043d\u044c\u0448\u0435, \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043f\u043e\u043d\u044f\u043b\u0438 \u0431\u0430\u0437\u043e\u0432\u043e\u0435 \u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0442\u0438\u043f\u0430 <b>SKShapeNode<\/b>. \u0422\u0430\u043a \u0432\u043e\u0442, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <b>centered<\/b>, \u0435\u0441\u043b\u0438 \u043e\u043d \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u041f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0442\u043e\u0433\u0434\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0442\u0438\u043f\u0430 <b>SKShapeNode<\/b> \u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u0441 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b. \u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u043a\u043e\u0433\u0434\u0430 \u044f \u0432\u0430\u043c \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u043b\u0430 \u043f\u0440\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0442\u0438\u043f\u0430 <b>SKSpriteNode<\/b>, \u044f \u0432\u0430\u043c \u0441\u043a\u0430\u0437\u0430\u043b\u0430, \u0447\u0442\u043e \u0438\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0442\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b. \u0422\u0430\u043a \u0432\u043e\u0442, \u0435\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <b>centered<\/b> \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u043d, \u0442\u043e \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b. <\/p>\n<p>  \u041e\u0442\u0441\u044e\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0432\u043f\u043e\u043b\u043d\u0435 \u0443\u043c\u0435\u0441\u0442\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441, \u043a\u0430\u043a \u0442\u043e\u0433\u0434\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0442\u0438\u043f\u0430 <b>SKShapeNode<\/b>, \u0432\u0435\u0434\u044c \u043d\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0436\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 <b>centered<\/b>?<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/b8b\/364\/483\/b8b364483c37fb9c1332bfb92dd32c7a.png\"\/><\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>Quad<\/u>. \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0435\u0433\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c (CGRectMake). \u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b\u0430 \u0440\u0430\u043d\u044c\u0448\u0435 \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0438 \u0440\u0430\u0437\u043c\u0435\u0440.<\/p>\n<pre><code>CGRectMake(0, 0, 50, 50).<\/code><\/pre>\n<p>  \u0412 \u043d\u0435\u0439 \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u0435\u0435 <b>origin<\/b> \u043f\u043e\u0437\u0438\u0446\u0438\u044e (x, y), \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0448\u0438\u0440\u0438\u043d\u0443 \u0438 \u0434\u043b\u0438\u043d\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.<br \/>  \u0415\u0441\u043b\u0438 \u0441 \u0448\u0438\u0440\u0438\u043d\u043e\u0439 \u0438 \u0434\u043b\u0438\u043d\u043e\u0439 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0442\u043e \u0441 <b>origin<\/b> \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0443\u0442\u043d\u043e. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0442\u0438\u043f\u0430 <b>SKShapeNode<\/b> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0438\u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0430\u0447\u0435, \u0447\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0442\u0438\u043f\u0430 <b>SKSpriteNode<\/b> \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0442\u0441\u0447\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0448\u0435: \u0438\u0442\u0430\u043a, \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>Quad<\/u> \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u043b\u0438 \u0435\u043c\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <b>CGRectMake(0, 0, 50, 50)<\/b>. \u041a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 <b>origin<\/b> \u0440\u0430\u0432\u0435\u043d (0, 0) \u0438\u0437 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u043d\u043e \u0447\u0442\u043e \u043e\u0442\u0441\u0447\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0433\u043b\u0430.<br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u043d\u0430\u0448 <b>origin<\/b> \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0448\u0443 \u043f\u0440\u0435\u0436\u043d\u0435\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043d\u043e \u0443\u0436\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438.<\/p>\n<pre><code>CGRectMake(-25, -25, 50, 50).<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/9c3\/ca5\/8a4\/9c3ca58a4d8ddfdb1b6213e4e22c0766.png\"\/><\/p>\n<p>  \u0418 \u0447\u0442\u043e \u043c\u044b \u0432\u0438\u0434\u0438\u043c? \u041d\u0430\u0448 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043c\u0435\u0435\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u043e\u0442\u0441\u0447\u0435\u0442\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0441 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b.<br \/>  \u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u043c\u0435\u0435\u0442 \u0442\u0430\u043a\u0443\u044e \u0436\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043e\u0442\u0441\u0447\u0435\u0442\u0430, \u043a\u0430\u043a \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b <b>SKSpriteNode<\/b>, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0442\u0441\u0447\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b.<\/p>\n<p>  \u2022 \u0412\u044b\u0445\u043e\u0434\u0438\u0442 \u0442\u043e, \u0447\u0442\u043e <b>origin<\/b> \u0438\u0433\u0440\u0430\u0435\u0442 \u0440\u043e\u043b\u044c \u044f\u043a\u043e\u0440\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0433\u043e \u043d\u0430 \u0442\u043e\u0442, \u0447\u0442\u043e \u043c\u044b \u0432\u0438\u0434\u0435\u043b\u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0442\u0438\u043f\u0430 <b>SKSpriteNode<\/b>.<\/p>\n<p>  <u>\u0423 \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441, \u043f\u043e\u0447\u0435\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b <b>origin<\/b> \u044f \u0443\u043a\u0430\u0437\u0430\u043b\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 (-25, -25)?<\/u><\/p>\n<p>  \u2022 \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u0440\u0430\u0432\u0435\u043d (50, 50), \u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0435\u0433\u043e \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u0442\u043e\u0447\u043a\u0430 \u0440\u0430\u0432\u043d\u0430 (50\/2, 50\/2), \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0448\u0438\u0440\u0438\u043d\u044b \u0438 \u0434\u043b\u0438\u043d\u044b!<\/p>\n<p>  \u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0442\u0438\u043f\u0430 <b>SKShapeNode<\/b> \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0440\u0430\u0432\u043d\u0430 (0, 0), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0433\u043b\u0430, <br \/>  \u043d\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u0441\u0434\u0432\u0438\u043d\u0435\u043c \u0435\u0433\u043e \u043d\u0430 (-25, -25), \u0442\u043e \u0435\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u043e\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0438 \u043e\u0442\u0441\u0447\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435. <\/p>\n<p>  \u2022 \u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u043b\u0438 \u0441\u043a\u0430\u0436\u0443\u0442, \u0447\u0442\u043e \u043c\u044b \u0441\u0434\u0432\u0438\u043d\u0443\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u0442\u043e \u0441\u043f\u0440\u0430\u0439\u0442 \u043d\u0430 100px, \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u0441\u0434\u0432\u0438\u043d\u0443\u043b\u0438 \u0435\u0433\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u044e \u0442\u043e\u0447\u043a\u0443 \u043d\u0430 100px.<\/p>\n<p>  <b>\u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u044f \u0434\u0443\u043c\u0430\u044e \u0432\u0430\u043c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f <b>SKShapeNode<\/b>. \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0432 \u043d\u0435\u043c \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0440\u0443\u0434\u043d\u043e\u0433\u043e, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u043e\u043d\u044f\u043b\u0438 \u043a\u0430\u043a\u0438\u0435 \u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u043d\u043e, \u0434\u0430\u043b\u0435\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0444\u0438\u0437\u0438\u043a\u0438 \u0432\u044b \u0432\u0441\u0435 \u043f\u043e\u0439\u043c\u0435\u0442\u0435. \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u043e\u0432\u0435\u0442: \u0447\u0442\u043e \u0431\u044b \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u0421\u043f\u0440\u0430\u0439\u0442 -\u043e\u0431\u044a\u0435\u043a\u0442, \u0438\u0437\u0443\u0447\u0438\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0448\u0435 <b>UIBezierPath<\/b> \u0438 \u0432\u0441\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u0439\u0442\u0435! <\/b><\/p>\n<p>  <b>Objective-c<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Objective-c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code> #import &quot;GameScene.h&quot;  @implementation GameScene   -(void)didMoveToView:(SKView *)view {     [self SceneSetting];     \/\/[self SKSpriteNodeDemo];     [self SKShapeNodeDemo];      }   -(void)SceneSetting {        self.backgroundColor = [SKColor orangeColor];      }  -(void)SKSpriteNodeDemo {          SKTexture *Texture = [SKTexture textureWithImageNamed:@&quot;desert_BG&quot;];               SKSpriteNode *BackgroundSprite = [SKSpriteNode spriteNodeWithTexture:Texture];     BackgroundSprite.size = CGSizeMake(640, 320);     BackgroundSprite.position = CGPointMake(0, 0);     BackgroundSprite.anchorPoint = CGPointMake(0, 0);     BackgroundSprite.name = @&quot;BackgroundSprite&quot;;     [self addChild:BackgroundSprite];                    SKSpriteNode *SimpleSprite = [SKSpriteNode spriteNodeWithColor:[UIColor blueColor] size:CGSizeMake(50, 50)];     SimpleSprite.position = CGPointMake(200, 150);     SimpleSprite.zPosition = 1;     SimpleSprite.name = @&quot;SimpleSprite&quot;;     [self addChild:SimpleSprite];           SKSpriteNode *ImageSprite = [SKSpriteNode spriteNodeWithImageNamed:@&quot;DerevoOpora&quot;];     ImageSprite.position = CGPointMake(250, 50);     ImageSprite.size = CGSizeMake(100, 15);     ImageSprite.name = @&quot;ImageSprite&quot;;     [self addChild:ImageSprite];      }   -(void)SKShapeNodeDemo {     SKShapeNode *Circle = [SKShapeNode shapeNodeWithCircleOfRadius:20];     Circle.position = CGPointMake(50, 200);     Circle.lineWidth = 10;     Circle.strokeColor = [SKColor blueColor];     Circle.fillColor = [SKColor redColor];     Circle.name = @&quot;Circle&quot;;     [self addChild:Circle];          SKShapeNode *Quad = [SKShapeNode shapeNodeWithRect:CGRectMake(0, 0, 50, 50)];     Quad.position = CGPointMake(100, 200);     Quad.lineWidth = 4;     Quad.strokeColor = [SKColor whiteColor];     Quad.fillColor = [SKColor blackColor];     Quad.name = @&quot;Quad&quot;;     [self addChild:Quad];               SKShapeNode *Ellips = [SKShapeNode shapeNodeWithEllipseInRect:CGRectMake(0, 0, 50, 90)];     Ellips.position = CGPointMake(200, 200);     Ellips.lineWidth = 2;     Ellips.strokeColor = [SKColor greenColor];     Ellips.fillColor = [SKColor purpleColor];     Ellips.glowWidth = 5;     Ellips.name = @&quot;Ellips&quot;;     [self addChild:Ellips];                         UIBezierPath *RoundedRectPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 50, 50) cornerRadius:12];          SKShapeNode *RoundedRect = [ SKShapeNode shapeNodeWithPath:RoundedRectPath.CGPath centered:YES];     RoundedRect.position = CGPointMake(50, 100);     RoundedRect.lineWidth = 2;     RoundedRect.strokeColor = [SKColor blueColor];     RoundedRect.fillColor = [SKColor redColor];     RoundedRect.name = @&quot;RoundedRect&quot;;     [self addChild:RoundedRect];                    UIBezierPath *TrianglePath = [UIBezierPath bezierPath];     [TrianglePath moveToPoint:CGPointMake(0, 0)];     [TrianglePath addLineToPoint:CGPointMake(-25, -50)];     [TrianglePath addLineToPoint:CGPointMake(25, -50)];     [TrianglePath addLineToPoint:CGPointMake(0, 0)];              SKShapeNode *Triangle = [SKShapeNode shapeNodeWithPath:TrianglePath.CGPath centered:YES];     Triangle.position = CGPointMake(200, 70);     Triangle.lineWidth = 2;     Triangle.strokeColor = [SKColor blackColor];     Triangle.fillColor = [SKColor blueColor];     Triangle.name = @&quot;Triangle&quot;;     [self addChild:Triangle];           }  @end   <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <b>Swift<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Swift<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code> import SpriteKit   class GameScene: SKScene {     override func didMoveToView(view: SKView)     {         SceneSetting()         \/\/SKSpriteNodeDemo()         SKShapeNodeDemo()              }               func SceneSetting()     {         self.backgroundColor = SKColor.orangeColor()          }                        func SKSpriteNodeDemo()     {                  var Texture = SKTexture(imageNamed: &quot;desert_BG&quot;)                  var BackgroundSprite = SKSpriteNode(texture: Texture)         BackgroundSprite.size = CGSizeMake(640, 320)         BackgroundSprite.position = CGPointMake(0, 0)         BackgroundSprite.anchorPoint = CGPointMake(0, 0)         BackgroundSprite.name = &quot;BackgroundSprite&quot;         self.addChild(BackgroundSprite)                           var SimpleSprite = SKSpriteNode(color: UIColor.blueColor(), size: CGSizeMake(50, 50))         SimpleSprite.position = CGPointMake(200, 150)         SimpleSprite.zPosition = 1;         SimpleSprite.name = &quot;SimpleSprite&quot;         self.addChild(SimpleSprite)                           var ImageSprite = SKSpriteNode(imageNamed: &quot;DerevoOpora&quot;)         ImageSprite.position = CGPointMake(250, 50)         ImageSprite.size = CGSizeMake(100, 15)         ImageSprite.name = &quot;ImageSprite&quot;         self.addChild(ImageSprite)                       }               func SKShapeNodeDemo()     {                  var Circle = SKShapeNode(circleOfRadius: 20)         Circle.position = CGPointMake(50, 200)         Circle.lineWidth = 10         Circle.strokeColor = SKColor.blueColor()         Circle.fillColor = SKColor.redColor()         Circle.name = &quot;Circle&quot;         self.addChild(Circle)                           var Quad = SKShapeNode(rect: CGRectMake(0, 0, 50, 50))         Quad.position = CGPointMake(100, 200)         Quad.lineWidth = 4         Quad.strokeColor = SKColor.whiteColor()         Quad.fillColor = SKColor.blackColor()         Quad.name = &quot;Quad&quot;         self.addChild(Quad)                           var Ellips = SKShapeNode(ellipseInRect: CGRectMake(0, 0, 50, 90))         Ellips.position = CGPointMake(200, 200)         Ellips.lineWidth = 2         Ellips.strokeColor = SKColor.greenColor()         Ellips.fillColor = SKColor.purpleColor()         Ellips.glowWidth = 5         Ellips.name = &quot;Ellips&quot;         self.addChild(Ellips)                           var RoundedRectPath = UIBezierPath(roundedRect: CGRectMake(0, 0, 50, 50), cornerRadius: 12)                  var RoundedRect = SKShapeNode(path: RoundedRectPath.CGPath, centered:true)         RoundedRect.position = CGPointMake(50, 100)         RoundedRect.lineWidth = 2         RoundedRect.strokeColor = SKColor.blueColor()         RoundedRect.fillColor = SKColor.redColor()         RoundedRect.name = &quot;RoundedRect&quot;         self.addChild(RoundedRect)                                                      var TrianglePath = UIBezierPath()         TrianglePath.moveToPoint(CGPointMake(0, 0))         TrianglePath.addLineToPoint(CGPointMake(-25, -50))         TrianglePath.addLineToPoint(CGPointMake(25, -50))         TrianglePath.addLineToPoint(CGPointMake(0, 0))                           var Triangle = SKShapeNode(path: TrianglePath.CGPath, centered: true)         Triangle.position = CGPointMake(200, 70)         Triangle.lineWidth = 2         Triangle.strokeColor = SKColor.blackColor()         Triangle.fillColor = SKColor.blueColor()         Triangle.name = &quot;Triangle&quot;         self.addChild(Triangle)                                }           }   <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<hr\/>\n<p>  <\/p>\n<h4><b>SKLabelNode<\/b><\/h4>\n<p>  <\/p>\n<hr\/>\n<p>  <font color=\"blue\"><b><b>SKLabelNode<\/b> \u2014 \u042d\u0442\u043e \u0421\u043f\u0440\u0430\u0439\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u0435. \u041f\u0440\u0438\u0447\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438: <br \/>  <u>\u0420\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430, \u0446\u0432\u0435\u0442 \u0448\u0440\u0438\u0444\u0442\u0430, \u0438\u043c\u044f \u0448\u0440\u0438\u0444\u0442\u0430. <\/u><br \/>  \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0448\u0440\u0438\u0444\u0442\u0430 \u043a\u0430\u043a \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438, \u0442\u0430\u043a \u0438 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438. \u0412\u043f\u0440\u043e\u0447\u0435\u043c \u0432\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u0441\u0435 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0441\u0430\u043c\u0438.<\/b><\/font><\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/4da\/97d\/4d4\/4da97d4d491f59c6598bbdcb553e9603.png\"\/><\/p>\n<p>  <b>Objective-c<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Objective C<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>-(void)SKLabelNodeDemo {     \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKLabelNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u0448\u0440\u0438\u0444\u0442\u0430.     SKLabelNode *First = [SKLabelNode labelNodeWithFontNamed:@&quot;Chalkduster&quot;];     First.position = CGPointMake(280, 200); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     First.fontSize = 25; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430.     First.fontColor = [SKColor whiteColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0448\u0440\u0438\u0444\u0442\u0430.     First.color = [SKColor blueColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 (\u041d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 \u0441 colorBlendFactor).     First.colorBlendFactor = 0.5; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c colorBlendFactor (0.0 - 1.0)     First.text = @&quot;Habra Habr!&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442.     First.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeCenter; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u0430.     First.name = @&quot;First&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u0441\u043f\u0440\u0430\u0439\u0442\u0430     [self addChild:First]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u0441\u043f\u0440\u0430\u0439\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.               \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKLabelNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442.     SKLabelNode *Second = [SKLabelNode labelNodeWithText:@&quot;\u0420\u043e\u043c\u0430\u043d\u043e\u0432-\u041a\u043e\u0448\u043a\u0438\u043d-\u0417\u0430\u0445\u0430\u0440\u044c\u0438\u043d-\u0413\u043e\u043b\u0448\u0442\u0435\u0439\u043d-\u0413\u043e\u0442\u0442\u043e\u0440\u043f\u0441\u043a\u0438\u0439&quot;];     Second.fontName = @&quot;Chalkboard SE Bold&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u0448\u0440\u0438\u0444\u0442\u0430.     Second.fontColor = [SKColor blackColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0448\u0440\u0438\u0444\u0442\u0430.     Second.position = CGPointMake(280, 50); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     Second.fontSize = 20;  \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430.     Second.name = @&quot;Second&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u0441\u043f\u0440\u0430\u0439\u0442\u0430     [self addChild:Second]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u0441\u043f\u0440\u0430\u0439\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <b>Swift<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Swift<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>func SKLabelNodeDemo()     {         \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e First \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKLabelNode. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u0448\u0440\u0438\u0444\u0442\u0430.         var First = SKLabelNode(fontNamed: &quot;Chalkduster&quot;)         First.position = CGPointMake(280, 200)  \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         First.fontSize = 25; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430.         First.fontColor = SKColor.whiteColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0448\u0440\u0438\u0444\u0442\u0430.         First.color = SKColor.blueColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 (\u041d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 \u0441 colorBlendFactor).         First.colorBlendFactor = 0.5 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c colorBlendFactor (0.0 - 1.0)         First.text = &quot;Habra Habr!&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442.         First.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.Center  \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u0430.         First.name = &quot;First&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u0441\u043f\u0440\u0430\u0439\u0442\u0430         self.addChild(First) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u0441\u043f\u0440\u0430\u0439\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                           \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e Second \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKLabelNode. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442.         var Second = SKLabelNode(text: &quot;\u0420\u043e\u043c\u0430\u043d\u043e\u0432-\u041a\u043e\u0448\u043a\u0438\u043d-\u0417\u0430\u0445\u0430\u0440\u044c\u0438\u043d-\u0413\u043e\u043b\u0448\u0442\u0435\u0439\u043d-\u0413\u043e\u0442\u0442\u043e\u0440\u043f\u0441\u043a\u0438\u0439&quot;)         Second.fontName = &quot;Chalkboard SE Bold&quot;  \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u0448\u0440\u0438\u0444\u0442\u0430.         Second.fontColor = SKColor.blackColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0448\u0440\u0438\u0444\u0442\u0430.         Second.position = CGPointMake(280, 50) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         Second.fontSize = 20 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430.         Second.name = &quot;Second&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u0441\u043f\u0440\u0430\u0439\u0442\u0430         self.addChild(Second) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u0441\u043f\u0440\u0430\u0439\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                                } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0448\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c 2 \u0441\u043f\u0440\u0430\u0439\u0442\u0430. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0438\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435.<\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u0421\u043f\u0440\u0430\u0439\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>First<\/u>. \u041f\u0440\u0438 \u0435\u0433\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u0428\u0440\u0438\u0444\u0442\u0430. \u0421\u043f\u0440\u0430\u0439\u0442 \u0442\u0438\u043f\u0430 <b>SKLabelNode<\/b> \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0448\u0440\u0438\u0444\u0442\u044b. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f \u043f\u0435\u0440\u0435\u0434\u0430\u044e \u0448\u0440\u0438\u0444\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <font color=\"green\">Chalkduster<\/font>. \u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430:  <\/p>\n<table>\n<tr>\n<td>\u2022 <b>fontSize<\/b> \u2014 \u0417\u0430\u0434\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430. \u041b\u044e\u0431\u043e\u0435 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e.<br \/>  \u2022 <b>fontColor<\/b> \u2014 \u0417\u0430\u0434\u0430\u0435\u0442 \u0446\u0432\u0435\u0442 \u0448\u0440\u0438\u0444\u0442\u0430.<br \/>  \u2022 <b>color<\/b> \u2014 \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 (\u041d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 \u0441 colorBlendFactor).<br \/>  \u2022 <b>colorBlendFactor<\/b> \u2014 \u0421\u043c\u0435\u0448\u0438\u0432\u0430\u0435\u0442 \u0446\u0432\u0435\u0442 \u0448\u0440\u0438\u0444\u0442\u0430. \u041e\u043d \u0431\u0435\u0440\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <b>color<\/b> \u0438 \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0435\u0442 \u0446\u0432\u0435\u0442\u0430. \u0418\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0441\u043c\u0435\u0441\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0447\u0438\u0441\u043b\u0430 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 (0.0 \u2014 1.0).<br \/>  \u2022 <b>text<\/b> \u2014 \u0417\u0430\u0434\u0430\u0435\u0442 \u0442\u0435\u043a\u0441\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c.<br \/>  \u2022 <b>horizontalAlignmentMode<\/b> \u2014 \u0417\u0430\u0434\u0430\u0435\u0442 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438. \u0415\u0441\u0442\u044c \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0437\u0430\u0434\u0430\u0435\u0442 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438.<\/td>\n<\/tr>\n<\/table>\n<p>  <b>\u041f\u043e\u0441\u043b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u044d\u0442\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432, \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0448\u0435.<\/b><\/p>\n<p>  \u0412\u0442\u043e\u0440\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u043c\u0435\u0435\u0442 \u0438\u043c\u044f <u>Second<\/u>. \u041f\u0440\u0438 \u0435\u0433\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u044b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u043e\u0442\u0438\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c, \u0430 \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e. \u0415\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0432\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u0442\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u043f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c\u0443 \u0421\u043f\u0440\u0430\u0439\u0442\u0443, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0442\u0435\u0440\u044f\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0438 \u043f\u043e\u0439\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p>  <b>Objective-c<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Objective-c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code> #import &quot;GameScene.h&quot;  @implementation GameScene   -(void)didMoveToView:(SKView *)view {       [self SceneSetting];     \/\/[self SKSpriteNodeDemo];     \/\/[self SKShapeNodeDemo];       [self SKLabelNodeDemo];       }   -(void)SceneSetting {        self.backgroundColor = [SKColor orangeColor];     }     -(void)SKSpriteNodeDemo {          SKTexture *Texture = [SKTexture textureWithImageNamed:@&quot;desert_BG&quot;];               SKSpriteNode *BackgroundSprite = [SKSpriteNode spriteNodeWithTexture:Texture];     BackgroundSprite.size = CGSizeMake(640, 320);     BackgroundSprite.position = CGPointMake(0, 0);     BackgroundSprite.anchorPoint = CGPointMake(0, 0);     BackgroundSprite.name = @&quot;BackgroundSprite&quot;;     [self addChild:BackgroundSprite];                    SKSpriteNode *SimpleSprite = [SKSpriteNode spriteNodeWithColor:[UIColor blueColor] size:CGSizeMake(50, 50)];     SimpleSprite.position = CGPointMake(200, 150);     SimpleSprite.zPosition = 1;     SimpleSprite.name = @&quot;SimpleSprite&quot;;     [self addChild:SimpleSprite];           SKSpriteNode *ImageSprite = [SKSpriteNode spriteNodeWithImageNamed:@&quot;DerevoOpora&quot;];     ImageSprite.position = CGPointMake(250, 50);     ImageSprite.size = CGSizeMake(100, 15);     ImageSprite.name = @&quot;ImageSprite&quot;;     [self addChild:ImageSprite];      }   -(void)SKShapeNodeDemo {     SKShapeNode *Circle = [SKShapeNode shapeNodeWithCircleOfRadius:20];     Circle.position = CGPointMake(50, 200);     Circle.lineWidth = 10;     Circle.strokeColor = [SKColor blueColor];     Circle.fillColor = [SKColor redColor];     Circle.name = @&quot;Circle&quot;;     [self addChild:Circle];          SKShapeNode *Quad = [SKShapeNode shapeNodeWithRect:CGRectMake(0, 0, 50, 50)];     Quad.position = CGPointMake(100, 200);     Quad.lineWidth = 4;     Quad.strokeColor = [SKColor whiteColor];     Quad.fillColor = [SKColor blackColor];     Quad.name = @&quot;Quad&quot;;     [self addChild:Quad];                    SKShapeNode *Ellips = [SKShapeNode shapeNodeWithEllipseInRect:CGRectMake(0, 0, 50, 90)];     Ellips.position = CGPointMake(200, 200);     Ellips.lineWidth = 2;     Ellips.strokeColor = [SKColor greenColor];     Ellips.fillColor = [SKColor purpleColor];     Ellips.glowWidth = 5;     Ellips.name = @&quot;Ellips&quot;;     [self addChild:Ellips];                         UIBezierPath *RoundedRectPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 50, 50) cornerRadius:12];          SKShapeNode *RoundedRect = [ SKShapeNode shapeNodeWithPath:RoundedRectPath.CGPath centered:YES];     RoundedRect.position = CGPointMake(50, 100);     RoundedRect.lineWidth = 2;     RoundedRect.strokeColor = [SKColor blueColor];     RoundedRect.fillColor = [SKColor redColor];     RoundedRect.name = @&quot;RoundedRect&quot;;     [self addChild:RoundedRect];                                       UIBezierPath *TrianglePath = [UIBezierPath bezierPath];     [TrianglePath moveToPoint:CGPointMake(0,0)];     [TrianglePath addLineToPoint:CGPointMake(-25, -50)];     [TrianglePath addLineToPoint:CGPointMake(25, -50)];     [TrianglePath addLineToPoint:CGPointMake(0, 0)];          SKShapeNode *Triangle = [SKShapeNode shapeNodeWithPath:TrianglePath.CGPath centered:YES];     Triangle.position = CGPointMake(200, 70);     Triangle.lineWidth = 2;     Triangle.strokeColor = [SKColor blackColor];     Triangle.fillColor = [SKColor blueColor];     Triangle.name = @&quot;Triangle&quot;;     [self addChild:Triangle];           }   -(void)SKLabelNodeDemo {     SKLabelNode *First = [SKLabelNode labelNodeWithFontNamed:@&quot;Chalkduster&quot;];     First.position = CGPointMake(280, 200);     First.fontSize = 25;     First.fontColor = [SKColor whiteColor];     First.color = [SKColor blueColor];     First.colorBlendFactor = 0.5;     First.text = @&quot;Habra Habr!&quot;;     First.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeCenter;     [self addChild:First];                    SKLabelNode *Second = [SKLabelNode labelNodeWithText:@&quot;\u0420\u043e\u043c\u0430\u043d\u043e\u0432-\u041a\u043e\u0448\u043a\u0438\u043d-\u0417\u0430\u0445\u0430\u0440\u044c\u0438\u043d-\u0413\u043e\u043b\u0448\u0442\u0435\u0439\u043d-\u0413\u043e\u0442\u0442\u043e\u0440\u043f\u0441\u043a\u0438\u0439&quot;];     Second.fontName = @&quot;Chalkboard SE Bold&quot;;     Second.fontColor = [SKColor blackColor];     Second.position = CGPointMake(280, 50);     Second.fontSize = 20;     [self addChild:Second];                }  @end   <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <b>Swift<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Swift<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code> import SpriteKit   class GameScene: SKScene {     override func didMoveToView(view: SKView)     {         SceneSetting()         \/\/SKSpriteNodeDemo()         \/\/SKShapeNodeDemo()          SKLabelNodeDemo()     }               func SceneSetting()     {         self.backgroundColor = SKColor.orangeColor()          }                        func SKSpriteNodeDemo()     {                  var Texture = SKTexture(imageNamed: &quot;desert_BG&quot;)                  var BackgroundSprite = SKSpriteNode(texture: Texture)         BackgroundSprite.size = CGSizeMake(640, 320)         BackgroundSprite.position = CGPointMake(0, 0)         BackgroundSprite.anchorPoint = CGPointMake(0, 0)         BackgroundSprite.name = &quot;BackgroundSprite&quot;         self.addChild(BackgroundSprite)                           var SimpleSprite = SKSpriteNode(color: UIColor.blueColor(), size: CGSizeMake(50, 50))         SimpleSprite.position = CGPointMake(200, 150)         SimpleSprite.zPosition = 1;         SimpleSprite.name = &quot;SimpleSprite&quot;         self.addChild(SimpleSprite)                           var ImageSprite = SKSpriteNode(imageNamed: &quot;DerevoOpora&quot;)         ImageSprite.position = CGPointMake(250, 50)         ImageSprite.size = CGSizeMake(100, 15)         ImageSprite.name = &quot;ImageSprite&quot;         self.addChild(ImageSprite)                       }               func SKShapeNodeDemo()     {                  var Circle = SKShapeNode(circleOfRadius: 20)         Circle.position = CGPointMake(50, 200)         Circle.lineWidth = 10         Circle.strokeColor = SKColor.blueColor()         Circle.fillColor = SKColor.redColor()         Circle.name = &quot;Circle&quot;         self.addChild(Circle)                           var Quad = SKShapeNode(rect: CGRectMake(0, 0, 50, 50))         Quad.position = CGPointMake(100, 200)         Quad.lineWidth = 4         Quad.strokeColor = SKColor.whiteColor()         Quad.fillColor = SKColor.blackColor()         Quad.name = &quot;Quad&quot;         self.addChild(Quad)                           var Ellips = SKShapeNode(ellipseInRect: CGRectMake(0, 0, 50, 90))         Ellips.position = CGPointMake(200, 200)         Ellips.lineWidth = 2         Ellips.strokeColor = SKColor.greenColor()         Ellips.fillColor = SKColor.purpleColor()         Ellips.glowWidth = 5         Ellips.name = &quot;Ellips&quot;         self.addChild(Ellips)                           var RoundedRectPath = UIBezierPath(roundedRect: CGRectMake(0, 0, 50, 50), cornerRadius: 12)                  var RoundedRect = SKShapeNode(path: RoundedRectPath.CGPath, centered:true)         RoundedRect.position = CGPointMake(50, 100)         RoundedRect.lineWidth = 2         RoundedRect.strokeColor = SKColor.blueColor()         RoundedRect.fillColor = SKColor.redColor()         RoundedRect.name = &quot;RoundedRect&quot;         self.addChild(RoundedRect)                                                      var TrianglePath = UIBezierPath()         TrianglePath.moveToPoint(CGPointMake(0, 0))         TrianglePath.addLineToPoint(CGPointMake(-25, -50))         TrianglePath.addLineToPoint(CGPointMake(25, -50))         TrianglePath.addLineToPoint(CGPointMake(0, 0))                           var Triangle = SKShapeNode(path: TrianglePath.CGPath, centered: true)         Triangle.position = CGPointMake(200, 70)         Triangle.lineWidth = 2         Triangle.strokeColor = SKColor.blackColor()         Triangle.fillColor = SKColor.blueColor()         Triangle.name = &quot;Triangle&quot;         self.addChild(Triangle)                                }               func SKLabelNodeDemo()     {         var First = SKLabelNode(fontNamed: &quot;Chalkduster&quot;)         First.position = CGPointMake(280, 200)         First.fontSize = 25;         First.fontColor = SKColor.whiteColor()         First.color = SKColor.blueColor()         First.colorBlendFactor = 0.5         First.text = &quot;Habra Habr!&quot;         First.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.Center         self.addChild(First)                                    var Second = SKLabelNode(text: &quot;\u0420\u043e\u043c\u0430\u043d\u043e\u0432-\u041a\u043e\u0448\u043a\u0438\u043d-\u0417\u0430\u0445\u0430\u0440\u044c\u0438\u043d-\u0413\u043e\u043b\u0448\u0442\u0435\u0439\u043d-\u0413\u043e\u0442\u0442\u043e\u0440\u043f\u0441\u043a\u0438\u0439&quot;)         Second.fontName = &quot;Chalkboard SE Bold&quot;         Second.fontColor = SKColor.blackColor()         Second.position = CGPointMake(280, 50)         Second.fontSize = 20         self.addChild(Second)                                }           }    <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <b>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 SKLabelNode \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435, \u044f \u0431\u044b \u0434\u0430\u0436\u0435 \u0441\u043a\u0430\u0437\u0430\u043b\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442! <\/b>  <\/p>\n<table>\n<tr>\n<td><font color=\"green\"><b>\u0414\u0440\u0443\u0437\u044c\u044f \u041c\u044b \u0438\u0437\u0443\u0447\u0438\u043b\u0438 3 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0421\u043f\u0440\u0430\u0439\u0442\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0444\u0438\u0437\u0438\u043a\u0443 \u043d\u0430\u0448\u0438\u0445 \u0442\u0435\u043b. \u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0432\u0438\u0434\u044b \u0421\u043f\u0440\u0430\u0439\u0442\u043e\u0432, \u044f \u0431\u043e\u044e\u0441\u044c \u0432\u044b \u0437\u0430\u0441\u043a\u0443\u0447\u0430\u0435\u0442\u0435, \u0430 \u0442\u0430\u043a \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a: (\u0413\u0440\u0430\u0432\u0438\u0442\u0430\u0446\u0438\u044f, \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c, \u0422\u0440\u0435\u043d\u0438\u0435, \u0421\u043a\u043e\u043b\u044c\u0436\u0435\u043d\u0438\u0435 \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435).<br \/>  \u041d\u0443 \u0447\u0442\u043e \u043d\u0430\u0447\u043d\u0435\u043c?<\/b><\/font><\/td>\n<\/tr>\n<\/table>\n<p>  <\/p>\n<hr\/>\n<p>  <\/p>\n<h1><b>\u0424\u0438\u0437\u0438\u043a\u0430 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438!<\/b><\/h1>\n<p>  <\/p>\n<hr\/>\n<p>  <font color=\"blue\"><b>\u041d\u0443 \u0447\u0442\u043e \u0436\u0435 \u0434\u0440\u0443\u0437\u044c\u044f! \u0412\u043e\u0442 \u043c\u044b \u0438 \u0434\u043e\u0448\u043b\u0438 \u0434\u043e \u043f\u043e\u0447\u0442\u0438 \u0447\u0442\u043e \u0441\u0430\u043c\u043e\u0439 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438, \u044d\u0442\u043e \u2014 \u0424\u0438\u0437\u0438\u043a\u0430. \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u2014 \u0421\u043f\u0440\u0430\u0439\u0442\u044b. \u041c\u044b \u0438\u0437\u0443\u0447\u0438\u043b\u0438 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043a\u0430\u043a \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043d\u0430\u0448\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438 \u044d\u0442\u043e \u0425\u041e\u0420\u041e\u0428\u041e! \u041d\u043e \u0431\u0435\u0437 \u0444\u0438\u0437\u0438\u043a\u0438, \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u0432\u0441\u0435\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435! \u0424\u0438\u0437\u0438\u043a\u0430 \u043f\u0440\u0438\u0434\u0430\u0435\u0442 \u00ab\u0436\u0438\u0437\u043d\u044c\u00bb \u043d\u0430\u0448\u0438\u043c \u0421\u043f\u0440\u0430\u0439\u0442\u0430\u043c \u0438 \u0432 \u044d\u0442\u043e\u0439 \u0433\u043b\u0430\u0432\u0435 \u044f \u0431\u044b \u0445\u043e\u0442\u0435\u043b\u0430 \u043f\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043d\u0435\u0439 \u0432\u0430\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c. \u0418 \u043d\u0430\u0447\u043d\u0435\u043c \u043c\u044b \u0441 <b>SKPhysicsBody<\/b><\/b><\/font><\/p>\n<h4><b>SKPhysicsBody<\/b><\/h4>\n<p>  <b><b>SKPhysicsBody<\/b> \u2014 \u042d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u0442\u0435\u043b\u043e \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0418\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043d\u0430\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u043e \u043f\u0440\u0438\u0434\u0430\u0435\u0442 \u0438\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0444\u043e\u0440\u043c\u0443, \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0442\u0430\u043a\u0438\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043a\u0430\u043a: <u>\u0422\u0440\u0435\u043d\u0438\u0435, \u0443\u043f\u0440\u0443\u0433\u043e\u0441\u0442\u044c, \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u0435, \u043c\u0430\u0441\u0441\u0443, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c, \u0433\u0440\u0430\u0432\u0438\u0442\u0430\u0446\u0438\u044e.<\/u><\/b><\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0439 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u0441 \u043d\u0438\u043c \u0438 \u043d\u0430\u0447\u043d\u0435\u043c \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0441 \u0435\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432, \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<p>  <font color=\"green\"><b>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e<\/b><\/font>  <\/p>\n<table>\n<tr>\n<td>1) <b>dynamic<\/b> \u2014 <i>\u0415\u0441\u043b\u0438 No, \u0442\u043e \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c.<\/i> <br \/>  2) <b>usesPreciseCollisionDetection<\/b> \u2014 <i>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u0442\u043e\u0438\u0442 NO. \u0415\u0441\u043b\u0438 YES, \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0435, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0435\u0441\u043b\u0438 \u0442\u043e\u0447\u043d\u043e \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c. <\/i><br \/>  3) <b>allowsRotation<\/b> \u2014 <i>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u0442\u043e\u0438\u0442 NO. \u0415\u0441\u043b\u0438 YES \u043d\u043e \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f!<\/i><br \/>  4) <b>pinned<\/b> \u2014 <i>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e NO, \u0435\u0441\u043b\u0438 YES \u0442\u043e \u0442\u0435\u043b\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043e \u043a \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443, \u043e\u043d\u043e \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u0441\u043c\u043e\u0436\u0435\u0442 \u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f. <\/i><br \/>  5) <b>resting<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 YES, \u0435\u0441\u043b\u0438 \u0442\u0435\u043b\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u043e\u043a\u043e\u0435.<\/i><br \/>  6) <b>friction<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0448\u0435\u0440\u043e\u0445\u043e\u0432\u0430\u0442\u043e\u0441\u0442\u044c, \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 \u0442\u0435\u043b\u0430. \u041e\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u043b\u044b \u0442\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 \u0441 \u0442\u0435\u043b\u043e\u043c.<\/i><br \/>  7) <b>charge<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0437\u0430\u0440\u044f\u0434. \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043c\u0430\u0433\u043d\u0438\u0442\u043d\u044b\u043c \u043f\u043e\u043b\u0435\u043c.<\/i> <br \/>  8) <b>restitution<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043d\u0435\u0440\u0433\u0438\u0438 \u0442\u0435\u0440\u044f\u0435\u0442 \u0442\u0435\u043b\u043e \u043f\u0440\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0435\u043c (\u043a\u0430\u043a \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u0441\u043a\u043e\u0447\u0438\u0442 \u0442\u0435\u043b\u043e, \u043f\u0440\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438)<br \/>  (\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 0.1 \u2014 1.0). \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0.2.<\/i><br \/>  9) <b>linearDamping<\/b> \u2014 <i>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0438\u043c\u0438\u0442\u0430\u0446\u0438\u0438 \u0441\u0438\u043b\u044b \u0442\u0440\u0435\u043d\u0438\u044f \u0441\u0440\u0435\u0434\u044b \u043f\u0440\u0438 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u043c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0438.<br \/>  (\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 0.1 \u2014 1.0). \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0.1.<\/i><br \/>  10) <b>angularDamping<\/b> \u2014 <i>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0438\u043c\u0438\u0442\u0430\u0446\u0438\u0438 \u0441\u0438\u043b\u044b \u0442\u0440\u0435\u043d\u0438\u044f \u0441\u0440\u0435\u0434\u044b \u043f\u0440\u0438 \u0443\u0433\u043b\u043e\u0432\u043e\u043c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0438.<br \/>  (\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 0.1 \u2014 1.0). \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0.1.<\/i><br \/>  11) <b>density<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043b\u043e\u0442\u043d\u043e\u0441\u0442\u044c. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0.1.<\/i><br \/>  12) <b>mass<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u0441\u0441\u0443.<\/i><br \/>  13) <b>area<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043b\u043e\u0449\u0430\u0434\u044c.<\/i><br \/>  14) <b>affectedByGravity<\/b> \u2014 <i>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e YES, \u0435\u0441\u043b\u0438 NO \u0442\u043e \u0442\u0435\u043b\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0413\u0440\u0430\u0432\u0438\u0442\u0430\u0446\u0438\u044e.<\/i><br \/>  15) <b>fieldBitMask<\/b> \u2014 <i>\u0411\u0438\u0442\u043e\u0432\u0430\u044f \u043c\u0430\u0441\u043a\u0430,<\/i><br \/>  16) <b>categoryBitMask<\/b> \u2014 <i>\u0411\u0438\u0442\u043e\u0432\u0430\u044f \u043c\u0430\u0441\u043a\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e.<\/i><br \/>  17) <b>collisionBitMask<\/b> \u2014 <i>\u0411\u0438\u0442\u043e\u0432\u0430\u044f \u043c\u0430\u0441\u043a\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0421\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0435.<\/i><br \/>  18) <b>contactTestBitMask<\/b> \u2014 <i>\u0411\u0438\u0442\u043e\u0432\u0430\u044f \u043c\u0430\u0441\u043a\u0430,<\/i><br \/>  19) <b>joints<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u0441\u0435\u0445 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0445\u0441\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u043b\u0443. (Joint \u2014 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u043e\u0431 \u044d\u0442\u043e\u043c \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435) <\/i><br \/>  20) <b>node<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Node \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u0434\u0430\u043d\u043d\u043e\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e.<\/i><br \/>  21) <b>velocity<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c.<\/i><br \/>  22) <b>angularVelocity<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0443\u0433\u043b\u043e\u0432\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c.<\/i><\/td>\n<\/tr>\n<\/table>\n<p>  <font color=\"green\"><b>\u041c\u0435\u0442\u043e\u0434\u044b \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/b><\/font>  <\/p>\n<table>\n<tr>\n<td>1) <b>bodyWithCircleOfRadius \u2014 r<\/b> \u2014 <i>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e \u0441 \u0434\u0430\u043d\u043d\u044b\u043c \u0440\u0430\u0434\u0438\u0443\u0441\u043e\u043c.<\/i> <br \/>  2) <b>bodyWithCircleOfRadius \u2014 r \u2014 center<\/b> \u2014 <i>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e \u0441 \u0434\u0430\u043d\u043d\u044b\u043c \u0440\u0430\u0434\u0438\u0443\u0441\u043e\u043c, \u0441 \u0446\u0435\u043d\u0442\u0440\u043e\u043c \u0432 \u0442\u043e\u0447\u043a\u0435.<\/i><br \/>  3) <b>bodyWithRectangleOfSize \u2014 s<\/b> \u2014 <i>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u044b.<\/i><br \/>  4) <b>bodyWithRectangleOfSize \u2014 s \u2014 center<\/b> \u2014 <i>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u044b, \u0441 \u0446\u0435\u043d\u0442\u0440\u043e\u043c \u0432 \u0442\u043e\u0447\u043a\u0435.<\/i><br \/>  5) <b>bodyWithPolygonFromPath \u2014 path<\/b> \u2014 <i>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b.<\/i><br \/>  6) <b>bodyWithEdgeFromPoint \u2014 p1 \u2014 p2<\/b> \u2014 <i>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e, \u043b\u0438\u043d\u0438\u044e \u0441 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439.<\/i><br \/>  7) <b>bodyWithEdgeChainFromPath \u2014 path<\/b> \u2014 <i>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e, \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u2014 \u043b\u0438\u043d\u0438\u0439.<\/i> <br \/>  8) <b>bodyWithEdgeLoopFromPath \u2014 path<\/b> \u2014 <i>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e, \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0439 \u043b\u0438\u043d\u0438\u044f\u043c\u0438.<\/i><br \/>  9) <b>bodyWithEdgeLoopFromRect \u2014 rect<\/b> \u2014 <i>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e, \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0439 \u043b\u0438\u043d\u0438\u044f\u043c\u0438. <\/i><br \/>  10) <b>bodyWithTexture \u2014 texture \u2014 size<\/b> \u2014 <i>\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b.<\/i><br \/>  11) <b>bodyWithTexture \u2014 texture \u2014 alphaThreshold \u2014 size<\/b> \u2014 <i>\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 alphaThreshold.<\/i><br \/>  12) <b>bodyWithBodies \u2014 bodies<\/b> \u2014 <i>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0438\u0437 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0442\u0435\u043b.<\/i><\/td>\n<\/tr>\n<\/table>\n<p>  <font color=\"green\"><b>\u041c\u0435\u0442\u043e\u0434\u044b \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/b><\/font>  <\/p>\n<table>\n<tr>\n<td>1) <b>applyForce \u2014 force<\/b> \u2014 <i>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0438\u043b\u0443 \u043a \u0446\u0435\u043d\u0442\u0440\u0443 \u0442\u044f\u0436\u0435\u0441\u0442\u0438 \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430.<\/i> <br \/>  2) <b>applyForce \u2014 force \u2014 point<\/b> \u2014 <i>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0438\u043b\u0443 \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0435\u043b\u0430. (\u0422\u043e\u0447\u043a\u0430 \u2014 \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440)<\/i><br \/>  3) <b>applyTorque \u2014 torque<\/b> \u2014 <i>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u0440\u0443\u0442\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0442\u0435\u043b\u0443.<\/i><br \/>  4) <b>applyImpulse \u2014 impulse<\/b> \u2014 <i>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u043c\u043f\u0443\u043b\u044c\u0441 \u043a \u0446\u0435\u043d\u0442\u0440\u0443 \u0442\u044f\u0436\u0435\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430.<\/i><br \/>  5) <b>applyImpulse \u2014 impulse \u2014 point<\/b> \u2014 <i>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u043c\u043f\u0443\u043b\u044c\u0441 \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0435\u043b\u0430. (\u0422\u043e\u0447\u043a\u0430 \u2014 \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440)<\/i><br \/>  6) <b>applyAngularImpulse \u2014 impulse<\/b> \u2014 <i>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0433\u043b\u043e\u0432\u043e\u0439 \u0438\u043c\u043f\u0443\u043b\u044c\u0441 \u043a \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0442\u0435\u043b\u0443.<\/i><br \/>  7) <b>allContactedBodies<\/b> \u2014 <i>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u0435\u043b, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u0432 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c \u0442\u0435\u043b\u043e\u043c.<\/i><\/td>\n<\/tr>\n<\/table>\n<p>  \u0418\u0442\u0430\u043a, \u0432\u044b\u0448\u0435 \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435 \u0432\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <b>SKPhysicsBody<\/b>. \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0438\u0445 \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e. <br \/>  \u0421\u0440\u0430\u0437\u0443 \u0441\u043a\u0430\u0436\u0443, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0443\u043d\u043a\u0442\u044b \u0432\u044b\u0448\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f: <u>\u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c\u0438 \u0438\u043b\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435<\/u>. \u041d\u0435 \u0432\u043e\u043b\u043d\u0443\u0439\u0442\u0435\u0441\u044c, \u0435\u0441\u043b\u0438 \u0447\u0435\u0433\u043e-\u0442\u043e \u043d\u0435 \u043f\u043e\u043d\u044f\u043b\u0438. \u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u044b \u0432\u0441\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438 \u043f\u043e\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0441\u043e \u0432\u0441\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437!<\/p>\n<p>  <font color=\"red\">\u041b\u0430\u0434\u043d\u043e, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c, \u043d\u043e \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043a\u043e\u0435-\u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c!<\/font>  <\/p>\n<table>\n<tr>\n<td>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0439\u0434\u0435\u043c \u043d\u0430\u0448 ViewController \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a \u043d\u0430\u0448\u0435\u043c\u0443 <b>SKView<\/b> \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e:<\/p>\n<p>  <b>Objective-c<\/b>  <\/p>\n<pre><code>skView.showsPhysics = YES; <\/code><\/pre>\n<p>  <b>Swift<\/b>  <\/p>\n<pre><code>skView.showsPhysics = true<\/code><\/pre>\n<p>  \u041e\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0432\u043e\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e, \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e \u0438 \u043c\u043e\u0436\u0435\u043c \u043b\u0435\u0433\u0447\u0435 \u0441 \u043d\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c!  <\/td>\n<\/tr>\n<\/table>\n<p>  <font color=\"red\">\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0443\u0436\u043d\u043e \u0435\u0449\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0432 \u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <b>SceneSetting<\/b><\/font>  <\/p>\n<table>\n<tr>\n<td>\u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0438\u043b\u0443 \u0433\u0440\u0430\u0432\u0438\u0442\u0430\u0446\u0438\u044e \u043d\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b. \u041a\u0430\u043a \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u044f \u0432\u0430\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435.<br \/>  <b>Objective-c<\/b>  <\/p>\n<pre><code> self.physicsWorld.gravity = CGVectorMake(0, -1);<\/code><\/pre>\n<p>  <b>Swift<\/b>  <\/p>\n<pre><code> self.physicsWorld.gravity = CGVectorMake(0, -1)<\/code><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<p>  <font color=\"blue\">\u0424\u0438\u0437\u0438\u043a\u0443 \u0442\u0435\u043b \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 3 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438:<\/font><br \/>  1) \u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u2014 \u0422\u0435\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e.<br \/>  2) \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u2014 \u0422\u0435\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e.<br \/>  3) EDGE \u2014 \u0421\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b.<\/p>\n<p>  <font color=\"orange\">\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435<\/font><br \/>  \u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0435\u043b\u0430 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0447\u0442\u043e \u0442\u043e \u0434\u0432\u0438\u0433\u0430\u0442\u044c \u043d\u0430 \u0441\u0446\u0435\u043d\u0435 \u0438\u043b\u0438 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c. \u042d\u0442\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c: \u0441\u043d\u0430\u0440\u044f\u0434\u044b, \u043b\u0435\u0442\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0438. \u041e\u043d\u0438 \u0438\u043c\u0435\u044e\u0442 \u043c\u0430\u0441\u0441\u0443 \u0438 \u043e\u0431\u044a\u0435\u043c, \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u044b\u043c\u0438 \u0441\u0438\u043b\u0430\u043c\u0438 \u0433\u0440\u0430\u0432\u0438\u0442\u0430\u0446\u0438\u0438, \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>  <font color=\"orange\">\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435<\/font><br \/>  \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0435\u043b\u0430. \u0423 \u043d\u0438\u0445 \u0432\u0441\u0435 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043a\u0430\u043a \u0438 \u0443 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445, \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f! \u041e\u0434\u043d\u0430\u043a\u043e \u0441 \u043d\u0438\u043c\u0438 \u043f\u043e \u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043c\u043e\u0433\u0443\u0442 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b. \u041b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u043a\u0430\u043a\u0438\u0445 \u0442\u043e \u043e\u043f\u043e\u0440 \u0438\u043b\u0438 \u0441\u0442\u0435\u043d. \u0412\u0441\u0435 \u0442\u043e, \u0447\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430.<\/p>\n<p>  <font color=\"orange\">EDGE<\/font><br \/>  EDGE \u2014 \u044d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u043d\u0435 \u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e, \u044d\u0442\u043e \u043d\u0435\u043a\u0438\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u0441\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435. \u041e\u043d\u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043c\u0430\u0441\u0441\u044b \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043c\u0430, \u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f!<br \/>  EDGE \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438\u043b\u0438 \u0434\u043b\u044f \u043a\u0430\u043a\u0438\u0445 \u043d\u0438\u0431\u0443\u0434\u044c \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u0445 \u0433\u0440\u0430\u043d\u0438\u0446.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/098\/1cf\/809\/0981cf8093d4411a847d8b92bb40b257.png\"\/><\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0448\u0435. \u041c\u044b \u0432\u0438\u0434\u0438\u043c \u043f\u044f\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u042f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043b\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438.<br \/>  \u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0445 \u043f\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435!<\/p>\n<p>  <b>Objective-c<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Objective-c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>-(void)CreatePhysics  {     \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKShapeNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (CGRectMake).     SKShapeNode *RectanglePhysics = [SKShapeNode shapeNodeWithRect:CGRectMake(-580\/2, -10, 580, 20)];     RectanglePhysics.position = CGPointMake(280, 40); \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     RectanglePhysics.fillColor = [SKColor whiteColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.     RectanglePhysics.name = @&quot;Rectangle&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     RectanglePhysics.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:RectanglePhysics.frame.size]; \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e.     RectanglePhysics.physicsBody.dynamic = NO; \/\/ \u0414\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0421\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u043c.     [self addChild:RectanglePhysics]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.               \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKShapeNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0440\u0430\u0434\u0438\u0443\u0441.     SKShapeNode *CirclePhysics = [SKShapeNode shapeNodeWithCircleOfRadius:40];     CirclePhysics.position = CGPointMake(100, 160); \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     CirclePhysics.strokeColor = [SKColor greenColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     CirclePhysics.lineWidth = 5; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439.     CirclePhysics.name = @&quot;Circle&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     CirclePhysics.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:40]; \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e.     CirclePhysics.physicsBody.dynamic = YES; \/\/ \u0414\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0414\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u044b\u043c.     [self addChild:CirclePhysics]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                         \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKTexture \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435.     SKTexture *Texture = [SKTexture textureWithImageNamed:@&quot;DerevoOpora&quot;];      \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKSpriteNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKTexture.     SKSpriteNode *TexturePhysics = [SKSpriteNode spriteNodeWithTexture:Texture];     TexturePhysics.position = CGPointMake(200, 180); \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     TexturePhysics.size = CGSizeMake(100, 30); \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440.     TexturePhysics.name = @&quot;TexturePhysics&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     TexturePhysics.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:TexturePhysics.frame.size]; \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e.     TexturePhysics.physicsBody.dynamic = YES; \/\/ \/\/ \u0414\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0414\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u044b\u043c.     [self addChild: TexturePhysics]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                         UIBezierPath *TrianglePath = [UIBezierPath bezierPath]; \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 UIBezierPath.     [TrianglePath moveToPoint:CGPointMake(0,0)]; \/\/ \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438.     [TrianglePath addLineToPoint:CGPointMake(-50, -100)]; \/\/  \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.     [TrianglePath addLineToPoint:CGPointMake(50, -100)]; \/\/  \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.     [TrianglePath addLineToPoint:CGPointMake(0, 0)]; \/\/  \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.                    \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKShapeNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u0432\u044b\u0448\u0435.     \/\/ \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u043c\u0443 \u0432  \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e CGPath.     SKShapeNode *TrianglePhysics = [SKShapeNode shapeNodeWithPath:TrianglePath.CGPath ];     TrianglePhysics.position = CGPointMake(400, 190); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     TrianglePhysics.lineWidth = 2; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439.     TrianglePhysics.strokeColor = [SKColor blackColor]; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.     TrianglePhysics.fillColor = [SKColor blueColor]; \/\/  \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.     TrianglePhysics.name = @&quot;Triangle&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.     TrianglePhysics.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:TrianglePath.CGPath]; \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e.     TrianglePhysics.physicsBody.dynamic = YES;  \/\/ \u0414\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0414\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u044b\u043c.     [self addChild:TrianglePhysics]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                    \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0448 SKLabelNode \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442.     SKLabelNode *LabelPhysics = [SKLabelNode labelNodeWithText:@&quot;Xcode&quot;];      LabelPhysics.position = CGPointMake(500, 200); \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.     LabelPhysics.fontSize = 22; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430.     LabelPhysics.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:CGRectMake(-25, -25, 50, 50)]; \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e.     LabelPhysics.name = @&quot;Label&quot;; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u0441\u043f\u0440\u0430\u0439\u0442\u0430.     [self addChild:LabelPhysics]; \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <b>Swift<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Swift<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>func CreatePhysics()     {         \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e RectanglePhysics \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKShapeNode.          \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (CGRectMake).         var RectanglePhysics = SKShapeNode(rect: CGRectMake(-580\/2, -10, 580, 20))         RectanglePhysics.position = CGPointMake(280, 40) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         RectanglePhysics.fillColor = SKColor.whiteColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.         RectanglePhysics.name = &quot;Rectangle&quot;  \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         RectanglePhysics.physicsBody = SKPhysicsBody(rectangleOfSize: RectanglePhysics.frame.size) \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e.         RectanglePhysics.physicsBody.dynamic = false \/\/ \u0414\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u043c.         self.addChild(RectanglePhysics) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                  \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e CirclePhysics \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKShapeNode.         \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0440\u0430\u0434\u0438\u0443\u0441.         var CirclePhysics = SKShapeNode(circleOfRadius: 40)         CirclePhysics.position = CGPointMake(100, 160) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         CirclePhysics.strokeColor = SKColor.greenColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         CirclePhysics.lineWidth = 5; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0439.         CirclePhysics.name = &quot;Circle&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         CirclePhysics.physicsBody = SKPhysicsBody(circleOfRadius: 40) \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e.         CirclePhysics.physicsBody.dynamic = true \/\/ \u0414\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u044b\u043c.         self.addChild(CirclePhysics) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                                             \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e Texture \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKTexture. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435         let Texture = SKTexture(imageNamed: &quot;DerevoOpora&quot;)                  \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e TexturePhysics \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKSpriteNode.         \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKTexture \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438  \u0432\u044b\u0448\u0435.         var TexturePhysics = SKSpriteNode(texture: Texture)         TexturePhysics.position = CGPointMake(200, 180) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         TexturePhysics.size = CGSizeMake(100, 30) \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440.         TexturePhysics.name = &quot;TexturePhysics&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         TexturePhysics.physicsBody = SKPhysicsBody(rectangleOfSize: TexturePhysics.frame.size) \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e.         TexturePhysics.physicsBody.dynamic = true \/\/ \u0414\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u044b\u043c.         self.addChild(TexturePhysics) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                                    var TrianglePath = UIBezierPath() \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 UIBezierPath.         TrianglePath.moveToPoint(CGPointMake(0, 0)) \/\/ \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438.         TrianglePath.addLineToPoint(CGPointMake(-50, -100)) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.         TrianglePath.addLineToPoint(CGPointMake(50, -100)) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.         TrianglePath.addLineToPoint(CGPointMake(0, 0)) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.                  \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e TrianglePhysics \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKShapeNode.        \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u0432\u044b\u0448\u0435       \/\/ \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u043c\u0443 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e CGPath.         var TrianglePhysics = SKShapeNode(path: TrianglePath.CGPath)         TrianglePhysics.position = CGPointMake(400, 190) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         TrianglePhysics.lineWidth = 2 \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0439.         TrianglePhysics.strokeColor = SKColor.blackColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u0430.         TrianglePhysics.fillColor = SKColor.blueColor() \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.         TrianglePhysics.name = &quot;Triangle&quot; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         TrianglePhysics.physicsBody = SKPhysicsBody(polygonFromPath: TrianglePath.CGPath) \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e.         TrianglePhysics.physicsBody.dynamic = true \/\/ \u0414\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u044b\u043c.         self.addChild(TrianglePhysics) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.                  \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e LabelPhysics \u0438 \u0435\u0439 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 SKLabelNode. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442.         var LabelPhysics = SKLabelNode(text: &quot;Xcode&quot;)         LabelPhysics.position = CGPointMake(500, 200) \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e.         LabelPhysics.fontSize = 22; \/\/  \u0437\u0430\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430.         LabelPhysics.physicsBody = SKPhysicsBody(edgeLoopFromRect: CGRectMake(-25, -25, 50, 50)) \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e.         LabelPhysics.name = &quot;Label&quot;  \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f.         self.addChild(LabelPhysics) \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0441\u0446\u0435\u043d\u0443.              }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<hr\/>\n<p>  <font color=\"orange\"><b>RectanglePhysics<\/b><\/font><\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u041e\u0431\u044a\u0435\u043a\u0442 \u0438\u043c\u0435\u0435\u0442 \u0438\u043c\u044f <u>RectanglePhysics<\/u>. \u0412\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u044e\u0442 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043d\u0438\u0445 \u0438 \u043f\u0435\u0440\u0435\u0439\u0434\u0443 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \u043d\u043e\u0432\u044b\u043c. \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u043c\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 <b>physicsBody<\/b> \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u0435\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <b>SKPhysicsBody<\/b>. \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0434\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e \u043d\u0430\u0448\u0435\u043c\u0443 \u0421\u043f\u0440\u0430\u0439\u0442\u0443. <\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u0443\u0447\u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <b>SKPhysicsBody<\/b>, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f \u043f\u0438\u0441\u0430\u043b\u0430 \u0432\u044b\u0448\u0435, \u0442\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 <b>bodyWithRectangleOfSize<\/b> \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <b>rectangleOfSize<\/b> \u0438 \u043f\u0440\u0438 \u0435\u0433\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043d\u0430\u0448\u0435\u0433\u043e \u0421\u043f\u0440\u0430\u0439\u0442\u0430, \u0438 \u0443\u0436\u0435 \u043f\u043e \u043d\u0435\u043c\u0443 \u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043d\u0430\u0448\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e.<\/p>\n<p>  <font color=\"red\"><b>\u0422\u0443\u0442 \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u0442\u043e\u0438\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c! <\/b><\/font><br \/>  <b>\u041b\u044e\u0431\u044b\u0435 \u043a\u0430\u0441\u0430\u043d\u0438\u0435 \u0438\u043b\u0438 \u0441\u043e\u043f\u0440\u0438\u043a\u043e\u0441\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043d\u0435 \u0441 \u0441\u0430\u043c\u0438\u043c \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u043c, \u0430 \u0441 \u0435\u0433\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0442\u0435\u043b\u043e\u043c! <\/b>  <\/p>\n<table>\n<tr>\n<td>\u0415\u0441\u043b\u0438 \u0432\u044b \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0435\u043b\u0430 \u043c\u0435\u043d\u044c\u0448\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u0421\u043f\u0440\u0430\u0439\u0442\u0430, \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0438 \u0441\u043e\u043f\u0440\u0438\u043a\u043e\u0441\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u043d\u0435 \u0432\u043e\u0448\u0435\u0434\u0448\u0430\u044f \u0432 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u043d\u0438\u043a\u0430\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0421\u043f\u0440\u0430\u0439\u0442, \u0430 \u0435\u0441\u043b\u0438 \u0432\u044b \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0435\u043b\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0421\u043f\u0440\u0430\u0439\u0442\u0430, \u0442\u043e \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0441\u043e\u043f\u0440\u0438\u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0441\u0430\u043c\u0430 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0430 \u0421\u043f\u0440\u0430\u0439\u0442\u0430, \u0430 \u043d\u0435\u043a\u0430\u044f \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430. \u041d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0438\u0436\u0435 \u044f \u043f\u0440\u0438\u0432\u0435\u043b\u0430 \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432!<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/7f5\/f39\/f90\/7f5f39f9063c497f8942a8be69c0bc54.png\"\/><\/td>\n<\/tr>\n<\/table>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0442\u0435\u043b\u0430, \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u044d\u0442\u043e <b>dynamic<\/b>.<br \/>  \u041a\u0430\u043a \u044f \u043f\u0438\u0441\u0430\u043b\u0430 \u0432\u044b\u0448\u0435, \u043e\u043d\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0435\u043c\u0443 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043d\u0430\u043c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u043f\u043e\u0440\u043d\u043e\u0439 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438!  <\/p>\n<hr\/>\n<p>  <font color=\"orange\"><b>CirclePhysics<\/b><\/font>  <\/p>\n<table>\n<tr>\n<td>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u043c\u0435\u0435\u0442 \u0438\u043c\u044f <u>CirclePhysics<\/u>. \u0412 \u043d\u0435\u043c \u043c\u044b \u0442\u0430\u043a \u0436\u0435 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e. \u0414\u0435\u043b\u0430\u0435\u043c \u043c\u044b \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e: \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <b>SKPhysicsBody<\/b> \u0441 \u043c\u0435\u0442\u043e\u0434\u043e\u043c <b>bodyWithCircleOfRadius<\/b> \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <b>circleOfRadius<\/b> \u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0440\u0430\u0434\u0438\u0443\u0441 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e. \u0414\u0430\u043b\u0435\u0435 \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <b>dynamic<\/b> \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448 \u0421\u043f\u0440\u0430\u0439\u0442 \u0431\u0443\u0434\u0435\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u044b\u043c. \u042d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043c\u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0432\u0430\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u044d\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c!  <\/td>\n<\/tr>\n<\/table>\n<p>  <\/p>\n<table>\n<tr>\n<td><font color=\"blue\">\u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442. \u042f \u0432\u044b\u0431\u0440\u0430\u043b\u0430 \u043e\u043a\u0440\u0443\u0433\u043b\u043e\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0430\u0448 \u0421\u043f\u0440\u0430\u0439\u0442 \u0441\u0430\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c.<br \/>  \u041d\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0442\u0435\u043b\u0430 \u0434\u043b\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438, \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u041f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443, \u043a\u0430\u043a \u043c\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u0438 \u0434\u043e \u044d\u0442\u043e\u0433\u043e, \u0438\u043b\u0438 \u043b\u044e\u0431\u0443\u044e \u0434\u0440\u0443\u0433\u0443\u044e \u0444\u043e\u0440\u043c\u0443! \u041d\u043e \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0443\u0436\u0435 \u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438! <\/font><\/td>\n<\/tr>\n<\/table>\n<p>  <\/p>\n<hr\/>\n<p>  <font color=\"orange\"><b>TexturePhysics<\/b><\/font>  <\/p>\n<table>\n<tr>\n<td>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0421\u043f\u0440\u0430\u0439\u0442 \u0438\u043c\u0435\u0435\u0442 \u0438\u043c\u044f <u>TexturePhysics<\/u>. \u0422\u0443\u0442 \u0432\u0441\u0435 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043a\u0430\u043a \u0438 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435. \u041c\u044b \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u043b\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b, \u043d\u043e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <b>dynamic<\/b> \u0432 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0438 \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u044b\u043c!<\/td>\n<\/tr>\n<\/table>\n<p>  <font color=\"orange\"><b>TrianglePhysics<\/b><\/font>  <\/p>\n<table>\n<tr>\n<td>\u0414\u0430\u043b\u0435\u0435, \u0443 \u043d\u0430\u0441 \u043d\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>TrianglePhysics<\/u>. \u041a\u0430\u043a \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c, \u044d\u0442\u043e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u043c\u0435\u0435\u0442 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <b>UIBezierPath<\/b> \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0444\u043e\u0440\u043c\u0443. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u043c\u044b \u043a\u0430\u043a \u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 <b>SKPhysicsBody<\/b>. \u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <b>polygonFromPath<\/b> \u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 <b>bodyWithPolygonFromPath<\/b>. \u0427\u0442\u043e \u043e\u043d(-\u0430) \u0434\u0435\u043b\u0430\u0435\u0442? \u041e\u043d\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u0448\u0435\u0439 \u0444\u043e\u0440\u043c\u044b <b>UIBezierPath<\/b> \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>TrianglePath<\/u> \u0438 \u0443\u0436\u0435 \u043d\u0430 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043d\u0430\u0448\u0435 \u0442\u0435\u043b\u043e.<br \/>  \u0412\u0441\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e! <\/td>\n<\/tr>\n<\/table>\n<p>  <\/p>\n<hr\/>\n<p>  <font color=\"orange\"><b>LabelPhysics<\/b><\/font>  <\/p>\n<table>\n<tr>\n<td>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u043f\u0440\u0430\u0439\u0442 \u0438\u043c\u0435\u0435\u0442 \u0438\u043c\u044f <u>LabelPhysics<\/u>. \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0435\u0433\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0442\u0435\u043b\u0430, \u043c\u044b \u043a\u0430\u043a \u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <b>SKPhysicsBody<\/b>, \u043d\u043e \u0443\u0436\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c <b>bodyWithEdgeLoopFromRect<\/b> \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <b>edgeLoopFromRect<\/b> \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0427\u0442\u043e \u043e\u043d\u0438 \u0434\u0435\u043b\u0430\u044e\u0442? \u0422\u0430\u043a \u0432\u043e\u0442, \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0441 \u0438\u043c\u0435\u043d\u0435\u043c (CGRectMake) \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u0435 \u0441\u0442\u0440\u043e\u0438\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b (EDGE). \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u0447\u0443\u0442\u044c \u0432\u044b\u0448\u0435. \u041f\u0443\u0441\u0442\u044c \u0432\u0430\u0441 \u043d\u0435 \u0441\u043c\u0443\u0449\u0430\u044e\u0442 \u043d\u0435\u043a\u0438\u0435 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u0432\u043e\u043a\u0440\u0443\u0433 \u0432\u0435\u0440\u0448\u0438\u043d \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <b>showsPhysics<\/b>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430. \u0415\u0441\u043b\u0438 \u0435\u0433\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0442\u043e \u0432\u0441\u0435 \u043e\u043d\u0438 \u0438\u0441\u0447\u0435\u0437\u043d\u0443\u0442! \u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0435\u043b\u0430 \u0442\u0438\u043f\u0430 EDGE, \u044f \u043e \u043d\u0438\u0445 \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b\u0430, \u043e\u043d\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043c\u0430\u0441\u0441\u0443. \u041e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0441\u043a\u0430\u0436\u0435\u043c \u0434\u043b\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0431\u0430\u0440\u044c\u0435\u0440\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b \u043d\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u0447\u0442\u043e\u0431 \u0432\u0430\u0448 \u0421\u043f\u0440\u0430\u0439\u0442 \u0432\u044b\u043b\u0435\u0442\u0430\u043b \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u0441\u0446\u0435\u043d\u044b. \u0415\u0441\u043b\u0438 \u0432\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u044d\u0442\u0438 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0430 \u043a\u043e\u043d\u0446\u0430\u0445 \u0432\u0430\u0448\u0435\u0439 \u0441\u0446\u0435\u043d\u044b, \u0442\u043e\u0433\u0434\u0430 \u0432\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0435\u0435 \u043f\u043e\u043a\u0438\u043d\u0443\u0442\u044c; \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 EDGE.  <\/td>\n<\/tr>\n<\/table>\n<p>  <\/p>\n<hr\/>\n<p>  <font color=\"blue\"><b>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0421\u0432\u043e\u0439\u0441\u0442\u0432<\/b><\/font><\/p>\n<p>  <b>\u0418 \u0442\u0430\u043a \u0434\u0440\u0443\u0437\u044c\u044f, \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0435\u043b\u0430 \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430. \u041d\u0430 \u0432\u0438\u0434\u0435\u043e \u043d\u0438\u0436\u0435, \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432. \u041a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0430\u0434\u0430\u044e\u0442 \u0434\u0432\u0430 \u0448\u0430\u0440\u0438\u043a\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u0432\u044b\u0441\u043e\u0442\u044b. \u041f\u0440\u0438 \u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u043e\u0442\u0441\u043a\u0430\u043a\u0438\u0432\u0430\u0435\u0442, \u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043d\u0435\u0442. \u0422\u0430\u043a \u0436\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0434\u0432\u0430 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u0442\u043e\u0436\u0435 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430. \u041e\u043d\u0438 \u0442\u043e\u0436\u0435 \u043f\u0430\u0434\u0430\u044e\u0442 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u0432\u044b\u0441\u043e\u0442\u044b, \u043d\u043e \u0443\u0436\u0435 \u043d\u0430 \u043d\u0430\u043a\u043b\u043e\u043d\u043d\u0443\u044e \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044c. \u041e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u0441\u043a\u043e\u043b\u044c\u0437\u0438\u0442 \u0438 \u043f\u0430\u0434\u0430\u0435\u0442, \u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u0441\u0440\u0430\u0437\u0443 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f. <u>\u0412\u0441\u0435 \u044d\u0442\u043e \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043b\u0443\u0447\u0448\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \u043a\u043e\u0434\u0443!<\/u> <\/b><\/p>\n<p>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/fvgfVBHHWGo?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>  \u0418 \u0442\u0430\u043a \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043d\u0430\u0448 \u043a\u043e\u0434!<\/p>\n<p>  <b>Objective-c<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Objective-c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>-(void)PhysicsProperties {          float RotateAngle = 10 * (2 * M_PI)\/360;               SKShapeNode *Opora1 = [SKShapeNode shapeNodeWithRect:CGRectMake(-150\/2, -10, 150, 20)];     Opora1.position = CGPointMake(100, 200);     Opora1.strokeColor = [SKColor greenColor];     Opora1.fillColor = [SKColor greenColor];     Opora1.name = @&quot;Opora1&quot;;     Opora1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:Opora1.frame.size];     Opora1.physicsBody.dynamic = NO;     Opora1.zRotation = -RotateAngle;     [self addChild:Opora1];               SKShapeNode *Opora2 = [SKShapeNode shapeNodeWithRect:CGRectMake(-150\/2, -10, 150, 20)];     Opora2.position = CGPointMake(468, 200);     Opora2.strokeColor = [SKColor redColor];     Opora2.fillColor = [SKColor redColor];     Opora2.name = @&quot;Opora2&quot;;     Opora2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:Opora2.frame.size];     Opora2.physicsBody.dynamic = NO;     Opora2.zRotation = RotateAngle;     [self addChild:Opora2];                    SKShapeNode *Opora3 = [SKShapeNode shapeNodeWithRect:CGRectMake(-568\/2, -10, 568, 20)];     Opora3.position = CGPointMake(568\/2, 10);     Opora3.strokeColor = [SKColor yellowColor];     Opora3.fillColor = [SKColor yellowColor];     Opora3.name = @&quot;Opora3&quot;;     Opora3.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:Opora3.frame.size];     Opora3.physicsBody.dynamic = NO;     [self addChild:Opora3];                    SKShapeNode *Circle1 = [SKShapeNode shapeNodeWithCircleOfRadius:15];     Circle1.position = CGPointMake(250, 280);     Circle1.strokeColor = [SKColor whiteColor];     Circle1.fillColor = [SKColor blackColor];     Circle1.name = @&quot;Circle1&quot;;     Circle1.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:15];     Circle1.physicsBody.restitution = 0;     [self addChild:Circle1];               SKShapeNode *Circle2 = [SKShapeNode shapeNodeWithCircleOfRadius:15];     Circle2.position = CGPointMake(310, 280);     Circle2.strokeColor = [SKColor whiteColor];     Circle2.fillColor = [SKColor purpleColor];     Circle2.name = @&quot;Circle2&quot;;     Circle2.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:15];     Circle2.physicsBody.restitution = 0.7;     [self addChild:Circle2];                         SKShapeNode *Quad1 = [SKShapeNode shapeNodeWithRect:CGRectMake(-30\/2, -30\/2, 30, 30)];     Quad1.position = CGPointMake(50, 320);     Quad1.strokeColor = [SKColor whiteColor];     Quad1.fillColor = [SKColor whiteColor];     Quad1.name = @&quot;Quad1&quot;;     Quad1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:Quad1.frame.size];     Quad1.physicsBody.friction = 1;     [self addChild:Quad1];                    SKShapeNode *Quad2 = [SKShapeNode shapeNodeWithRect:CGRectMake(-30\/2, -30\/2, 30, 30)];     Quad2.position = CGPointMake(518, 320);     Quad2.strokeColor = [SKColor blackColor];     Quad2.fillColor = [SKColor blackColor];     Quad2.name = @&quot;Quad2&quot;;     Quad2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:Quad2.frame.size];     Quad2.physicsBody.friction = 0.1;     [self addChild:Quad2];           } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <b>Swift<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Swift<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>  func PhysicsProperties()     {                           let RotateAngle  = 10 * (2 * M_PI)\/360                  var Opora1 = SKShapeNode(rect: CGRectMake(-150\/2, -10, 150, 20))         Opora1.position = CGPointMake(100, 200)         Opora1.strokeColor = SKColor.greenColor()         Opora1.fillColor = SKColor.greenColor()         Opora1.name = &quot;Opora1&quot;         Opora1.physicsBody = SKPhysicsBody(rectangleOfSize: Opora1.frame.size)         Opora1.physicsBody.dynamic = false         Opora1.zRotation = Float(-RotateAngle)         self.addChild(Opora1)                           var Opora2 = SKShapeNode(rect: CGRectMake(-150\/2, -10, 150, 20))         Opora2.position = CGPointMake(468, 200)         Opora2.strokeColor = SKColor.redColor()         Opora2.fillColor = SKColor.redColor()         Opora2.name = &quot;Opora2&quot;         Opora2.physicsBody = SKPhysicsBody(rectangleOfSize: Opora2.frame.size)         Opora2.physicsBody.dynamic = false         Opora2.zRotation  = Float(RotateAngle)         self.addChild(Opora2)                  var Opora3 = SKShapeNode(rect:CGRectMake (-568\/2, -10, 568, 20))         Opora3.position = CGPointMake(568\/2, 10)         Opora3.strokeColor = SKColor.yellowColor()         Opora3.fillColor = SKColor.yellowColor()         Opora3.name = &quot;Opora3&quot;         Opora3.physicsBody = SKPhysicsBody(rectangleOfSize: Opora3.frame.size)         Opora3.physicsBody.dynamic = false         self.addChild(Opora3)                           var Circle1 = SKShapeNode(circleOfRadius: 15)         Circle1.position = CGPointMake(250, 280)         Circle1.strokeColor = SKColor.whiteColor()         Circle1.fillColor = SKColor.blackColor()         Circle1.name = &quot;Circle1&quot;         Circle1.physicsBody = SKPhysicsBody(circleOfRadius: 15)         Circle1.physicsBody.restitution = 0         self.addChild(Circle1)                  var Circle2 = SKShapeNode(circleOfRadius: 15)         Circle2.position = CGPointMake(310, 280)         Circle2.strokeColor = SKColor.whiteColor()         Circle2.fillColor = SKColor.purpleColor()         Circle2.name = &quot;Circle2&quot;         Circle2.physicsBody = SKPhysicsBody(circleOfRadius: 15)         Circle2.physicsBody.restitution = 0.7         self.addChild(Circle2)                           var Quad1 = SKShapeNode(rect: CGRectMake (-30\/2, -30\/2, 30, 30))         Quad1.position = CGPointMake(50, 320)         Quad1.strokeColor = SKColor.whiteColor()         Quad1.fillColor = SKColor.whiteColor()         Quad1.name = &quot;Quad1&quot;         Quad1.physicsBody = SKPhysicsBody(rectangleOfSize: Quad1.frame.size)         Quad1.physicsBody.friction = 1         self.addChild(Quad1)                           var Quad2 = SKShapeNode(rect: CGRectMake (-30\/2, -30\/2, 30, 30))         Quad2.position = CGPointMake(518, 320)         Quad2.strokeColor = SKColor.blackColor()         Quad2.fillColor = SKColor.blackColor()         Quad2.name = &quot;Quad2&quot;         Quad2.physicsBody = SKPhysicsBody(rectangleOfSize: Quad2.frame.size)         Quad2.physicsBody.friction = 0.1         self.addChild(Quad2)         }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0412 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u044f \u0441\u043e\u0437\u0434\u0430\u044e \u0434\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0442\u0438\u043f\u0430 <b>SKShapeNode<\/b>, \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 <u>Opora1<\/u> \u0438 <u>Opora2<\/u>. \u041d\u0430 \u0432\u0438\u0434\u0435\u043e, \u044d\u0442\u043e \u043d\u0430\u043a\u043b\u043e\u043d\u0435\u043d\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441 \u0437\u0435\u043b\u0435\u043d\u044b\u043c \u0438 \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0412 \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043a\u0440\u043e\u043c\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <b>zRotation<\/b> \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044f \u043f\u0438\u0441\u0430\u043b\u0430 \u0432\u044b\u0448\u0435, \u043d\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043c\u044b \u0435\u0433\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438. \u041a\u0430\u043a \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c:  <\/p>\n<table>\n<tr>\n<td><b>zRotation<\/b> \u2014 \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e Node \u0432 \u0443\u0433\u043b\u0430\u0445 \u042d\u0439\u043b\u0435\u0440\u0430.<\/td>\n<\/tr>\n<\/table>\n<p>  \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e <b>zRotation<\/b> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 <u><font color=\"red\">\u0440\u0430\u0434\u0438\u0430\u043d\u0430\u0445!<\/font><\/u> \u0418 \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0431\u044b \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0443\u0433\u043e\u043b \u043d\u0430\u043c \u044d\u0442\u043e\u0442 \u0443\u0433\u043e\u043b \u043d\u0430\u0434\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0432 \u0440\u0430\u0434\u0438\u0430\u043d\u044b. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e:<\/p>\n<p>  <b>Objective-c<\/b>  <\/p>\n<table>\n<tr>\n<td>\u041c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0442\u0438\u043f\u0430 <b>float<\/b> \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>RotateAngle<\/u>   <\/p>\n<pre><code>float RotateAngle = 10 * (2 * M_PI)\/360;<\/code><\/pre>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e 10, \u043e\u043d\u043e \u0438 \u0435\u0441\u0442\u044c \u0443\u0433\u043e\u043b \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0435\u043c \u043f\u043e\u0432\u043e\u0440\u043e\u0442. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u043a\u0430\u0436\u0435\u043c \u043d\u0430 60 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432, \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<pre><code>float RotateAngle = 60 * (2 * M_PI)\/360;<\/code><\/pre>\n<p>  \u0410 \u0434\u0430\u043b\u0435\u0435 \u043c\u044b \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 <b>zRotation<\/b>:<\/p>\n<pre><code>Opora1.zRotation = -RotateAngle;<\/code><\/pre>\n<p>   <\/td>\n<\/tr>\n<\/table>\n<p>  <b>Swift<\/b>  <\/p>\n<table>\n<tr>\n<td>\u041c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c <b>let<\/b> \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>RotateAngle<\/u>  <\/p>\n<pre><code>let RotateAngle  = 10 * (2 * M_PI)\/360<\/code><\/pre>\n<p>  \u0422\u0443\u0442 \u0432\u0441\u0435 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0447\u0442\u043e \u0438 \u0432 <b>Objective-c<\/b>, \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0448\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0432 \u0442\u0438\u043f <b>float<\/b>  <\/p>\n<pre><code>Opora1.zRotation = Float(-RotateAngle)<\/code><\/pre>\n<\/td>\n<\/tr>\n<\/table>\n<p>  <b>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0432 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e!<\/b><\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u044f \u0441\u043e\u0437\u0434\u0430\u044e \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>Opora3<\/u>, \u043e\u043d \u0442\u043e\u0442 \u0447\u0442\u043e \u0436\u0435\u043b\u0442\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430 \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0437\u0443.\u0412 \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0442\u043e\u0436\u0435 \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435. \u0410 \u0434\u0430\u043b\u0435\u0435, \u0443 \u043d\u0430\u0441 \u0438\u0434\u0443\u0442 \u0435\u0449\u0435 \u0434\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u2014 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 <u>Circle1<\/u> \u0438 <u>Circle2<\/u>. \u041f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e \u043e\u043d\u0438 \u043e\u0447\u0435\u043d\u044c \u0441\u0445\u043e\u0436\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439, \u043d\u043e \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0432 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u0445. \u0418\u0445 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u0430, \u0430 \u0432\u043e\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f:<\/p>\n<p>  \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <b>restitution<\/b> \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442:  <\/p>\n<table>\n<tr>\n<td><b>restitution<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043d\u0435\u0440\u0433\u0438\u0438 \u0442\u0435\u0440\u044f\u0435\u0442 \u0442\u0435\u043b\u043e \u043f\u0440\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0435\u043c (\u043a\u0430\u043a \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u0441\u043a\u043e\u0447\u0438\u0442 \u0442\u0435\u043b\u043e, \u043f\u0440\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438)<br \/>  (\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 0.1 \u2014 1.0). \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0.2.<\/i><\/td>\n<\/tr>\n<\/table>\n<p>  \u0422\u0430\u043a \u0432\u043e\u0442, \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>Circle1<\/u> \u044f \u0437\u0430\u0434\u0430\u043b\u0430 \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u044b\u043c <b>\u00ab0\u00bb<\/b>, \u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <u>Circle2<\/u> \u043e\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <b>\u00ab1\u00bb<\/b>. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u0440\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438. \u041a\u0430\u043a \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u043d\u0430 \u0432\u0438\u0434\u0435\u043e, \u043e\u0434\u0438\u043d \u0438\u0437 \u0434\u0432\u0443\u0445 \u0448\u0430\u0440\u043e\u0432 \u043f\u0440\u0438 \u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043e\u0442\u0441\u043a\u0430\u043a\u0438\u0432\u0430\u0435\u0442, \u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u043b\u0435\u0436\u0438\u0442 \u043d\u0435\u043f\u043e\u0434\u0432\u0438\u0436\u043d\u043e. \u0412\u0441\u0435 \u044d\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>  \u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0432 \u0434\u0432\u0443\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445 \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 <u>Quad1<\/u> \u0438 <u>Quad2<\/u>. \u041e\u043d\u0438 \u0438\u043c\u0435\u044e\u0442 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443 \u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b \u0432\u043e \u0432\u0441\u0435\u043c, \u043a\u0440\u043e\u043c\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <b>friction<\/b>.  <\/p>\n<table>\n<tr>\n<td><b>friction<\/b> \u2014 <i>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0448\u0435\u0440\u043e\u0445\u043e\u0432\u0430\u0442\u043e\u0441\u0442\u044c, \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 \u0442\u0435\u043b\u0430. \u041e\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u043b\u044b \u0442\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 \u0441 \u0442\u0435\u043b\u043e\u043c.<\/i><\/td>\n<\/tr>\n<\/table>\n<p>  \u0423 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e <b>\u00ab1\u00bb<\/b>, \u0443 \u0434\u0440\u0443\u0433\u043e\u0433\u043e <b>\u00ab0.1\u00bb<\/b> \u0438 \u043a\u0430\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: \u043e\u0434\u0438\u043d \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0441\u043a\u043e\u043b\u044c\u0437\u0438\u0442 \u043f\u043e \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438, \u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u043f\u0440\u043e\u0441\u043a\u043e\u043b\u044c\u0437\u0438\u0432 \u0432\u0441\u044e \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044c \u043f\u0430\u0434\u0430\u0435\u0442 \u0432\u043d\u0438\u0437.<\/p>\n<p>  <font color=\"red\"><b>\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/b><\/font><br \/>  <b>Objective-c<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Objective-c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code> #import &quot;GameScene.h&quot;  @implementation GameScene   -(void)didMoveToView:(SKView *)view {       [self SceneSetting];     \/\/[self SKSpriteNodeDemo];     \/\/[self SKShapeNodeDemo];     \/\/[self SKLabelNodeDemo];     \/\/[self CreatePhysics];       [self PhysicsProperties]; }   -(void)SceneSetting {        self.backgroundColor = [SKColor orangeColor];   self.physicsWorld.gravity = CGVectorMake(0, -1);      }  -(void)PhysicsProperties {          float RotateAngle = 10 * (2 * M_PI)\/360;               SKShapeNode *Opora1 = [SKShapeNode shapeNodeWithRect:CGRectMake(-150\/2, -10, 150, 20)];     Opora1.position = CGPointMake(100, 200);     Opora1.strokeColor = [SKColor greenColor];     Opora1.fillColor = [SKColor greenColor];     Opora1.name = @&quot;Opora1&quot;;     Opora1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:Opora1.frame.size];     Opora1.physicsBody.dynamic = NO;     Opora1.zRotation = -RotateAngle;     [self addChild:Opora1];               SKShapeNode *Opora2 = [SKShapeNode shapeNodeWithRect:CGRectMake(-150\/2, -10, 150, 20)];     Opora2.position = CGPointMake(468, 200);     Opora2.strokeColor = [SKColor redColor];     Opora2.fillColor = [SKColor redColor];     Opora2.name = @&quot;Opora2&quot;;     Opora2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:Opora2.frame.size];     Opora2.physicsBody.dynamic = NO;     Opora2.zRotation = RotateAngle;     [self addChild:Opora2];                    SKShapeNode *Opora3 = [SKShapeNode shapeNodeWithRect:CGRectMake(-568\/2, -10, 568, 20)];     Opora3.position = CGPointMake(568\/2, 10);     Opora3.strokeColor = [SKColor yellowColor];     Opora3.fillColor = [SKColor yellowColor];     Opora3.name = @&quot;Opora3&quot;;     Opora3.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:Opora3.frame.size];     Opora3.physicsBody.dynamic = NO;     [self addChild:Opora3];                    SKShapeNode *Circle1 = [SKShapeNode shapeNodeWithCircleOfRadius:15];     Circle1.position = CGPointMake(250, 280);     Circle1.strokeColor = [SKColor whiteColor];     Circle1.fillColor = [SKColor blackColor];     Circle1.name = @&quot;Circle1&quot;;     Circle1.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:15];     Circle1.physicsBody.restitution = 0;     [self addChild:Circle1];               SKShapeNode *Circle2 = [SKShapeNode shapeNodeWithCircleOfRadius:15];     Circle2.position = CGPointMake(310, 280);     Circle2.strokeColor = [SKColor whiteColor];     Circle2.fillColor = [SKColor purpleColor];     Circle2.name = @&quot;Circle2&quot;;     Circle2.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:15];     Circle2.physicsBody.restitution = 0.7;     [self addChild:Circle2];                         SKShapeNode *Quad1 = [SKShapeNode shapeNodeWithRect:CGRectMake(-30\/2, -30\/2, 30, 30)];     Quad1.position = CGPointMake(50, 320);     Quad1.strokeColor = [SKColor whiteColor];     Quad1.fillColor = [SKColor whiteColor];     Quad1.name = @&quot;Quad1&quot;;     Quad1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:Quad1.frame.size];     Quad1.physicsBody.friction = 1;     [self addChild:Quad1];                    SKShapeNode *Quad2 = [SKShapeNode shapeNodeWithRect:CGRectMake(-30\/2, -30\/2, 30, 30)];     Quad2.position = CGPointMake(518, 320);     Quad2.strokeColor = [SKColor blackColor];     Quad2.fillColor = [SKColor blackColor];     Quad2.name = @&quot;Quad2&quot;;     Quad2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:Quad2.frame.size];     Quad2.physicsBody.friction = 0.1;     [self addChild:Quad2];           }  -(void)CreatePhysics  {          SKShapeNode *RectanglePhysics = [SKShapeNode shapeNodeWithRect:CGRectMake(-580\/2, -10, 580, 20)];     RectanglePhysics.position = CGPointMake(280, 40);     RectanglePhysics.fillColor = [SKColor whiteColor];     RectanglePhysics.name = @&quot;Rectangle&quot;;     RectanglePhysics.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:RectanglePhysics.frame.size];     RectanglePhysics.physicsBody.dynamic = NO;     [self addChild:RectanglePhysics];                    SKShapeNode *CirclePhysics = [SKShapeNode shapeNodeWithCircleOfRadius:40];     CirclePhysics.position = CGPointMake(100, 160);     CirclePhysics.strokeColor = [SKColor greenColor];     CirclePhysics.lineWidth = 5;     CirclePhysics.name = @&quot;Circle&quot;;     CirclePhysics.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:40];     CirclePhysics.physicsBody.dynamic = YES;     [self addChild:CirclePhysics];                              SKTexture *Texture = [SKTexture textureWithImageNamed:@&quot;DerevoOpora&quot;];          SKSpriteNode *TexturePhysics = [SKSpriteNode spriteNodeWithTexture:Texture];     TexturePhysics.position = CGPointMake(200, 180);     TexturePhysics.size = CGSizeMake(100, 30);     TexturePhysics.name = @&quot;TexturePhysics&quot;;     TexturePhysics.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:TexturePhysics.frame.size];     TexturePhysics.physicsBody.dynamic = YES;     [self addChild: TexturePhysics];                         UIBezierPath *TrianglePath = [UIBezierPath bezierPath];     [TrianglePath moveToPoint:CGPointMake(0,0)];     [TrianglePath addLineToPoint:CGPointMake(-50, -100)];     [TrianglePath addLineToPoint:CGPointMake(50, -100)];     [TrianglePath addLineToPoint:CGPointMake(0, 0)];                              SKShapeNode *TrianglePhysics = [SKShapeNode shapeNodeWithPath:TrianglePath.CGPath ];     TrianglePhysics.position = CGPointMake(400, 190);     TrianglePhysics.lineWidth = 2;     TrianglePhysics.strokeColor = [SKColor blackColor];     TrianglePhysics.fillColor = [SKColor blueColor];     TrianglePhysics.name = @&quot;Triangle&quot;;     TrianglePhysics.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:TrianglePath.CGPath];     TrianglePhysics.physicsBody.dynamic = YES;     [self addChild:TrianglePhysics];                         SKLabelNode *LabelPhysics = [SKLabelNode labelNodeWithText:@&quot;Xcode&quot;];     LabelPhysics.position = CGPointMake(500, 200);     LabelPhysics.fontSize = 22;     LabelPhysics.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:CGRectMake(-25, -25, 50, 50)];     LabelPhysics.name = @&quot;Label&quot;;     [self addChild:LabelPhysics];                }   -(void)SKSpriteNodeDemo {          SKTexture *Texture = [SKTexture textureWithImageNamed:@&quot;desert_BG&quot;];               SKSpriteNode *BackgroundSprite = [SKSpriteNode spriteNodeWithTexture:Texture];     BackgroundSprite.size = CGSizeMake(640, 320);     BackgroundSprite.position = CGPointMake(0, 0);     BackgroundSprite.anchorPoint = CGPointMake(0, 0);     BackgroundSprite.name = @&quot;BackgroundSprite&quot;;     [self addChild:BackgroundSprite];                    SKSpriteNode *SimpleSprite = [SKSpriteNode spriteNodeWithColor:[UIColor blueColor] size:CGSizeMake(50, 50)];     SimpleSprite.position = CGPointMake(200, 150);     SimpleSprite.zPosition = 1;     SimpleSprite.name = @&quot;SimpleSprite&quot;;     [self addChild:SimpleSprite];           SKSpriteNode *ImageSprite = [SKSpriteNode spriteNodeWithImageNamed:@&quot;DerevoOpora&quot;];     ImageSprite.position = CGPointMake(250, 50);     ImageSprite.size = CGSizeMake(100, 15);     ImageSprite.name = @&quot;ImageSprite&quot;;     [self addChild:ImageSprite];      }   -(void)SKShapeNodeDemo {     SKShapeNode *Circle = [SKShapeNode shapeNodeWithCircleOfRadius:20];     Circle.position = CGPointMake(50, 200);     Circle.lineWidth = 10;     Circle.strokeColor = [SKColor blueColor];     Circle.fillColor = [SKColor redColor];     Circle.name = @&quot;Circle&quot;;     [self addChild:Circle];          SKShapeNode *Quad = [SKShapeNode shapeNodeWithRect:CGRectMake(0, 0, 50, 50)];     Quad.position = CGPointMake(100, 200);     Quad.lineWidth = 4;     Quad.strokeColor = [SKColor whiteColor];     Quad.fillColor = [SKColor blackColor];     Quad.name = @&quot;Quad&quot;;     [self addChild:Quad];                    SKShapeNode *Ellips = [SKShapeNode shapeNodeWithEllipseInRect:CGRectMake(0, 0, 50, 90)];     Ellips.position = CGPointMake(200, 200);     Ellips.lineWidth = 2;     Ellips.strokeColor = [SKColor greenColor];     Ellips.fillColor = [SKColor purpleColor];     Ellips.glowWidth = 5;     Ellips.name = @&quot;Ellips&quot;;     [self addChild:Ellips];                         UIBezierPath *RoundedRectPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 50, 50) cornerRadius:12];          SKShapeNode *RoundedRect = [ SKShapeNode shapeNodeWithPath:RoundedRectPath.CGPath centered:YES];     RoundedRect.position = CGPointMake(50, 100);     RoundedRect.lineWidth = 2;     RoundedRect.strokeColor = [SKColor blueColor];     RoundedRect.fillColor = [SKColor redColor];     RoundedRect.name = @&quot;RoundedRect&quot;;     [self addChild:RoundedRect];                                       UIBezierPath *TrianglePath = [UIBezierPath bezierPath];     [TrianglePath moveToPoint:CGPointMake(0,0)];     [TrianglePath addLineToPoint:CGPointMake(-25, -50)];     [TrianglePath addLineToPoint:CGPointMake(25, -50)];     [TrianglePath addLineToPoint:CGPointMake(0, 0)];          SKShapeNode *Triangle = [SKShapeNode shapeNodeWithPath:TrianglePath.CGPath centered:YES];     Triangle.position = CGPointMake(200, 70);     Triangle.lineWidth = 2;     Triangle.strokeColor = [SKColor blackColor];     Triangle.fillColor = [SKColor blueColor];     Triangle.name = @&quot;Triangle&quot;;     [self addChild:Triangle];           }   -(void)SKLabelNodeDemo {     SKLabelNode *First = [SKLabelNode labelNodeWithFontNamed:@&quot;Chalkduster&quot;];     First.position = CGPointMake(280, 200);     First.fontSize = 25;     First.fontColor = [SKColor whiteColor];     First.color = [SKColor blueColor];     First.colorBlendFactor = 0.5;     First.text = @&quot;Habra Habr!&quot;;     First.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeCenter;     [self addChild:First];                    SKLabelNode *Second = [SKLabelNode labelNodeWithText:@&quot;\u0420\u043e\u043c\u0430\u043d\u043e\u0432-\u041a\u043e\u0448\u043a\u0438\u043d-\u0417\u0430\u0445\u0430\u0440\u044c\u0438\u043d-\u0413\u043e\u043b\u0448\u0442\u0435\u0439\u043d-\u0413\u043e\u0442\u0442\u043e\u0440\u043f\u0441\u043a\u0438\u0439&quot;];     Second.fontName = @&quot;Chalkboard SE Bold&quot;;     Second.fontColor = [SKColor blackColor];     Second.position = CGPointMake(280, 50);     Second.fontSize = 20;     [self addChild:Second];                }  @end    <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <b>Swift<\/b>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Swift<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code> import SpriteKit   class GameScene: SKScene {     override func didMoveToView(view: SKView)     {           SceneSetting()         \/\/SKSpriteNodeDemo()         \/\/SKShapeNodeDemo()         \/\/SKLabelNodeDemo()         \/\/CreatePhysics()           PhysicsProperties()     }               func SceneSetting()     {         self.backgroundColor = SKColor.orangeColor()         self.physicsWorld.gravity = CGVectorMake(0, -1);              }               func PhysicsProperties()     {                           let RotateAngle  = 10 * (2 * M_PI)\/360                  var Opora1 = SKShapeNode(rect: CGRectMake(-150\/2, -10, 150, 20))         Opora1.position = CGPointMake(100, 200)         Opora1.strokeColor = SKColor.greenColor()         Opora1.fillColor = SKColor.greenColor()         Opora1.name = &quot;Opora1&quot;         Opora1.physicsBody = SKPhysicsBody(rectangleOfSize: Opora1.frame.size)         Opora1.physicsBody.dynamic = false         Opora1.zRotation = Float(-RotateAngle)         self.addChild(Opora1)                           var Opora2 = SKShapeNode(rect: CGRectMake(-150\/2, -10, 150, 20))         Opora2.position = CGPointMake(468, 200)         Opora2.strokeColor = SKColor.redColor()         Opora2.fillColor = SKColor.redColor()         Opora2.name = &quot;Opora2&quot;         Opora2.physicsBody = SKPhysicsBody(rectangleOfSize: Opora2.frame.size)         Opora2.physicsBody.dynamic = false         Opora2.zRotation  = Float(RotateAngle)         self.addChild(Opora2)                  var Opora3 = SKShapeNode(rect:CGRectMake (-568\/2, -10, 568, 20))         Opora3.position = CGPointMake(568\/2, 10)         Opora3.strokeColor = SKColor.yellowColor()         Opora3.fillColor = SKColor.yellowColor()         Opora3.name = &quot;Opora3&quot;         Opora3.physicsBody = SKPhysicsBody(rectangleOfSize: Opora3.frame.size)         Opora3.physicsBody.dynamic = false         self.addChild(Opora3)                           var Circle1 = SKShapeNode(circleOfRadius: 15)         Circle1.position = CGPointMake(250, 280)         Circle1.strokeColor = SKColor.whiteColor()         Circle1.fillColor = SKColor.blackColor()         Circle1.name = &quot;Circle1&quot;         Circle1.physicsBody = SKPhysicsBody(circleOfRadius: 15)         Circle1.physicsBody.restitution = 0         self.addChild(Circle1)                  var Circle2 = SKShapeNode(circleOfRadius: 15)         Circle2.position = CGPointMake(310, 280)         Circle2.strokeColor = SKColor.whiteColor()         Circle2.fillColor = SKColor.purpleColor()         Circle2.name = &quot;Circle2&quot;         Circle2.physicsBody = SKPhysicsBody(circleOfRadius: 15)         Circle2.physicsBody.restitution = 0.7         self.addChild(Circle2)                           var Quad1 = SKShapeNode(rect: CGRectMake (-30\/2, -30\/2, 30, 30))         Quad1.position = CGPointMake(50, 320)         Quad1.strokeColor = SKColor.whiteColor()         Quad1.fillColor = SKColor.whiteColor()         Quad1.name = &quot;Quad1&quot;         Quad1.physicsBody = SKPhysicsBody(rectangleOfSize: Quad1.frame.size)         Quad1.physicsBody.friction = 1         self.addChild(Quad1)                           var Quad2 = SKShapeNode(rect: CGRectMake (-30\/2, -30\/2, 30, 30))         Quad2.position = CGPointMake(518, 320)         Quad2.strokeColor = SKColor.blackColor()         Quad2.fillColor = SKColor.blackColor()         Quad2.name = &quot;Quad2&quot;         Quad2.physicsBody = SKPhysicsBody(rectangleOfSize: Quad2.frame.size)         Quad2.physicsBody.friction = 0.1         self.addChild(Quad2)                                         }          func CreatePhysics()     {         var RectanglePhysics = SKShapeNode(rect: CGRectMake(-580\/2, -10, 580, 20))         RectanglePhysics.position = CGPointMake(280, 40)         RectanglePhysics.fillColor = SKColor.whiteColor()         RectanglePhysics.name = &quot;Rectangle&quot;         RectanglePhysics.physicsBody = SKPhysicsBody(rectangleOfSize: RectanglePhysics.frame.size)         RectanglePhysics.physicsBody.dynamic = false         self.addChild(RectanglePhysics)                           var CirclePhysics = SKShapeNode(circleOfRadius: 40)         CirclePhysics.position = CGPointMake(100, 160)         CirclePhysics.strokeColor = SKColor.greenColor()         CirclePhysics.lineWidth = 5;         CirclePhysics.name = &quot;Circle&quot;         CirclePhysics.physicsBody = SKPhysicsBody(circleOfRadius: 40)         CirclePhysics.physicsBody.dynamic = true         self.addChild(CirclePhysics)                                                      let Texture = SKTexture(imageNamed: &quot;DerevoOpora&quot;)                  var TexturePhysics = SKSpriteNode(texture: Texture)         TexturePhysics.position = CGPointMake(200, 180)         TexturePhysics.size = CGSizeMake(100, 30)         TexturePhysics.name = &quot;TexturePhysics&quot;         TexturePhysics.physicsBody = SKPhysicsBody(rectangleOfSize: TexturePhysics.frame.size)         TexturePhysics.physicsBody.dynamic = true         self.addChild(TexturePhysics)                                    var TrianglePath = UIBezierPath()         TrianglePath.moveToPoint(CGPointMake(0, 0))         TrianglePath.addLineToPoint(CGPointMake(-50, -100))         TrianglePath.addLineToPoint(CGPointMake(50, -100))         TrianglePath.addLineToPoint(CGPointMake(0, 0))                                    var TrianglePhysics = SKShapeNode(path: TrianglePath.CGPath)         TrianglePhysics.position = CGPointMake(400, 190)         TrianglePhysics.lineWidth = 2         TrianglePhysics.strokeColor = SKColor.blackColor()         TrianglePhysics.fillColor = SKColor.blueColor()         TrianglePhysics.name = &quot;Triangle&quot;         TrianglePhysics.physicsBody = SKPhysicsBody(polygonFromPath: TrianglePath.CGPath)         TrianglePhysics.physicsBody.dynamic = true         self.addChild(TrianglePhysics)                           var LabelPhysics = SKLabelNode(text: &quot;Xcode&quot;)         LabelPhysics.position = CGPointMake(500, 200)         LabelPhysics.fontSize = 22;         LabelPhysics.physicsBody = SKPhysicsBody(edgeLoopFromRect: CGRectMake(-25, -25, 50, 50))         LabelPhysics.name = &quot;Label&quot;         self.addChild(LabelPhysics)              }               func SKSpriteNodeDemo()     {                  var Texture = SKTexture(imageNamed: &quot;desert_BG&quot;)                  var BackgroundSprite = SKSpriteNode(texture: Texture)         BackgroundSprite.size = CGSizeMake(640, 320)         BackgroundSprite.position = CGPointMake(0, 0)         BackgroundSprite.anchorPoint = CGPointMake(0, 0)         BackgroundSprite.name = &quot;BackgroundSprite&quot;         self.addChild(BackgroundSprite)                           var SimpleSprite = SKSpriteNode(color: UIColor.blueColor(), size: CGSizeMake(50, 50))         SimpleSprite.position = CGPointMake(200, 150)         SimpleSprite.zPosition = 1;         SimpleSprite.name = &quot;SimpleSprite&quot;         self.addChild(SimpleSprite)                           var ImageSprite = SKSpriteNode(imageNamed: &quot;DerevoOpora&quot;)         ImageSprite.position = CGPointMake(250, 50)         ImageSprite.size = CGSizeMake(100, 15)         ImageSprite.name = &quot;ImageSprite&quot;         self.addChild(ImageSprite)                       }               func SKShapeNodeDemo()     {                  var Circle = SKShapeNode(circleOfRadius: 20)         Circle.position = CGPointMake(50, 200)         Circle.lineWidth = 10         Circle.strokeColor = SKColor.blueColor()         Circle.fillColor = SKColor.redColor()         Circle.name = &quot;Circle&quot;         self.addChild(Circle)                           var Quad = SKShapeNode(rect: CGRectMake(0, 0, 50, 50))         Quad.position = CGPointMake(100, 200)         Quad.lineWidth = 4         Quad.strokeColor = SKColor.whiteColor()         Quad.fillColor = SKColor.blackColor()         Quad.name = &quot;Quad&quot;         self.addChild(Quad)                           var Ellips = SKShapeNode(ellipseInRect: CGRectMake(0, 0, 50, 90))         Ellips.position = CGPointMake(200, 200)         Ellips.lineWidth = 2         Ellips.strokeColor = SKColor.greenColor()         Ellips.fillColor = SKColor.purpleColor()         Ellips.glowWidth = 5         Ellips.name = &quot;Ellips&quot;         self.addChild(Ellips)                           var RoundedRectPath = UIBezierPath(roundedRect: CGRectMake(0, 0, 50, 50), cornerRadius: 12)                  var RoundedRect = SKShapeNode(path: RoundedRectPath.CGPath, centered:true)         RoundedRect.position = CGPointMake(50, 100)         RoundedRect.lineWidth = 2         RoundedRect.strokeColor = SKColor.blueColor()         RoundedRect.fillColor = SKColor.redColor()         RoundedRect.name = &quot;RoundedRect&quot;         self.addChild(RoundedRect)                                                      var TrianglePath = UIBezierPath()         TrianglePath.moveToPoint(CGPointMake(0, 0))         TrianglePath.addLineToPoint(CGPointMake(-25, -50))         TrianglePath.addLineToPoint(CGPointMake(25, -50))         TrianglePath.addLineToPoint(CGPointMake(0, 0))                           var Triangle = SKShapeNode(path: TrianglePath.CGPath, centered: true)         Triangle.position = CGPointMake(200, 70)         Triangle.lineWidth = 2         Triangle.strokeColor = SKColor.blackColor()         Triangle.fillColor = SKColor.blueColor()         Triangle.name = &quot;Triangle&quot;         self.addChild(Triangle)                                }               func SKLabelNodeDemo()     {         var First = SKLabelNode(fontNamed: &quot;Chalkduster&quot;)         First.position = CGPointMake(280, 200)         First.fontSize = 25;         First.fontColor = SKColor.whiteColor()         First.color = SKColor.blueColor()         First.colorBlendFactor = 0.5         First.text = &quot;Habra Habr!&quot;         First.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.Center         self.addChild(First)                                    var Second = SKLabelNode(text: &quot;\u0420\u043e\u043c\u0430\u043d\u043e\u0432-\u041a\u043e\u0448\u043a\u0438\u043d-\u0417\u0430\u0445\u0430\u0440\u044c\u0438\u043d-\u0413\u043e\u043b\u0448\u0442\u0435\u0439\u043d-\u0413\u043e\u0442\u0442\u043e\u0440\u043f\u0441\u043a\u0438\u0439&quot;)         Second.fontName = &quot;Chalkboard SE Bold&quot;         Second.fontColor = SKColor.blackColor()         Second.position = CGPointMake(280, 50)         Second.fontSize = 20         self.addChild(Second)                                }           }   <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <font color=\"blue\"><b>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0438\u0433\u0440\u0430\u044e\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u0443\u044e \u0440\u043e\u043b\u044c, \u0441 \u0438\u0445 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043e\u0431\u0440\u0435\u0442\u0430\u044e\u0442 \u0444\u043e\u0440\u043c\u0443 \u0438 \u043c\u0435\u043d\u044f\u044e\u0442 \u0441\u0432\u043e\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430. \u042d\u0442\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442: \u043a\u0430\u043a \u0442\u0435\u043b\u043e \u0434\u0432\u0438\u0436\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u043d\u0430 \u043d\u0435\u0433\u043e \u0432\u043b\u0438\u044f\u044e\u0442 \u0441\u0438\u043b\u044b \u0432 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u0438 \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u0442 \u043d\u0430 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0442\u0435\u043b\u0430\u043c\u0438. \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u0441\u0446\u0435\u043d\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u043a\u0430\u0434\u0440 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438, \u043e\u043d\u0430 \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u044b \u0441\u0438\u043b \u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0439 \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u0432 \u0441 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0442\u0435\u043b\u0430\u043c\u0438. SpriteKit \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0442\u0435\u043b\u0430. \u0417\u0430\u0442\u0435\u043c, \u0441\u0446\u0435\u043d\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u043f\u0440\u0430\u0439\u0442\u0430. <\/b><\/font>   <\/p>\n<hr\/>\n<p>  <b>\u041d\u0443 \u0447\u0442\u043e \u0434\u0440\u0443\u0437\u044c\u044f, \u0437\u0434\u0435\u0441\u044c \u044f \u0431\u044b \u0445\u043e\u0442\u0435\u043b\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u0438 \u0434\u0430\u0442\u044c \u0432\u0430\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432\u043e \u0432\u0441\u0435\u043c, \u0447\u0442\u043e \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0430 \u0432\u044b\u0448\u0435. \u041a\u0430\u043a \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, <b>SpriteKit<\/b> \u043e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0434\u0432\u0438\u0436\u043e\u043a. \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b \u0438\u0437 <b>Apple<\/b> \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u043b\u0430\u0432\u0443. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0432 \u043d\u0435\u043c \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043d\u0435\u0442 \u0442\u0430\u043a\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 <b>cocos2d<\/b>, \u043d\u043e \u0432\u0441\u0435 \u0436\u0435 <b>SpriteKit<\/b> \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043c\u043e\u043b\u043e\u0436\u0435 \u0435\u0433\u043e \u0438 \u0434\u0443\u043c\u0430\u044e \u0443 \u043d\u0435\u0433\u043e \u0432\u0441\u0435 \u0435\u0449\u0435 \u0432\u043f\u0435\u0440\u0435\u0434\u0438! <\/b><\/p>\n<p>  \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u044f \u0441\u043e\u0437\u0434\u0430\u043b\u0430 \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0443\u044e \u0438\u0433\u0440\u0443-\u0433\u043e\u043b\u043e\u0432\u043e\u043b\u043e\u043c\u043a\u0443 \u0434\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 <b>SpriteKit<\/b>. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043f\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0438\u043c \u043e\u0442 \u043c\u0435\u043d\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c, \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0435 \u0441\u0442\u0430\u0442\u0443\u0441 \u043d\u0430 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439, \u043d\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0445, \u044f \u043c\u043e\u0433\u0443 \u0434\u0430\u0442\u044c \u0432\u0441\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f \u0443 \u043c\u0435\u043d\u044f \u043f\u0440\u043e\u043c\u043e-\u043a\u043e\u0434\u044b.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/18a\/d7a\/9a9\/18ad7a9a934c3b867e470eb712084c8f.jpg\"\/><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/499\/e40\/a4f\/499e40a4fd1d2828a94faca83d2c0783.jpg\"\/><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/962\/411\/e1d\/962411e1d5e7ffcdd4c8aedbdd20ccca.jpg\"\/><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/601\/d48\/85a\/601d4885aa202ad21cdf371da2cb6820.jpg\"\/><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/5c0\/f7f\/9e7\/5c0f7f9e7a7135defd62dacc66cd8949.jpg\"\/><\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u043e\u043c\u043e-\u043a\u043e\u0434\u044b<\/b><\/p>\n<div class=\"spoiler_text\">JNY7JP9N9FP7<br \/>  XYR69PPA6JEL<br \/>  XH39H4KR9KYM<br \/>  M9LW3KWA4MM3<br \/>  JAKWTRPA6RPA<br \/>  Y7J4R6LW4YEP<br \/>  LTYW9Y7NY96M<br \/>  HEYP6XMWLJ6H<br \/>  4WMAAENRMKA6<br \/>  LERKJLKYJN6K<br \/>  PXRA9LLAPT4N<br \/>  JKAXLMAP93M3<br \/>  MY4E6HWMXMXH<br \/>  PRRP7N33TY9X<br \/>  H6MWPMA9Y9MM<br \/>  9F4N3M9TATF9<br \/>  AAF773LF6L3K<br \/>  6LJKAFEJJFNT<br \/>  TNNWTX7MPKWT<br \/>  4NAWTKKAFJ9A<br \/>  TFWEAMJTHA74<br \/>  JKTTEX7HF47A<br \/>  RHXWWXYMAHEE<br \/>  4HKYPPRRA4MM<br \/>  AHFJ6FNXTLYA<br \/>  KYM77WTPJ3LP<br \/>  E6F9RNKHNT3W<br \/>  NYP7MJ7KX336<br \/>  6YARMPMA6A9A<br \/>  3HMTX6JMMWN3<br \/>  N63LKPNH47JK<br \/>  NJK7JLX93XA6<br \/>  HW4XA4TXKJHT<br \/>  9PM437JJN73H<br \/>  9L6L97RTRML4<br \/>  FE3J4A6XJWYA<br \/>  EXWL4KXET9X3<br \/>  JAY676HL3NXL<br \/>  R69LKFLKEAAE<br \/>  RJMTAMEKRYAA<br \/>  KWTE7Y9LH7NF<br \/>  YRRXXXYXFFMM<br \/>  49Y9PT7YXN4P<br \/>  H7N4XTNNY6FX<br \/>  M6LHL4JFH7E7<br \/>  PKK6Y7W3YKJY<br \/>  PWE4WYLNMX64<br \/>  H6FYXEFH467L<br \/>  6M99H7EKTPKJ<br \/>  7Y46NF3P7697<br \/>  36EX7F4L7ML6<br \/>  NFEJKRX6L3XR<br \/>  4T3HKJNEXFEK<br \/>  NK473HRNALEY<br \/>  JNT4E7LK74F7<br \/>  WN3AKERTKWRE<br \/>  93XELJ7AFR7H<br \/>  XA74TNTK9TPF<br \/>  9X6TXKHTHJAK<br \/>  H69LNJHXHTX7<br \/>  PLE39LRTAWEP<br \/>  7KETPLEKEM9M<br \/>  79PWKHMFE7KM<br \/>  4MY7HMTWA6T9<br \/>  3N6ML9X7YJ97<br \/>  A3AR6L6JHKW9<br \/>  XHL36N6J6TTW<br \/>  PX66A4WJEF99<br \/>  HHMT4F3H3NWR<br \/>  MYHLY64Y9J9Y<br \/>  FE76L6JPPKKL<br \/>  39J34XAPNFRE<br \/>  NWPXY7N9YN4N<br \/>  XYAJE6YX9MLA<br \/>  XWTE7RRYTN7P<br \/>  HK3J967HLFEL<br \/>  4EKJJ4TFYAPA<br \/>  4EYAF9HAKANA<br \/>  3E3PTERT4YJ9<br \/>  HHLYHLM7XF74<br \/>  PK7JFXE9TFMN<br \/>  4R4LW79WR7WA<br \/>  K7JL76T473L4<br \/>  FH46XTMA9WFF<br \/>  JLAL43M6WHX9<br \/>  4MT6A7HKJTX6<br \/>  66MAXY4K6944<br \/>  9MHTHMP4R9RX<br \/>  TLJR7A7AFLFJ<br \/>  E7J9FWHMP9XA  <\/div>\n<\/div>\n<p>  <b>\u0418\u0433\u0440\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f<\/b> <a href=\"https:\/\/itunes.apple.com\/us\/app\/soul-shift-next-generation\/id886296164?mt=8\">Soul Shift: Next Generation<\/a>  <\/p>\n<hr\/>\n<p>  \u0414\u043b\u044f \u0442\u0435\u0445 \u043a\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e-\u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0447\u0438\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0435\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u0432\u0438\u0434\u0435\u043e \u0443\u0440\u043e\u043a\u0438 \u043f\u043e \u044f\u0437\u044b\u043a\u0430\u043c <b>Objective-c<\/b> \u0438 <b>Swift<\/b>. \u0418\u0445 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043f\u0430\u0440\u0435\u043d\u044c \u043f\u043e \u0438\u043c\u0435\u043d\u0438 <b>\u0410\u043b\u0435\u043a\u0441\u0435\u0439<\/b>.\u041e\u043d \u0435\u0441\u0442\u044c \u043d\u0430 habrahabr: <a href=\"http:\/\/habrahabr.ru\/users\/ezeki\/\" class=\"user_link\">ezeki<\/a>. \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u0432\u0438\u0434\u0435\u043e \u043e\u043d \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b \u044f\u0437\u044b\u043a\u0430 \u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u044d\u0442\u043e \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442. \u042d\u0442\u0438 \u0443\u0440\u043e\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u043a\u0430\u043a \u043d\u043e\u0432\u0438\u0447\u043a\u0430\u043c \u0442\u0430\u043a \u0438 \u0442\u0435\u043c \u043a\u0442\u043e \u0443\u0436\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u0434 <b>ios<\/b>. <\/p>\n<p>  <b>Objective-c<\/b><br \/>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/NOcflN85_vg?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe><br \/>  <b>Swift<\/b><br \/>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/qyJlM9IID2Y?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe>  <\/p>\n<hr\/>\n<p>  <b>P.S.<\/b> <u>\u0414\u0440\u0443\u0437\u044c\u044f! \u044f \u0434\u0443\u043c\u0430\u044e \u0432\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u0443\u0434\u0438\u0442\u044c \u043c\u0435\u043d\u044f \u0441\u0442\u0440\u043e\u0433\u043e \u0437\u0430 \u043c\u043e\u0438 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u0438\u0431\u043e \u044d\u0442\u043e \u043c\u043e\u0439 \u0432\u0442\u043e\u0440\u043e\u0439 \u044f\u0437\u044b\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u0443\u0441\u0435\u0440\u0434\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u044e.<\/u><\/p>\n<p>  <b>P.P.S.<\/b> \u0418 \u0432 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0445\u043e\u0447\u0443 \u043f\u043e\u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f <a href=\"http:\/\/habrahabr.ru\/users\/abyssmoon\/\" class=\"user_link\">AbyssMoon<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043a\u0430\u0437\u0430\u043b \u043c\u043d\u0435 \u0447\u0435\u0441\u0442\u044c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0441\u0440\u0435\u0434\u0438 \u0412\u0430\u0441!      \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/225517\/\"> http:\/\/habrahabr.ru\/post\/225517\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">     \t\u0421 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c IOS 7 \u043c\u0438\u0440 \u0443\u0437\u0440\u0435\u043b \u043d\u043e\u0432\u044b\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u0434\u0432\u0438\u0436\u043e\u043a \u043e\u0442 Apple \u2014 SpriteKit. \u0412 \u0441\u0432\u0435\u0442\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043e\u043d \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0435 \u0435\u0449\u0435 \u043c\u0430\u043b\u043e \u0447\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0432 \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e tutorial -\u043e\u0432 \u043f\u043e \u043d\u0435\u043c\u0443 \u043d\u043e \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0432\u0441\u0435 \u043e\u043d\u0438 \u043d\u0430 \u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435. \u0418 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u044f \u0437\u0430\u0434\u0430\u043b\u0430\u0441\u044c \u0446\u0435\u043b\u044c\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0422\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u043e\u0431 \u044d\u0442\u043e\u043c \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0435.<\/p>\n<h1>\u0418 \u0442\u0430\u043a \u0447\u0442\u043e \u0436\u0435 \u0442\u0430\u043a\u043e\u0435 SpriteKit?<\/h1>\n<p>  SpriteKit \u2014 \u044d\u0442\u043e 2D \u0434\u0432\u0438\u0436\u043e\u043a, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0433\u0440 \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Apple. \u0412 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0435 \u043b\u0435\u0436\u0438\u0442 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 <a href=\"http:\/\/ru.wikipedia.org\/wiki\/Box2D\"> \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0438\u0436\u043e\u043a Box 2D<\/a>. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u0435\u0433\u043e \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 Apple \u043e\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0432 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0443 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432.<br \/>  \u0412 SpriteKit \u0432\u0441\u044e \u0440\u043e\u043b\u044c \u043f\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044e \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0431\u0435\u0440\u0435\u0442 \u043d\u0430 \u0441\u0435\u0431\u044f OpenGl, \u044d\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043d\u0438\u0437\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0438 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0443\u0441\u0438\u043b\u0438\u044f \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 2D \u0438\u0433\u0440. \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0433\u0440 \u043d\u0430 SpriteKit \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u044f\u0437\u044b\u043a <b>Objective-c<\/b>, \u043d\u043e \u0441 \u0432\u044b\u0445\u043e\u0434\u043e\u043c <a href=\"https:\/\/www.apple.com\/ru\/ios\/ios8\/\">IOS 8<\/a> \u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 <a href=\"http:\/\/ru.wikipedia.org\/wiki\/Swift_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)\">Swift<\/a>, \u0438\u0433\u0440\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u043d\u0430 \u043d\u0435\u043c. <br \/>  \u041e\u0442 \u0441\u0435\u0431\u044f \u0445\u043e\u0442\u0435\u043b\u0430 \u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u043e\u0434\u0435 \u043d\u0430 <b>Swift<\/b> \u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0430\u0436\u0435 \u043b\u0435\u0433\u0447\u0435, \u0442\u0430\u043a \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u0438 \u0434\u0443\u043c\u0430\u0435\u0442\u0435 \u043a\u0430\u043a\u043e\u0439 \u044f\u0437\u044b\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u043e \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u0432\u044b\u0431\u0440\u0430\u0442\u044c <b>Swift<\/b>.<\/p>\n<p>  \u041d\u0438\u0436\u0435, \u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u0432\u0438\u0434\u0435\u043e \u0441 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0435\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 SpriteKit, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u0441\u0442\u0430\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0442\u043e \u043c\u0438\u043b\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0448\u0443.<\/p>\n<p>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/QtzwSpJbm-k?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-225517","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/225517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=225517"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/225517\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=225517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=225517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=225517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}