{"id":412,"date":"2012-01-15T21:52:36","date_gmt":"2012-01-15T17:52:36","guid":{"rendered":"http:\/\/blog.codestage.ru\/ru\/?p=412"},"modified":"2019-06-14T15:18:30","modified_gmt":"2019-06-14T12:18:30","slug":"nape-and-starling","status":"publish","type":"post","link":"http:\/\/blog.codestage.ru\/ru\/2012\/01\/15\/nape-and-starling\/","title":{"rendered":"Nape \u0438 Starling \u0432\u043c\u0435\u0441\u0442\u0435? \u042d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e!"},"content":{"rendered":"<p><strong># \u043f\u043e\u0441\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d (\u0441\u043c. \u041e\u0411\u041d\u041e\u0412\u041b\u0415\u041d\u041e #3)<\/strong><\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0434\u0440\u0443\u0437\u044c\u044f!<\/p>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0432\u0430\u0441 \u0443\u0436\u0435 \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0439\u0448\u0438\u0439 flash 2D \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0438\u0436\u043e\u043a <a href=\"https:\/\/github.com\/deltaluca\/nape\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Nape<\/strong><\/a> \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 GPU 2D \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u043c <a href=\"http:\/\/www.starling-framework.org\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Starling<\/strong><\/a> \u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0447\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <strong>Body.graphic<\/strong> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f  <strong>flash.display.DisplayObject<\/strong> \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u0440\u0430\u0432\u043d\u0435\u043d\u043e \u043a \u044d\u043a\u0437\u043c\u0435\u043f\u043b\u044f\u0440\u0443 <strong>starling.display.DisplayObject<\/strong>.<br \/>\n<!--more--><br \/>\n\u0412 \u0438\u0442\u043e\u0433\u0435, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 Box2D, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u0435\u043b \u0432 \u0432\u0438\u0434\u0435 DisplayObject&#8217;\u043e\u0432 \u0434\u0432\u0438\u0436\u043a\u0430 Starling, \u0432\u043e\u0436\u043c\u043e\u0436\u043d\u043e, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0430\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b \u044f, \u043d\u043e \u043d\u0438\u043a\u043e\u043c\u0443 \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438. \u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e Body.graphic &#8212; \u043e\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0438 \u043c\u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u0441\u0435\u043c as3 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u043f\u043e\u043b\u043d\u0443\u044e \u0441\u0438\u043b\u0443 \u0438 \u0434\u043b\u044f DisplayObject&#8217;\u043e\u0432 Starling&#8217;\u0430.<\/p>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 swc \u0434\u0432\u0438\u0436\u043a\u0430 Nape (release \u0438 debug) Milestone 7.2 &#171;r3&#187; \u0434\u043b\u044f FP 10+, (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e) \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0435 \u0441\u043e Starling.<\/p>\n<p>\u0412\u0441\u0451, \u0447\u0442\u043e \u044f \u0442\u0430\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u043b &#8212; \u0437\u0430\u043c\u0435\u043d\u0438\u043b \u043a\u043b\u0430\u0441\u0441 Body.graphic <strong>flash.display.DisplayObject<\/strong> \u043d\u0430 <strong>Dynamic<\/strong> (* \u0432 as3) \u0438 \u0443\u0434\u0430\u043b\u0438\u043b \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044e \u0432 \u0433\u0440\u0430\u0434\u0443\u0441\u044b \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 Body.graphic.rotation. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u044d\u0442\u043e\u0433\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<br \/>\n\u0422\u0435\u043f\u0435\u0440\u044c \u044f \u043c\u043e\u0433\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Nape \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438 DisplayObject&#8217;\u0430\u043c\u0438, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0437\u0434\u043e\u0440\u043e\u0432\u043e!<br \/>\n\u0414\u0430, \u0442\u0430\u043c \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u043a\u0430\u043a\u0438\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0435 \u0432\u0435\u0449\u0438 \u0441\u043e Starling, \u043d\u043e \u0432 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 Nape \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442.<\/p>\n<p>\u041a\u0430\u0447\u0430\u0439\u0442\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u0438 swc \u0441\u043e Starling \u0432 \u0441\u0432\u043e\u0451 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435!<br \/>\n<a href=\"http:\/\/codestage.ru\/files\/flood\/physics\/debug_nape_starling.swc\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>debug swc<\/strong><\/a><br \/>\n<a href=\"http:\/\/codestage.ru\/files\/flood\/physics\/release_nape_starling.swc\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>release swc<\/strong><\/a><\/p>\n<p>\u041c\u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0435\u0439 <a href=\"https:\/\/github.com\/deltaluca\/caxe\" target=\"_blank\" rel=\"noopener noreferrer\">caxe<\/a> \u0438 <a href=\"https:\/\/github.com\/deltaluca\/flib\" target=\"_blank\" rel=\"noopener noreferrer\">flib<\/a> \u043f\u043e\u0434 Windows \u0432 MinGW, \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0437\u0434\u043e\u0440\u043e\u0432\u043e!<br \/>\n\u0427\u0442\u043e\u0431\u044b \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c swc \u043f\u043e\u0434 Windows, \u043d\u0430\u0434\u043e:<br \/>\n1. \u0421\u043a\u043e\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c caxe \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 (\u043b\u0438\u0448\u044c \u043e\u0434\u0438\u043d \u0440\u0430\u0437).<br \/>\n2. \u0421\u043a\u043e\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c flib \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 (\u043b\u0438\u0448\u044c \u043e\u0434\u0438\u043d \u0440\u0430\u0437).<br \/>\n3. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 caxe \u043d\u0430 .cx \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c haxe (.hx) \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 (\u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 swc).<br \/>\n4. \u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c haxe \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0432 swc \u0444\u0430\u0439\u043b\u044b (\u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 swc).<\/p>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u0438\u0438 Nape&#8217;\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e, \u043f\u043e-\u044d\u0442\u043e\u043c\u0443 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u044d\u0442\u0438 swc \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u044f \u043d\u0435 \u0431\u0443\u0434\u0443, \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438, \u0412\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u0438 \u0432\u0441\u0451 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0440\u0435\u043d\u0434\u0435\u0440-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e!<\/p>\n<p><u><strong>\u041e\u0411\u041d\u041e\u0412\u041b\u0415\u041d\u041e:<\/strong><\/u><br \/>\n\u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u043a\u0438 DisplayObject&#8217;\u043e\u0432 Starling&#8217;\u0430, \u0442\u043e \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u0440\u043e\u0441\u0442\u043e:<\/p>\n<pre class=\"brush: as3; title: ; notranslate\" title=\"\">\n\/\/ \u0433\u0434\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u0434\u0435\nvar someBody:Body = new Body(BodyType.DYNAMIC, new Vec2());\nsomeBody.userData = someStarlingSprite;\n\n\/\/ \u0432 \u043a\u0430\u043a\u043e\u043c-\u043d\u0438\u0431\u0443\u0434\u044c \u0438\u0433\u0440\u043e\u0432\u043e\u043c \u0446\u0438\u043a\u043b\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043c, \u0433\u0434\u0435 \u0432\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0435 Space.step()\nvar len:uint = _napeSpace.bodies.length;\nvar i:uint;\nvar body:Body\nvar sprite:Sprite;\n\nfor (i = 0; i &amp;lt; len; i++ )\n{\nbody = _napeSpace.bodies.at(i);\nsprite = (body.userData as Sprite);\nsprite.x = body.position.x;\nsprite.y = body.position.y;\n\/\/ \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 +-360\u0442\u044c\u044e \u0438\n\/\/ \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0433\u0440\u0430\u0434\u0443\u0441\u044b \u0432 \u0440\u0430\u0434\u0438\u0430\u043d\u044b (\u0432 \u0441\u0442\u0430\u0440\u043b\u0438\u043d\u0433\u0435 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432 \u0440\u0430\u0434\u0438\u0430\u043d\u0430\u0445)\nsprite.rotation = (body.rotation*180\/Math.PI)%360;\n}\n<\/pre>\n<p>\u0412\u043e\u0442 \u0438 \u0432\u0441\u0435!<br \/>\n\u042d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u0440\u044f\u043c\u043e \u0432 Body, \u0442.\u043a. \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430\u043c Body \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0435 \u043a\u043e\u043b\u0434\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0433\u0435\u0442\u0442\u0435\u0440\u043e\u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u0430\u0434\u0440,.<br \/>\n\u041e\u0434\u043d\u0430\u043a\u043e, \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 Nape swc \u0441 \u043b\u044e\u0431\u044b\u043c\u0438 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043c\u0438 \u0440\u0435\u043d\u0434\u0435\u0440-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438, \u043a\u0430\u043a Starling, \u0438 \u044d\u0442\u043e \u0437\u0434\u043e\u0440\u043e\u0432\u043e!<\/p>\n<p><u><strong>\u041e\u0411\u041d\u041e\u0412\u041b\u0415\u041d\u041e #2<\/strong><\/u><br \/>\nNape \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0441\u044f, \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0441 \u043d\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c DisplayObject&#8217;\u044b Staling&#8217;\u0430 \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<pre class=\"brush: as3; title: ; notranslate\" title=\"\">\n\/\/...\nbody.graphic = starling_display_object;\nbody.graphicUpdate = _updateGraphic;\n\/\/...\nprivate function _updateGraphic(b:Body)\n{\nb.graphic.x = b.position.x;\nb.graphic.y = b.position.y;\nb.graphic.rotation = b.rotation; \/\/\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u0430\u0434\u0438\u0430\u043d\u044b, \u0442.\u043a. \u0441\u0442\u0430\u0440\u043b\u0438\u043d\u0433 \u0438\u0445 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\n}\n<\/pre>\n<p><a href=\"http:\/\/www.leebrimelow.com\" target=\"_blank\" rel=\"noopener noreferrer\">Lee Brimelow<\/a> \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u043b \u043d\u043e\u0432\u044b\u0439 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b <a href=\"http:\/\/www.leebrimelow.com\/?p=3245\" target=\"_blank\" rel=\"noopener noreferrer\">&#171;Starling Physics Using Nape&#187;<\/a> \u0433\u0434\u0435 \u043e\u043d \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043f\u0430\u0434\u0430\u044e\u0449\u0438\u043c\u0438 \u043c\u044f\u0447\u0430\u043c\u0438. \u0421\u043f\u0430\u0441\u0438\u0431\u043e, Lee!<\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0430\u0432\u0442\u043e\u0440\u0443 Nape, Luca Deltodesco!<\/p>\n<p><u><strong>\u041e\u0411\u041d\u041e\u0412\u041b\u0415\u041d\u041e #3<\/strong><\/u><br \/>\n\u0418\u0437-\u0437\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u0431\u0430\u0433\u0430 \u0432\u043e Flash Player Runtime (<a href=\"http:\/\/jpauclair.net\/2012\/02\/25\/epic-memory-track-down\/\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/jpauclair.net\/2012\/02\/25\/epic-memory-track-down\/<\/a>), \u0441\u0442\u0440\u043e\u0433\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0430 _updateGraphic \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre class=\"brush: as3; title: ; notranslate\" title=\"\">\n\/\/...\nbody.graphic = starling_display_object;\nbody.graphicUpdate = _updateGraphic;\n\/\/...\nprivate function _updateGraphic(b:Body)\n{\nvar gr:DisplayObject = b.graphic;\ngr.x = b.position.x;\ngr.y = b.position.y;\ngr.rotation = b.rotation; \/\/\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u0430\u0434\u0438\u0430\u043d\u044b, \u0442.\u043a. \u0441\u0442\u0430\u0440\u043b\u0438\u043d\u0433 \u0438\u0445 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\n}\n<\/pre>\n<p>\u042d\u0442\u043e \u043e\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u0438\u0442 \u0432\u0430\u0441 \u043e\u0442 \u0442\u043e\u0433\u043e \u0431\u0430\u0433\u0430 \u0438 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0446\u0438\u043a\u043b\u0438\u0447\u043d\u043e \u0440\u0430\u0441\u0442\u0438 \u0438 \u043e\u0447\u0438\u0449\u0430\u0442\u044c\u0441\u044f.<\/p>\n","protected":false},"excerpt":{"rendered":"<p># \u043f\u043e\u0441\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d (\u0441\u043c. \u041e\u0411\u041d\u041e\u0412\u041b\u0415\u041d\u041e #3) \u041f\u0440\u0438\u0432\u0435\u0442, \u0434\u0440\u0443\u0437\u044c\u044f! \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0432\u0430\u0441 \u0443\u0436\u0435 \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0439\u0448\u0438\u0439 flash 2D \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0438\u0436\u043e\u043a Nape \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 GPU 2D \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u043c Starling \u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0447\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e Body.graphic \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f flash.display.DisplayObject \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u0440\u0430\u0432\u043d\u0435\u043d\u043e \u043a \u044d\u043a\u0437\u043c\u0435\u043f\u043b\u044f\u0440\u0443 starling.display.DisplayObject. &hellip; <a class=\"more-link\" href=\"http:\/\/blog.codestage.ru\/ru\/2012\/01\/15\/nape-and-starling\/\">\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u0435\u0435 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,5],"tags":[9,35,30,37,34],"_links":{"self":[{"href":"http:\/\/blog.codestage.ru\/ru\/wp-json\/wp\/v2\/posts\/412"}],"collection":[{"href":"http:\/\/blog.codestage.ru\/ru\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.codestage.ru\/ru\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.codestage.ru\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.codestage.ru\/ru\/wp-json\/wp\/v2\/comments?post=412"}],"version-history":[{"count":14,"href":"http:\/\/blog.codestage.ru\/ru\/wp-json\/wp\/v2\/posts\/412\/revisions"}],"predecessor-version":[{"id":888,"href":"http:\/\/blog.codestage.ru\/ru\/wp-json\/wp\/v2\/posts\/412\/revisions\/888"}],"wp:attachment":[{"href":"http:\/\/blog.codestage.ru\/ru\/wp-json\/wp\/v2\/media?parent=412"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.codestage.ru\/ru\/wp-json\/wp\/v2\/categories?post=412"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.codestage.ru\/ru\/wp-json\/wp\/v2\/tags?post=412"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}