{"id":232013,"date":"2014-08-03T12:10:02","date_gmt":"2014-08-03T08:10:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=232013"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=232013","title":{"rendered":"<span class=\"post_title\">Cocos2d-x: \u041f\u0438\u0448\u0435\u043c \u043d\u0430 Lua<\/span>"},"content":{"rendered":"<div class=\"content html_format\">     \t<img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/ff1\/c90\/0b1\/ff1c900b14d54dffbda58961032a9854.jpg\"\/><\/p>\n<p>  \u0414\u043e\u0431\u0440\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0443\u0442\u043e\u043a.<br \/>  \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044f \u043d\u0435 \u043d\u0430\u0448\u0435\u043b \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u043e\u0432 \u043f\u043e Cocos2d \u0438 Lua, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0440\u0430\u0434\u0430\u0442\u044c \u0438 \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043d\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u043b\u0438 \u043c\u043e\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u0441\u0442. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0438\u0433\u0440\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <a href=\"http:\/\/www.cocos2d-x.org\/\">\u0421ocos2d-x<\/a>, Cocos Code IDE \u0438 Lua. <a href=\"http:\/\/habrahabr.ru\/post\/202540\/\">\u0420\u0430\u043d\u0435\u0435<\/a>, \u044f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0433\u0440 \u043d\u0430 Love2d. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u044e \u0441\u0442\u0430\u0440\u044b\u0439 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u0434\u043b\u044f \u043a\u043e\u043a\u043e\u0441\u0430 \u0438 \u043a\u0430\u043a \u044d\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0430\u043d\u0434\u0440\u043e\u0438\u0434\u0435 (\u041d\u0438 \u044f\u0431\u043b\u043e\u043a\u0430, \u043d\u0438 \u043c\u0430\u043a\u0430 \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442\u0443).<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h4>\u0427\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f?<\/h4>\n<p>  \u0421\u043f\u0438\u0441\u043e\u043a \u0432\u0430\u0436\u043d\u044b\u0445 \u0432\u0435\u0449\u0435\u0439:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.oracle.com\/technetwork\/java\/javase\/downloads\/index.html\">Java JDK<\/a><\/li>\n<li>\u0421\u0430\u043c Cocos2d-x. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b\u0445\u043e\u0434\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u044b\u0448\u0435\u043b Cocos2d-x 3.2 \u0438 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e <a href=\"http:\/\/www.cocos2d-x.org\/filedown\/cocos2d-x-3.2.zip\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u041d\u0443\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0442\u043e\u0439 \u0436\u0435 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e \u0438 JDK<\/li>\n<li>IDE \u0434\u043b\u044f lua. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0434\u0432\u0438\u0436\u043a\u0430 \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0438\u0441\u044c \u0438 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0432\u043e\u0439 IDE \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Eclipse. \u041a\u0430\u0447\u0430\u0435\u043c <a href=\"http:\/\/www.cocos2d-x.org\/products\/codeide\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/li>\n<li>[Windows-only]Python 2.7. \u041b\u0435\u0436\u0438\u0442 \u0432\u043e\u0442 <a href=\"https:\/\/www.python.org\/download\/releases\/2.7\/\">\u0442\u0443\u0442<\/a>.<\/li>\n<\/ul>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0438\u0433\u0440\u044b \u043f\u043e\u0434 \u0430\u043d\u0434\u0440\u043e\u0438\u0434, \u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0435\u0449\u0435 \u043f\u0430\u0440\u0443 \u0432\u0435\u0449\u0435\u0439, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e:<\/p>\n<ul>\n<li><a href=\"http:\/\/developer.android.com\/sdk\/index.html\">Android SDK<\/a>. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u0434 \u0430\u043d\u0434\u0440\u043e\u0438\u0434, \u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u043d\u0430\u0439\u0442\u0438 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \u00abGET THE SDK FOR AN EXISTING IDE\u00bb<\/li>\n<li><a href=\"https:\/\/developer.android.com\/tools\/sdk\/ndk\/index.html\">Android NDK<\/a>. \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e Android NDK r9, \u0430 \u0441 r10 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b<\/li>\n<li><a href=\"http:\/\/ant.apache.org\/bindownload.cgi\">Apache Ant<\/a>. \u0423 \u043c\u0435\u043d\u044f \u0441\u0442\u043e\u0438\u0442 1.9.4<\/li>\n<\/ul>\n<p>  <\/p>\n<h4>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h4>\n<p>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c Java JDK \u0438 Python. \u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0441\u043f\u0430\u043a\u0443\u0439\u0442\u0435 cocos2d-x \u0438 Cocos Code IDE (\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043b\u0438 zip \u0432\u0435\u0440\u0441\u0438\u044e, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442, \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443) \u0432 \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0434\u043b\u044f \u0432\u0430\u0441 \u043c\u0435\u0441\u0442\u043e. \u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c Android SDK, NDK \u0438 Apache Ant \u0442\u0430\u043a \u0436\u0435 \u0432 \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e. \u041f\u0443\u0442\u044c \u043a \u043d\u0438\u043c \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 \u0432\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0430\u043f\u043a\u0443 \u0441 SDK, \u043d\u0430\u0445\u043e\u0434\u0438\u043c SDK Manager. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438 \u0441\u0442\u0430\u0432\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u043b\u044f \u043d\u0430\u0441 \u0432\u0435\u0440\u0441\u0438\u0438 API \u0438 \u0432\u0441\u044e \u043f\u0430\u043f\u043a\u0443 Tools.<br \/>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c Cocos Code IDE. \u0412 Window-&gt;Preferences-&gt;Cocos \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u0443\u0434\u043d\u044b\u0435 \u043f\u0443\u0442\u0438. \u0423 \u043c\u0435\u043d\u044f \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/9a0\/68b\/ce0\/9a068bce05944c098145844cc4310dd3.PNG\"\/>.<br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u043a\u043b\u0438\u043a\u0430\u0435\u043c \u043f\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Lua \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Cocos \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u0443\u0442\u044c \u043a cocos2d-x:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/157\/7e8\/794\/1577e879478349a7a8bc938ef77fff57.PNG\"\/><br \/>  \u041d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e.  <\/p>\n<h4>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0435\u043e\u0440\u0438\u0438<\/h4>\n<p>  Cocos2d-x \u2014 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0439 \u0434\u0432\u0438\u0436\u043e\u043a, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0421++, \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u043a\u0430\u043a \u043a\u043e\u043f\u0438\u044f Cocos2d. Cocos2d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Object C \u0438 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"http:\/\/habrastorage.org\/files\/03b\/2be\/9cb\/03b2be9cb00e41669d2baf9716039114.png\">\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f iOS<\/a>.<br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0435 \u0434\u0432\u0438\u0436\u043a\u0430 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u0435\u0435 \u0441 Love2D. \u0423 \u043a\u043e\u043a\u043e\u0441\u0430 \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0441\u043b\u043e\u044f\u0445, \u0430 \u0441\u043b\u043e\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0441\u0446\u0435\u043d\u0430\u0445. \u0412 Love2D \u043d\u0438 \u0441\u043b\u043e\u0435\u0432, \u043d\u0438 \u0441\u0446\u0435\u043d \u043d\u0435\u0442\u0443. \u041f\u043b\u044e\u0441\u044b \u0441\u0446\u0435\u043d \u0438 \u0441\u043b\u043e\u0435\u0432 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441 \u0438\u0445 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0433\u0438\u0431\u043a\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. \u041c\u0438\u043d\u0443\u0441\u044b \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0433\u0440\u044b \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e \u0438 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e. \u0412 \u043a\u043e\u043a\u043e\u0441\u0435 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0438 \u0447\u0442\u043e\u0431\u044b \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0430 \u0441\u0446\u0435\u043d\u0443, \u0430 \u0432 love2d \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0447\u0442\u043e\u0431\u044b \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u044d\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u0430\u0434\u0440 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u043b\u0433\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0441\u043a\u0430\u0436\u0443 \u0432\u044b\u0432\u043e\u0434 \u0441\u0435\u0439\u0447\u0430\u0441, \u0430 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u0438. Cocos2d-x \u2014 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u0432\u0438\u0436\u043e\u043a \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u043e\u0434\u043d\u0430\u043a\u043e \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u0438\u043c \u0447\u0430\u0441\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d \u043d\u0435 \u0442\u0430\u043a \u043a\u0430\u043a \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b. Love2d \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0439 \u043c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043d\u0438\u0439, \u0434\u0432\u0438\u0436\u043e\u043a \u0441 \u043e\u0442\u0437\u044b\u0432\u0447\u0438\u0432\u044b\u043c \u043a\u043e\u043c\u043c\u044c\u044e\u043d\u0438\u0442\u0438, \u043d\u043e \u0441 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u043c\u043d\u043e\u0433\u0438\u0445 \u043d\u0443\u0436\u043d\u044b\u0445 \u0432\u0435\u0449\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043f\u0438\u0448\u0443\u0442 \u0441\u0430\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438, \u043d\u043e \u0434\u0435\u043b\u0430\u044e\u0442 \u044d\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0443\u0434\u0430\u0447\u043d\u043e.  <\/p>\n<h4>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0430\u043c \u043a\u043e\u0434<\/h4>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442. \u0418 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445: hello2.lua \u0438 main.lua. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0447\u0443\u0434\u043e \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0433\u043e \u0433\u0435\u0439\u043c \u0434\u0435\u0432\u0430, \u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0443\u0434\u0430\u043b\u044f\u0442\u044c, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u043d \u043b\u043e\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 <a href=\"http:\/\/www.lua.ru\/doc\/5.3.html\">require<\/a>. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c main.lua \u0438 \u0432\u0438\u0434\u0438\u043c \u043a\u0443\u0447\u0443 \u043a\u043e\u0434\u0430 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0443\u0436\u043d\u0430 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0440\u0442 \u043f\u043e\u0434 lua. \u0427\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c F11. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f. \u0412\u043e\u0442 \u044d\u0442\u043e \u0431\u0435\u0433\u0430\u044e\u0449\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u044d\u0442\u043e \u0441\u043e\u0431\u0430\u043a\u0430, \u0430 \u043d\u0435 \u0431\u0435\u043b\u043a\u0430 \u043a\u0430\u043a \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438, \u043f\u043e\u0438\u0433\u0440\u0430\u043b\u0438\u0441\u044c \u0438 \u0445\u0432\u0430\u0442\u0438\u0442. \u0423\u0434\u0430\u043b\u0438\u0442\u0435 hello2.lua \u0438 \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u0432 main.lua \u0438 \u043e\u0447\u0438\u0437\u0430\u0435\u043c \u043f\u0430\u043f\u043a\u0443 res. \u0412 \u043f\u0430\u043f\u043a\u0443 res \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c <a href=\"http:\/\/beta.hstor.org\/storage3\/c04\/948\/137\/c04948137c958bbbf5cdfb8cf277d1bd.png\">\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443<\/a> \u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0435\u0435 habr.png. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0438\u0448\u0435\u043c \u0432 main \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:  <\/p>\n<pre><code class=\"lua\">--\u0412\u0441\u0435 \u043a\u043b\u0430\u0441\u0441\u044b \u043a\u043e\u043a\u043e\u0441\u0430 require &quot;Cocos2d&quot; --\u0412\u0441\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043a\u043e\u043a\u043e\u0441\u0430 require &quot;Cocos2dConstants&quot;  -- \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 cclog = function(...)     print(string.format(...)) end  -- \u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 function __G__TRACKBACK__(msg)     cclog(&quot;\\n----------------------------------------&quot;)     cclog(&quot;LUA ERROR: &quot; .. tostring(msg))     cclog(debug.traceback())     cclog(&quot;----------------------------------------&quot;)     return msg end  collectgarbage(&quot;collect&quot;) -- \u041f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0443\u0442\u0435\u0447\u043a\u0443 \u043f\u0430\u043c\u044f\u0442\u0438 collectgarbage(&quot;setpause&quot;, 100) collectgarbage(&quot;setstepmul&quot;, 5000)  --\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0435\u0436\u0430\u0442 \u0432 \u043f\u0430\u043f\u043a\u0430\u0445 &quot;src&quot; \u0438 &quot;res&quot; cc.FileUtils:getInstance():addSearchResolutionsOrder(&quot;src&quot;); cc.FileUtils:getInstance():addSearchResolutionsOrder(&quot;res&quot;);  --\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0433\u0438\u0440\u0438\u043d\u0443 \u0438 \u0432\u044b\u0441\u043e\u0442\u0443 \u044d\u043a\u0440\u0430\u043d\u0430 SCREEN_WIDTH = cc.Director:getInstance():getWinSize().width SCREEN_HEIGHT = cc.Director:getInstance():getWinSize().height   local function main()     print(&quot;Resolution: &quot; .. SCREEN_WIDTH .. &quot;x&quot; .. SCREEN_HEIGHT)     --\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0441\u0446\u0435\u043d\u0443     require &quot;mainScene.lua&quot; end  --\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e main local status, msg = xpcall(main, __G__TRACKBACK__) if not status then     error(msg) end <\/code><\/pre>\n<p>  \u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 main \u043c\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0430\u0439\u043b mainScene.lua. \u0412 \u043d\u0435\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0446\u0435\u043d\u0430 \u0438\u0433\u0440\u044b. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0435\u0433\u043e \u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0442\u0443\u0434\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:  <\/p>\n<pre><code class=\"lua\">-- \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b local NONE = 0 local ROTATION = 1 local SCALLING = 2 local MOVING = 3  -- \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 local state, rotation, scale, ox, oy, delta, habrImage, moving  -- \u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u0433\u0434\u0430 \u043f\u0430\u043b\u0435\u0446 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u044d\u043a\u0440\u0430\u043d\u0430 local function onTouchBegan(touch, event)     -- \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435     state = (state + 1) % 4     -- \u0418 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043a \u0434\u0435\u0444\u043e\u043b\u0442\u0443     resetVariables() end  -- \u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e, \u0430 \u0432 dt \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u044f \u0441 -- \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430. \u0415\u0441\u043b\u0438 dt == 1.0, \u0442\u043e \u0441 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u0440\u043e\u0448\u043b\u0430 -- \u043e\u0434\u043d\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u0430 local function update(dt)     if state == ROTATION then         --\u043a\u0440\u0443\u0442\u0438\u043c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443         rotation = rotation + delta * dt     elseif state == SCALLING then         --\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c         scale = scale + dt * delta     elseif state == MOVING then         --\u0417\u0434\u0435\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u043d\u043e \u0432\u0441\u0435 \u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e:         --\u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043c\u044b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u044b\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e moving, \u0430         --\u043f\u043e\u0442\u043e\u043c \u0431\u0435\u0440\u0435\u043c \u0435\u0435 \u0437\u0430 \u0443\u0433\u043e\u043b \u0434\u043b\u044f \u043a\u043e\u0441\u0438\u043d\u0438\u0441\u0443 \u0438 \u0441\u0438\u043d\u0443\u0441\u0430         --\u0438 \u043a\u0440\u0443\u0442\u0438\u043c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043f\u043e \u043a\u0440\u0443\u0433\u0443         moving = moving + delta * dt         local radius = 50         ox = radius * math.sin(moving)         oy = radius * math.cos(moving)     end           -- \u0412 love2d \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u044d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u0440\u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0438     -- \u0417\u0434\u0435\u0441\u044c \u0443 \u043d\u0430\u0441 \u0441\u043f\u0440\u0430\u0439\u0442 \u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0435\u043c\u0443     -- \u0432\u0441\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e          -- \u041c\u0435\u043d\u044f\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440     habrImage:setScale(scale)     -- \u041c\u0435\u043d\u044f\u0435\u043c \u0443\u0433\u043e\u043b     habrImage:setRotation(rotation)     -- \u041c\u0435\u043d\u044f\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e     habrImage:setPosition(cc.p(SCREEN_WIDTH \/ 2 + ox, SCREEN_HEIGHT \/ 2 + oy)) end  local function init()     print(&quot;Creating main scene&quot;)     -- \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0446\u0435\u043d\u0443     local mainScene = cc.Scene:create()     -- \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043b\u043e\u0439 \u0441 \u0444\u043e\u043d\u043e\u0432\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c     -- \u0417\u0434\u0435\u0441\u044c \u044f \u0431\u044b \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0443\u0437\u0443 \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e     -- \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u0443\u0448\u043b\u043e 2 \u0447\u0430\u0441\u0430 \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0446\u0432\u0435\u0442     -- \u0444\u043e\u043d\u0430. 1) \u0412 C++ \u043d\u0435\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 cc.c4b(r,g,b,a) \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c     -- \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0435 \u043d\u0430 C++  \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u0430 \u043d\u0430     -- cocos2d-x-js, \u0442.\u043a. \u043e\u043d \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u0435\u043d \u0447\u0435\u043c cocos2d-x-lua     -- \u0438 \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u043d\u0443\u0436\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432 C++, \u0442\u043e \u0438\u0449\u0438\u0442\u0435 \u0435\u0435 \u0432     -- JavaScript \u0432\u0435\u0440\u0441\u0438\u0438, \u043e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0441 \u0435\u0432\u0435\u043d\u0442\u0430\u043c\u0438     local gameLayer = cc.LayerColor:create(cc.c4b(255, 255, 255, 255))     -- \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043f\u0440\u0430\u0439\u0442     habrImage = cc.Sprite:create(&quot;res\/habr.png&quot;)     --\u0421\u0442\u0430\u0432\u0438\u043c \u0435\u0433\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u0446\u0435\u043d\u0442\u0440\u0443     habrImage:setAnchorPoint(0.5, 0.5)     --\u0421\u0442\u0430\u0432\u0438\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043d\u0430 \u0446\u0435\u043d\u0442\u0440 \u044d\u043a\u0440\u0430\u043d\u0430     habrImage:setPosition(cc.p(SCREEN_WIDTH \/ 2, SCREEN_HEIGHT \/ 2))     --\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u043a \u0441\u043b\u043e\u044e     gameLayer:addChild(habrImage)      state = 0     resetVariables()          -- \u0427\u0442\u043e\u0431\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u044f update \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043a\u043e\u043a\u043e\u0441\u0443, \u0447\u0442\u043e \u0435\u0435 \u043d\u0443\u0436\u043d\u043e     -- \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c     cc.Director:getInstance():getScheduler():scheduleScriptFunc(update, 0, false)     -- \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043b\u0438\u0441\u0435\u043d\u0438\u0440\u044b \u0434\u043b\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0439. \u0425\u043e\u0447\u0443 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e     -- \u0442\u0438\u043f\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u043b\u0438\u0441\u0435\u043d\u0435\u0440.     local listener = cc.EventListenerTouchOneByOne:create()     -- \u0413\u043e\u0432\u043e\u0440\u0438\u043c \u043b\u0438\u0441\u0435\u043d\u0438\u0440\u0443, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u0442\u043e \u0442\u0438\u043f \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0441\u0432\u044f\u0437\u0432\u043d \u0441 \u0442\u0430\u043a\u043e\u0439 \u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439     listener:registerScriptHandler(onTouchBegan, cc.Handler.EVENT_TOUCH_BEGAN )     -- \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u0441\u0435\u043d\u0435\u0440 \u043a \u0441\u043b\u043e\u044e     local eventDispatcher = gameLayer:getEventDispatcher()     eventDispatcher:addEventListenerWithSceneGraphPriority(listener, gameLayer)     --\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043b\u043e\u0439 \u043a \u0441\u0446\u0435\u043d\u0435     mainScene:addChild(gameLayer)          --\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438\u043b\u0438 \u0435\u0441\u043b\u0438 \u0443\u0436\u0435 \u0447\u0442\u043e-\u043b\u0438\u0431\u043e \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0441\u0446\u0435\u043d\u0443     if cc.Director:getInstance():getRunningScene() then         cc.Director:getInstance():replaceScene(mainScene)     else         cc.Director:getInstance():runWithScene(mainScene)     end end  function resetVariables()     rotation = 0     scale = 1     ox = 0     oy = 0     delta = 20     moving = 0 end  --\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0446\u0435\u043d\u0443 init() <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u043f\u043e\u043c\u043e\u0449\u0438 \u0441 \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u043e\u0432. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445: \u041f\u043e\u0440\u0442 \u043d\u0430 \u043b\u0443\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u0435\u043d \u0421++ \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0435\u0441\u0442\u044c <a href=\"http:\/\/www.cocos2d-x.org\/wiki\/How_to_call_c++_from_lua\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445: \u043a\u0430\u043a \u044f \u0440\u0430\u043d\u0435\u0435 \u043f\u0438\u0441\u0430\u043b, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0447\u0442\u043e-\u043b\u0438\u0431\u043e \u0432 \u043f\u043e\u0440\u0442\u0435 \u0421++, \u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0434\u043b\u044f JS \u0434\u0432\u0438\u0436\u043a\u0430. \u041e\u043d \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u0435\u043d \u0447\u0435\u043c \u043b\u0443\u0430, \u043e\u0434\u043d\u0430\u043a\u043e \u0432 \u043d\u0435\u043c \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u043b\u0438\u0447\u0438\u0439, \u043d\u043e \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u043e\u043d \u043c\u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u043b. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0432\u044b\u0448\u043b\u043e \u043d\u0430\u0436\u043c\u0438\u0442\u0435 F11. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0430\u043d\u0434\u0440\u043e\u0438\u0434 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u00abDebug configurations\u00bb \u0438 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0430\u043d\u0434\u0440\u043e\u0438\u0434. \u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0443\u0436\u0435\u043d \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 adb, \u043d\u043e \u043f\u0440\u043e \u044d\u0442\u043e \u0438 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0435\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u043e\u0431 \u044d\u0442\u043e\u043c. \u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0441\u0435 \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435 (:<\/p>\n<p>  \u0412\u043e\u0442 \u0447\u0442\u043e \u0432\u044b\u0448\u043b\u043e \u0432 \u0438\u0442\u043e\u0433\u0435:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/789\/195\/51d\/78919551dbb64a36bbb11cff10183616.PNG\"\/>      \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\/232013\/\"> http:\/\/habrahabr.ru\/post\/232013\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">     \t<img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/ff1\/c90\/0b1\/ff1c900b14d54dffbda58961032a9854.jpg\"\/><\/p>\n<p>  \u0414\u043e\u0431\u0440\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0443\u0442\u043e\u043a.<br \/>  \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044f \u043d\u0435 \u043d\u0430\u0448\u0435\u043b \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u043e\u0432 \u043f\u043e Cocos2d \u0438 Lua, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0440\u0430\u0434\u0430\u0442\u044c \u0438 \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043d\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u043b\u0438 \u043c\u043e\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u0441\u0442. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0438\u0433\u0440\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <a href=\"http:\/\/www.cocos2d-x.org\/\">\u0421ocos2d-x<\/a>, Cocos Code IDE \u0438 Lua. <a href=\"http:\/\/habrahabr.ru\/post\/202540\/\">\u0420\u0430\u043d\u0435\u0435<\/a>, \u044f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0433\u0440 \u043d\u0430 Love2d. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u044e \u0441\u0442\u0430\u0440\u044b\u0439 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u0434\u043b\u044f \u043a\u043e\u043a\u043e\u0441\u0430 \u0438 \u043a\u0430\u043a \u044d\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0430\u043d\u0434\u0440\u043e\u0438\u0434\u0435 (\u041d\u0438 \u044f\u0431\u043b\u043e\u043a\u0430, \u043d\u0438 \u043c\u0430\u043a\u0430 \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442\u0443).  <\/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-232013","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/232013","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=232013"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/232013\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=232013"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=232013"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=232013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}