<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Flash заметки</title>
	<atom:link href="http://flashnotes.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://flashnotes.ru</link>
	<description>Заметки флешера</description>
	<lastBuildDate>Tue, 21 Feb 2012 19:32:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Nape 2 &#8211; Кинематические тела</title>
		<link>http://flashnotes.ru/2012/02/21/nape-2-kinematicheskie-tela/</link>
		<comments>http://flashnotes.ru/2012/02/21/nape-2-kinematicheskie-tela/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 09:08:56 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Nape]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Физика]]></category>
		<category><![CDATA[kinematic body]]></category>
		<category><![CDATA[Nape 2]]></category>
		<category><![CDATA[Кинематические тела]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=906</guid>
		<description><![CDATA[Интересным типом тела является кинематический. Этот тип дает возможность вручную управлять телом &#8211; положение, вращение. На эти тела не действует гравитация, разные силы. Они не сталкиваются с другими кинематическими и статическими телами. С ними могут сталкиваться динамические тела. При столкновении кинем. и динам. тела, если динам. тело спит то оно пробуждается. Отчасти кинематическое тело можно [...]]]></description>
			<content:encoded><![CDATA[<p>Интересным типом тела является кинематический. Этот тип дает возможность вручную управлять телом &#8211; положение, вращение.<br />
На эти тела не действует гравитация, разные силы. Они не сталкиваются с другими кинематическими и статическими телами. С ними могут сталкиваться динамические тела. При столкновении кинем. и динам. тела, если динам. тело спит то оно пробуждается. Отчасти кинематическое тело можно сравнить с динамическим у которого allowMovement и allowRotation установлены в false (эти параметры отключают возможность динамическому телу двигаться и вращатся).<br />
При столкновении динамического и кинематического тела генерируются те же события, которые генерятся при столкновении динамического с динамическим.<br />
<span id="more-906"></span><br />
<strong>Как можно использовать кинематическое тело?</strong><br />
Например, для создания разного рода движущихся платформ, лифтом, конвейеров.<br />
Для перемещения кинем. тела вы можете непосредственно задавать координаты и поворот так:</p>
<div class="codecolorer-container actionscript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">_kinematicBody.<span style="color: #0066CC;">position</span>.<span style="color: #006600;">y</span> += <span style="color: #cc66cc;">5</span>;<br />
_kinematicBody.<span style="color: #006600;">rotation</span> += <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">PI</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">180</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">10</span>;</div></div>
<p>Но как говорит Лука, &#8220;это похоже на телепортацию&#8221;, потому хорошей симуляции у вас не получится. Вот пример движущийся по средством изменения позиции <a href="http://megaswf.com/serve/2139482." target="_blank">кинематической платформы и динамического тела</a> на ней. Как видно результат ужасен &#8211; динамический кубик прыгает, дергается &#8211; вообщем полная фигня. Поэтому, лучше сразу забудьте эту возможность.</p>
<p>Второй способ, который является правильным, это перемещения платформы с помощью задания скорости (velocity) и вращение посредством задания угловой скорости (angularVel):</p>
<div class="codecolorer-container actionscript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">_kinematicBody.<span style="color: #006600;">velocity</span>.<span style="color: #006600;">setxy</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span>;<br />
_kinematicBody.<span style="color: #006600;">angularVel</span> = <span style="color: #cc66cc;">2</span>;</div></div>
<p>Вот теперь так выглядит <a href="http://megaswf.com/serve/2140920" target="_blank">платформа </a><br />
Значительно лучше!</p>
<p>Далее демонстрация того, что кинематическое тело выводит динамическое <a href="http://megaswf.com/serve/2150933" target="_blank">из сна</a>.<br />
(две кинематические платформы и динамический кубик, который засыпает)</p>
<p>Есть такие свойства у тела: <strong>kinematicVel/kinAngVel</strong><br />
На самом деле они никак не связаны с кинематическим телом, а названы они похоже тому как не изменяется кинематическое тело во время симуляции, так и они являются неизменными, то есть во время симуляции физ движок никак не влияет и не изменяет их. </p>
<p>Также, есть свойство <strong>surfaceVel</strong>, которое тоже указывает скорость для поверхности.</p>
<p><strong>kinematicVel </strong>и <strong>surfaceVel </strong>очень похоже, но между ними есть разница.<br />
<strong>kinematicVel </strong>применяется во всех физических стимуляциях (сопротивлении жидкости, вычислениях соединений, вычислениях при столкновении с другими объектами).<br />
<strong>surfaceVel </strong>применяется только если есть столкновение с другим телом (применяется к этому телу).</p>
<p><strong>Для чего это можно использовать?</strong><br />
Для создания конвейеров и трамплинов.<br />
Есть еще одна разница между <strong>kinematicVel </strong>и <strong>surfaceVel</strong>.<br />
Для <strong>kinematicVel </strong>если вы задаете Vec2(0, -10) &#8211; то тело, которое столкнулось с этой платформой будет получать скорость направленную вверх, потому  будет подпрыгивать. Ну и наоборот, если +10 тело будет стремится вниз, то есть не будет подпрыгивать  (Лука говорит так, представь что земля двигается вниз).<br />
Если тоже значение задать <strong>surfaceVel</strong>, то тело при столкновении будет двигаться в противоположную сторону, то есть при +10 будет двигаться вверх (+y вдоль нормали).</p>
<p>Ну и на последок демка с лифтом, surfaceVel, kinematicVel&#8230;<br />
Исходный код <a href="http://pastebin.com/Ub2PELEb" target="_blank">тут</a> и <a href='http://flashnotes.ru/downloads/2012/02/Nape2KinematicBody.zip'>тут</a>.</p>
<p>
<object width="800" height="600">
<param name="movie" value="http://flashnotes.ru/downloads/2012/02/Nape2KinematicBody.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#eeeeee"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="800" height="600" src="http://flashnotes.ru/downloads/2012/02/Nape2KinematicBody.swf" quality="high" bgcolor="#eeeeee" wmode="window" menu="false" ></embed>
</object>
</p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/02/21/nape-2-kinematicheskie-tela/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Проект Astella больше не существует</title>
		<link>http://flashnotes.ru/2012/02/19/proekt-astella-bolshe-ne-sushhestvuet/</link>
		<comments>http://flashnotes.ru/2012/02/19/proekt-astella-bolshe-ne-sushhestvuet/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 20:48:25 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[IDE]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Astella]]></category>
		<category><![CDATA[Astella не существует]]></category>
		<category><![CDATA[Idea]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=915</guid>
		<description><![CDATA[Об этом сообщили позавчера в блоге разработчика. Разработчики приняли решение сделать так сказать слияние Astella и Idea. Теперь весь функционал Astella будет доступно из Idea начиная с версии 11.1. Триальный период Astella заканчивается 20 февраля, новых билдов не будет, а Idea 11.1 еще нету. Это значит, что завтра я не смогу продолжить писать код. Как [...]]]></description>
			<content:encoded><![CDATA[<p>Об этом сообщили позавчера в <a href="http://blog.jetbrains.com/astella/2012/02/17/jetbrains-astella-merges-into-intellij-idea/" target="_blank">блоге разработчика</a>.<br />
Разработчики приняли решение сделать так сказать слияние <strong>Astella </strong>и <strong>Idea</strong>.<br />
Теперь весь функционал <strong>Astella </strong>будет доступно из <strong>Idea </strong>начиная с версии 11.1.<br />
Триальный период <strong>Astella</strong> заканчивается 20 февраля, новых билдов не будет, а <strong>Idea 11.1</strong> еще нету. Это значит, что завтра я не смогу продолжить писать код. Как же быть?<br />
Не знаю для кого как, а для меня эта новость не очень позитивна. Хотя может быть когда попробую реиркарнацию <strong>Astella</strong> в <strong>Idea</strong> то все образуется <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Хотя мне пока не понятно, почему для других языков разрабы смогли выделить отдельные IDE (PhpStorm, RubyMine&#8230;), а для flash нет&#8230;</p>
<p><strong>UPD</strong>: Скачать Idea 11.1 можно <a href="http://confluence.jetbrains.com/display/IDEADEV/IDEA+11.1+EAP" title="Idea 11.1" target="_blank">здесь</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/02/19/proekt-astella-bolshe-ne-sushhestvuet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nape 2 &#8211; немного глубже в новшества фигур и тел</title>
		<link>http://flashnotes.ru/2012/02/08/nape-2-nemnogo-glubzhe-v-novshestva-figur-i-tel/</link>
		<comments>http://flashnotes.ru/2012/02/08/nape-2-nemnogo-glubzhe-v-novshestva-figur-i-tel/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 21:50:41 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Nape]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Физика]]></category>
		<category><![CDATA[bodies]]></category>
		<category><![CDATA[Nape 2]]></category>
		<category><![CDATA[shapes]]></category>
		<category><![CDATA[тела]]></category>
		<category><![CDATA[фигуры]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=888</guid>
		<description><![CDATA[В новой версии API для фигур и тел значительно расширились. Я не буду описывать все, выберу только те моменты, которые мне показались самыми значительными. Фигуры (Shape) Теперь фигуры можно двигать, вращать в теле как угодно, масштабировать и даже делать какие либо трансформации. Появился метод copy, который делает копию фигуры, теперь будет значительно легче организовать пулл [...]]]></description>
			<content:encoded><![CDATA[<p>В новой версии API для фигур и тел значительно расширились.<br />
Я не буду описывать все, выберу только те моменты, которые мне показались самыми значительными.</p>
<p><strong>Фигуры  </strong>(<strong><a href="http://deltaluca.me.uk/docnew/pckg/nape/shape/Shape.html" title="Shape - документация" target="_blank">Shape</a></strong>)<br />
Теперь фигуры можно <a href="http://deltaluca.me.uk/docnew/pckg/nape/shape/Shape.html#translate" target="_blank">двигать</a>, <a href="http://deltaluca.me.uk/docnew/pckg/nape/shape/Shape.html#rotate" target="_blank">вращать </a>в теле как угодно, <a href="http://deltaluca.me.uk/docnew/pckg/nape/shape/Shape.html#scale" target="_blank">масштабировать </a>и даже делать какие либо <a href="http://deltaluca.me.uk/docnew/pckg/nape/shape/Shape.html#transform" target="_blank">трансформации</a>.<br />
Появился метод <a href="http://deltaluca.me.uk/docnew/pckg/nape/shape/Shape.html#copy" target="_blank">copy</a>, который делает копию фигуры, теперь будет значительно легче организовать пулл с фабрикой <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
И последний и возможно главный призер, это свойства для воды (<a href="http://deltaluca.me.uk/docnew/pckg/nape/shape/Shape.html#fluidProperties" title="Свойства для воды" target="_blank">fluidProperties</a>). Да-да в новом нейпе есть, наконец то, вода! (об этом немного позже)<br />
Еще одно упрощение было сделано. Из API удален метод  updateShape, а его функциональность автоматизирована и скрыта от пользователя.<br />
<span id="more-888"></span><br />
<strong>Тела </strong>(<strong><a href="http://deltaluca.me.uk/docnew/pckg/nape/phys/Body.html" title="Body - документация" target="_blank">Body</a></strong>)<br />
В телах также много изменений &#8211; было добавлено много новых свойств (напр. kinematicVel, kinAngVel, surfaceVel &#8230;), некоторые были переименованы.<br />
Также добавлена целая куча методов, которые облегчают жизнь (напр. для работы с шейпами тела &#8211; те же повороты, масштабирования &#8230;, определения всевозможных импульсов и т.д.)<br />
Остановлюсь на нескольких.</p>
<p><strong>1.</strong> Свойство <strong>graphic</strong>.<br />
Изменился тип этого свойства. Теперь это свойство имеет динамический тип. Для корректного просчета и отображения подразумевается, что передаваемый объект должен обладать свойствами x, y, а также rotate, который должен принимать градусы.<br />
Но если это не так то смотрим на&#8230;</p>
<p><strong>2.</strong> Новое свойство &#8211; <strong>graphicUpdate</strong>.<br />
Это свойство типа Function, которому можно присвоить собственный хендлер обновления позиции и поворотов для графики.<br />
Представьте, что вы пишете игру с помощью <strong>Stage3d</strong>. Для этого вы используете уже готовые фреймворки типа <strong><a href="http://www.starling-framework.org/" title="Starling framework" target="_blank">Starling</a></strong>, <strong><a href="http://blog.flash-core.com/?p=838" title="Genome2d  framework" target="_blank">Genome2d</a> </strong>или <strong><a href="http://www.nulldesign.de/category/experiments/nd2d/" title="ND2D  framework" target="_blank">ND2D</a></strong>.<br />
Напр. вы используете Starling. В этом фреймворке (как и у других названых) нету привычной иерархии DisplayObject.<br />
Благодаря тому, что свойство <strong>graphic </strong>теперь  динамического типа вы можете ему присвоить визуальный объект старлинга. А так как этот объект принимает для свойства <strong>rotation </strong>радианы вам нужно это отдельно обработать.<br />
И вот вы пишите приблизительно такой код:</p>
<div class="codecolorer-container actionscript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">body.<span style="color: #006600;">graphic</span> = starling_display_object;<br />
body.<span style="color: #006600;">graphicUpdate</span> = updateGraphic;<br />
<span style="color: #808080; font-style: italic;">//...</span><br />
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> updateGraphic<span style="color: #66cc66;">&#40;</span>b:Body<span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; b.<span style="color: #006600;">graphic</span>.<span style="color: #006600;">x</span> = b.<span style="color: #0066CC;">position</span>.<span style="color: #006600;">x</span>;<br />
&nbsp; &nbsp; b.<span style="color: #006600;">graphic</span>.<span style="color: #006600;">y</span> = b.<span style="color: #0066CC;">position</span>.<span style="color: #006600;">y</span>;<br />
&nbsp; &nbsp; b.<span style="color: #006600;">graphic</span>.<span style="color: #006600;">rotation</span> = b.<span style="color: #006600;">rotation</span>; <span style="color: #808080; font-style: italic;">//Body использует радианы и старлинг объект тоже, потому ничего конвертировать не надо</span><br />
<span style="color: #66cc66;">&#125;</span></div></div>
<p>Или может вам понадобится еще для чего эта ручная обработка &#8211; у вас такая возможность есть. </p>
<p><strong>3.</strong> Новое поле <strong>compound </strong>типа <strong><a href="http://deltaluca.me.uk/docnew/pckg/nape/phys/Compound.html" title="Класс Compound " target="_blank">Compound</a></strong>.<br />
Что это такое?<br />
<strong>Compound </strong>- новый тип участника взаимодействий. До этого были только Shape и Body. (Есть базовый класс Interactor от которого наследуются Shape, Body, Compound).<br />
<strong>Compound</strong>, это такое тело, которое может содержать другие тела (Body) и соединения.<br />
Для чего это нужно? Например, для вашей игры вы создали машинку (напр. <a href="http://www.emanueleferonato.com/downloads/TruckGame[1].swf" title="Физ машинка" target="_blank">вот такую</a>). Для этого вам надо по крайней мере три тела и четыре соединения. Вам надо как то менеджировать эту машинку. Если надо удалить машинку из мира, то надо удалять все тела и соединения. Для этого пишутся обычно врапера типа Actor и каким то образом обеспечивается хранение информации о телах и соединениях. Также пишется метод который будет удалять эти все тела из мира (так происходило в старой версии и так происходит (если я не ошибаюсь) в Box2d и теперь).<br />
С новым типом <strong>Compound </strong>все меняется. Создаваемые тела и соединения для сложных физ объектов просто добавляются в Compound и потом вы работаете с ним как с единым тело.<br />
Надо удалить машинку из мира? Нет проблем! Одним движение вы удаляете машинку полностью из мира. Надо переместить или повернуть машинку на сцене? Это делается на столько просто как будто работаете с одним Body.<br />
Также, есть метод copy, который делает полною копию <strong>Compound </strong>со всеми составляющими.<br />
Также, можно обрабатывать события взаимодействия между этими сложными телами.<br />
Это тело мы еще рассмотрим в будущем.</p>
<p>Ну вот кратко (очень кратко) рассмотрены новшества в телах. Много чего было автоматизировано и удалено из АПИ, много свойств и методов было переименовано и стали намного дружелюбней, и кончено же функционал стал намного богаче. </p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/02/08/nape-2-nemnogo-glubzhe-v-novshestva-figur-i-tel/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Мысли вслух или трейс ковыряния редактора RASE (Realaxy ActionScript Editor)</title>
		<link>http://flashnotes.ru/2012/02/08/mysdi-v-slux-ili-trejs-kovyryaniya-redaktora-rase-realaxy-actionscript-editor/</link>
		<comments>http://flashnotes.ru/2012/02/08/mysdi-v-slux-ili-trejs-kovyryaniya-redaktora-rase-realaxy-actionscript-editor/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 22:15:49 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[IDE]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[RASE]]></category>
		<category><![CDATA[Realaxy ActionScript Editor]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=870</guid>
		<description><![CDATA[Наслышан о RASE редакторе и потому решил посмотреть на него. Сначала подумал о том чтобы поискать туториалы по нему, а то помню как один парень высказался типа &#8220;&#8230; у разных редакторов разный порог входа но у вас (rase) это не порог это двух метровый забор с колючей проволкой, с собаками и пулеметом&#8221;, но тут решил [...]]]></description>
			<content:encoded><![CDATA[<p>Наслышан о <strong><a href="http://realaxy.com/" title="Realaxy ActionScript Editor" target="_blank">RASE редакторе</a></strong> и потому решил посмотреть на него.<br />
Сначала подумал о том чтобы поискать туториалы по нему, а то помню как один парень высказался типа &#8220;&#8230; у разных редакторов разный порог входа но у вас (rase) это не порог это двух метровый забор с колючей проволкой, с собаками и пулеметом&#8221;, но тут решил что, а если сам то смогу разобраться или нет?<br />
Вот и полез сам разбираться <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Скачал, установил (build 9123) и понеслась&#8230; Установка прошла без всяких сюрпризов.<br />
Запустил. Ну вроде нормально запустилось, вижу незамысловатое окно. Почему то при старте не выскочило окно <strong>Tip of day</strong>, хотя когда его открыл спецом то там стояла галочка <strong>Show tips on startup</strong>.<br />
Попробую создать проект. Указываю &#8220;Создать с нуля&#8221;, задаю имя проекта, указываю прожект фолдер, отказываюсь от создания модуля. Так как <strong>RASE </strong>построен на <strong>Idea </strong>идеологии, то тут тоже везде суют создание модуля, я лично это терпеть ненавижу. В основном Flash-проекты не такие как java-enterprise и этой дополнительной сложности они не требуют (в большинстве случаев). Также хочется отдельно сказать о указании <strong>Project path</strong>. Я хотел бы чтобы у меня был один workspace фолдер и туда ложились проекты, которые я создаю (конечно возможность в случае должна быть но по умолчанию должно быть место где хранятся проекты, чтобы я не думал куда он сохранился, а точно знал где он есть), в конце концов это просто удобно. Хотя тут конечно можно сказать &#8220;Да ладно, привык ты к своим Eclipse-like платформам..&#8221;</p>
<p>Я тут немного слукавил&#8230;<br />
<span id="more-870"></span><br />
Я слежу за этим проектом с тех времен когда Дембицкий с Потапенком в подкастах показывали отличные зарисовки от Колина Мука <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Тогда еще разговор шел что то типа создание кода без компиляции, то ли компиляция на лету. Ну да ладно, давно это было уже всего не помню.<br />
Ага, вот нажал кнопку Finish. Мой комп изрядно попотел пока происходило создание проекта, потом индексация&#8230; В конце он скушал 355Мб памяти и вот я могу приступить работать дальше. Тут же вылезло окошко Tip of the day. Значит должно было тут вылазить ))<br />
Ну значит проект создан.. Смотрю я туда и вижу что нельзя без модулей ничего сделать. То есть для начала работы надо создать модуль. Правой кнопкой по проекту и в конекстном меню я выбрал, почему то, &#8220;<strong>Organized Imports</strong>&#8220;. Как то неожиданно&#8230; Хотя нет ожиданно &#8211; я решил посмотреть что будет. Ведь никаких исходных файлов нету и я подумал, а для чего тогда присутствует эта опция?<br />
Ну во общем нажал я и все как то повисло на секунд 5. Я думал что уже все, приехали. Ан нет, тут выскочило окно с значком информации, но самой информации небыло. Я нажал ОК и закрыл окно.</p>
<p>Кстати, когда я создал проект я оставил <strong>RASE </strong>открытым, а сам ушел на 6 часов. Придя обратно заметил что потребляемая память снизилась до 100Мб, хотя как только что то начал делать поднялась до 150. Интересно..</p>
<p>Ну вот создал модуль, потом пакет, и собственно класс. Надо сказать все культурно <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Все понятно и логично.<br />
И вот я начал писать код&#8230; Забудьте, что это текстовый редактор!<br />
Я минут 15 потратил на то, чтобы разобраться как написать var textField:TextField = new TextField();<br />
Все передвижение по кнопке таб, вроде должно быть удобно и вот это var textField:TextField я вроде быстро написал, но когда писал тип класса опечатался и написал Textfield. Нажал Cntr+space мне говорит нет саггестов, потом нажал Alt+Enter мне предложило создать этот класс или интерфейс. И только когда набрал имя класса правильно (хотя оно и так правильное только один символ не в том регистре. Хотя хорошо что не заставило полное имя класса с пакетами <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) и опять нажал Alt+Enter выпали две предыдущие опции и последней добавилась &#8220;Import class flash.text.TextField&#8221;.<br />
Интересно что почему эта опция добавилась самым последним пунктом, если логичнее чтобы это был первый пункт так как в 99% случаев если класс уже существует то скорее всего мы хотим добавить именно его? Ну вроде с этой задачей справился, хотя тоже это выражение new TextField(); уже было написано когда я добавлял импорт и почему то было подсвечено красным. Надо было установить курсор после TextField и нажать Ctrl+space. Что то сделалось и краснуха пропала.</p>
<p>Попытался я этот объект textField добавить в список отображения.. Господи, ничто так не раздражает как когда среда не понимает слова в регистрах отличных от оригинала. addch при Ctrl+space не шарит, а вот addCh это уже другое дело, сразу понимает что мне надо addChild, а в первом случае мне наверное надо было addchukchu&#8230; Это такая бомба-фича наверное во всех продуктах JetBrains &#8211; пробовал и в <strong>Idea </strong>и в <strong>Astella </strong>- та же фича <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Ну ок. Теперь хочу запустить. Просто никак запустить не получится. Для начала надо класс сделать запускаемым. На классе правой кнопкой и выбираем &#8220;Make Class Main&#8221;. Потому надо создать конфигурацию запуска. Ок, там понятно, создал конфигурацию, вот только одно нифига не понял &#8211; как же установить нужный мне браузер. Как сделать, например, чтобы я могу запускать и дебажить в Firefox?? Эту же задачу я не смог сделать в <strong>Astella</strong>. Может там все очевидно, а я просто туплю жестко? (если откровенничать то я не смог эту же задачу сделать и в FlashDevelop. Потратил кучу времени, экспериментировал, инет рыл и так не получилось. Удивительно но во <strong>FlashBuilder </strong>это делается настолько просто и очевидно, что я начинаю присматриваться к себе <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>И вот наконец УРА!!! Я запустил!<br />
Конечно открылось в standalone flash player но и это уже радует.<br />
Надо отметить что многие диалоги, окна со свойствами и т.д. в <strong>RASE </strong>намного лучше чем например в той же <strong>Astella </strong>или <strong>Idea</strong>, что конечно порадовало.</p>
<p>Это никакой не обзор или заключение по редактору, просто трейс работы.<br />
Одно можно точно сказать этот редактор не похож на другие редакторы. Тут абсолютно другая парадигма работы. Очень много если не все автоматизированно. Однозначно этому редактору надо обучатся, но я думаю это того стоит.<br />
Конечно теперь надо почитать <a href="http://blog.realaxy.com/tagged/articles" target="_blank">статьи</a>, <a href="http://www.youtube.com/watch?v=P4LpcClVb5U&#038;feature=mfu_in_order&#038;list=UL&#038;hd=1" target="_blank">туториалы</a> как и чего надо делать в <a href="http://realaxy.com/ru/" title="Русская страница RASE" target="_blank">RASE</a>, чтобы понять эту среду.<br />
Пока как то так&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/02/08/mysdi-v-slux-ili-trejs-kovyryaniya-redaktora-rase-realaxy-actionscript-editor/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Nape 2 &#8211; Создаем пространство с телами</title>
		<link>http://flashnotes.ru/2012/02/07/nape-2-sozdaem-prostranstvo-s-telami/</link>
		<comments>http://flashnotes.ru/2012/02/07/nape-2-sozdaem-prostranstvo-s-telami/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 01:48:08 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Nape]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Физика]]></category>
		<category><![CDATA[Nape 2 - Создаем пространство]]></category>
		<category><![CDATA[nape overhaul]]></category>
		<category><![CDATA[new nape]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=831</guid>
		<description><![CDATA[Начнем, конечно же, с создания пространства где и будет происходить вся симуляция. Итак, посмотрим что здесь нового в отличие от старой версии. private var _space:Space; _space = new Space&#40;new Vec2&#40;0, 400&#41;, Broadphase.SWEEP_AND_PRUNE&#41;; Первое на что надо обратить внимание всего один класс пространства &#8211; Space. Больше никаких пространств. Второе, два параметра &#8211; первый гравитация (по-умолчанию 0,0), [...]]]></description>
			<content:encoded><![CDATA[<p>Начнем, конечно же, с создания пространства где и будет происходить вся симуляция.<br />
Итак, посмотрим что здесь нового в отличие от старой версии.</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> _space<span style="color: #000066; font-weight: bold;">:</span>Space<span style="color: #000066; font-weight: bold;">;</span><br />
_space = <span style="color: #0033ff; font-weight: bold;">new</span> Space<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">400</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span> Broadphase<span style="color: #000066; font-weight: bold;">.</span>SWEEP_AND_PRUNE<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>Первое на что надо обратить внимание всего один класс пространства &#8211; Space. Больше никаких пространств.<br />
Второе, два параметра &#8211; первый гравитация (по-умолчанию 0,0), второй это алгоритм для нахождения столкновений в данном пространстве.<br />
В классе Broadphase представлены две константы отвечающие за идентификацию этих алгоритмов:<br />
Broadphase.SWEEP_AND_PRUNE<br />
Broadphase.DYNAMIC_AABB_TREE<br />
<span id="more-831"></span><br />
Сильно не вникал в сами алгоритмы но вот что пишет Лука по этому поводу.<br />
<strong>SWEEP_AND_PRUNE </strong>- алгоритм более быстрый чем DYNAMIC_AABB_TREE и если у вас мало динамических постоянно движущихся объектов, то этот метод более предпочтительный.<br />
<strong>DYNAMIC_AABB_TREE</strong> &#8211; этот метод работает намного легче с большим диапазоном размеров объектов чем SWEEP_AND_PRUNE. Также этот метод предпочтительней если в вашем мире много статических, спящих или движущихся объектов.</p>
<p>Кончено, всегда лучше протестировать свою игру и с тем и с другим методом, чтобы определить оптимальный вариант.</p>
<p>Далее как и в старой версии слушаем ENTER_FRAME и в обработчике вызываем метод step из space с тремя параметрами &#8211; моделируемое время, (я так понимаю) количество итераций для скорости и позиции, чем выше это значение тем больше надо времени для просчета но тем точнее симуляция (по умолчанию установлено в 10).</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> _timeStep<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=number%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:number.html"><span style="color: #004993;">Number</span></a> = <span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">30.0</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> _velocityIterations<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=int%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:int.html"><span style="color: #004993;">int</span></a> = <span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> _positionIterations<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=int%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:int.html"><span style="color: #004993;">int</span></a> = <span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> enterFrameHandler<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=event%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:event.html"><span style="color: #004993;">Event</span></a><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><br />
<span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp;_space<span style="color: #000066; font-weight: bold;">.</span>step<span style="color: #000000;">&#40;</span>_timeStep<span style="color: #000066; font-weight: bold;">,</span> _velocityIterations<span style="color: #000066; font-weight: bold;">,</span> _positionIterations<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #000000;">&#125;</span></div></div>
<p>Пространство создано и симуляция работает, вот только пока нечего симулировать.<br />
Добавим тела.<br />
Есть (как и было) три типа тел &#8211; статическое, динамическое, кинематическое. Константы для этих типов хранятся в классе BodyType.<br />
Итак создадим тело. Статическую платформу и динамический кубик, который будет падать на нее <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Конструктор класса Body принимает два параметра &#8211; типа тела и позицию в пространстве. Тип задаем, а позицию оставляем, мы потом ее поставим.</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> createBodies<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><br />
<span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #6699cc; font-weight: bold;">var</span> staticBody<span style="color: #000066; font-weight: bold;">:</span>Body = <span style="color: #0033ff; font-weight: bold;">new</span> Body<span style="color: #000000;">&#40;</span>BodyType<span style="color: #000066; font-weight: bold;">.</span>STATIC<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; <span style="color: #6699cc; font-weight: bold;">var</span> dynamicBody<span style="color: #000066; font-weight: bold;">:</span>Body = <span style="color: #0033ff; font-weight: bold;">new</span> Body<span style="color: #000000;">&#40;</span>BodyType<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">DYNAMIC</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <br />
<span style="color: #000000;">&#125;</span></div></div>
<p>Само тело это пустой враппер. Оно не имеет ни массы ни площади. Эти свойства задают фигуры (Shape) внутри тел. Потому, чтобы наше тело обрело физические и геометрические свойства надо добавить в него фигуру.<br />
Есть два типа фигур &#8211; круг (Circle) и полигон (Polygon).<br />
В фигуре есть свойство типа Material. Именно оно задает физические свойства фигуре.<br />
Есть такие свойства как: плотность (density), упругость (elasticity), статическое трение (staticFriction), динамическое трение (dynamicFriction), вращательное трение (rollingFriction).<br />
(в классе Material также есть уже заготовлены материалы, такие как дерево, сталь, лед и другие)</p>
<p>Создаем фигуру и добавляем ее в тело (тело может содержать множество разных фигур).<br />
Так как нам надо создать квадратную фигуру то мы должны использовать Polygon. В Polygon первым параметром надо передать массив вершин, вторым материал. Для упрощения нашей жизни в этом классе есть статический метод box, который в качестве параметров принимает ширину и высоту коробки (мы поставим 200х50). Этот метод возвращает массив вершин автоматически выровненные по центру. Материал поставим предустановленный &#8211; сталь.</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6699cc; font-weight: bold;">var</span> staticBoxShape<span style="color: #000066; font-weight: bold;">:</span>Polygon = <span style="color: #0033ff; font-weight: bold;">new</span> Polygon<span style="color: #000000;">&#40;</span>Polygon<span style="color: #000066; font-weight: bold;">.</span>box<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">200</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">50</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span> Material<span style="color: #000066; font-weight: bold;">.</span>steel<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>Теперь созданную фигуру надо добавить к телу. Для этого в классе Body есть свойство shapes. Это динамический список, который хранит все фигуры принадлежащие телу. В этом списке есть метод add, вот его и используем.</p>
<p>Теперь все выше описанное проделываем для динамического тела (только фигуру поменьше сделаем напр. 50х50).</p>
<p>Эти тела созданы и у них есть &#8220;начинка&#8221; в виде фигур, но они еще не участвуют в симуляции так как они не добавлены в мир.<br />
Но перед тем как добавить тела в мир сначала установим им нужную нам позицию, так как для статических тел невозможно установить позицию когда они находятся уже в мире, это приведет к ошибке.<br />
Теперь добавим тела в мир. Для этого просто надо их свойство space присвоить экземпляр нашего пространства.</p>
<p>Полный код метода createBodies</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">static <span style="color: #0033ff; font-weight: bold;">public</span> const APP_WIDTH<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=int%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:int.html"><span style="color: #004993;">int</span></a> = <span style="color: #000000; font-weight:bold;">800</span><span style="color: #000066; font-weight: bold;">;</span><br />
static <span style="color: #0033ff; font-weight: bold;">public</span> const APP_HEIGHT<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=int%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:int.html"><span style="color: #004993;">int</span></a> = <span style="color: #000000; font-weight:bold;">600</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> createBodies<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><br />
<span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #6699cc; font-weight: bold;">var</span> staticBody<span style="color: #000066; font-weight: bold;">:</span>Body = <span style="color: #0033ff; font-weight: bold;">new</span> Body<span style="color: #000000;">&#40;</span>BodyType<span style="color: #000066; font-weight: bold;">.</span>STATIC<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; <span style="color: #6699cc; font-weight: bold;">var</span> dynamicBody<span style="color: #000066; font-weight: bold;">:</span>Body = <span style="color: #0033ff; font-weight: bold;">new</span> Body<span style="color: #000000;">&#40;</span>BodyType<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">DYNAMIC</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #6699cc; font-weight: bold;">var</span> staticBoxShape<span style="color: #000066; font-weight: bold;">:</span>Polygon = <span style="color: #0033ff; font-weight: bold;">new</span> Polygon<span style="color: #000000;">&#40;</span>Polygon<span style="color: #000066; font-weight: bold;">.</span>box<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">200</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">50</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span> Material<span style="color: #000066; font-weight: bold;">.</span>steel<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; staticBody<span style="color: #000066; font-weight: bold;">.</span>shapes<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">add</span><span style="color: #000000;">&#40;</span>staticBoxShape<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #6699cc; font-weight: bold;">var</span> dynamicBoxShape<span style="color: #000066; font-weight: bold;">:</span>Polygon = <span style="color: #0033ff; font-weight: bold;">new</span> Polygon<span style="color: #000000;">&#40;</span>Polygon<span style="color: #000066; font-weight: bold;">.</span>box<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">50</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">50</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span> Material<span style="color: #000066; font-weight: bold;">.</span>wood<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; dynamicBody<span style="color: #000066; font-weight: bold;">.</span>shapes<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">add</span><span style="color: #000000;">&#40;</span>dynamicBoxShape<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Установим тела в нужные нам позиции</span><br />
&nbsp; &nbsp; staticBody<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>setxy<span style="color: #000000;">&#40;</span>APP_WIDTH<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">450</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; dynamicBody<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>setxy<span style="color: #000000;">&#40;</span>APP_WIDTH<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">200</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Добавим тела в мир</span><br />
&nbsp; &nbsp; staticBody<span style="color: #000066; font-weight: bold;">.</span>space = _space<span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; dynamicBody<span style="color: #000066; font-weight: bold;">.</span>space = _space<span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #000000;">&#125;</span></div></div>
<p>Все отлично, тела созданы, фигуры созданы, все находится в мире и симуляция шурует во всю. Но на экране ничего не видно!<br />
Потому как мы никакого отображения не добавили. Чтобы самому не придумывать велосипед и не рисовать вручную (или искать какую либо графику) Лука создал класс Debug и два потомка этого класса BitmapDebug и ShapeDebug. Эти классы автоматически нарисуют всю нам нужную графическую отладочною информацию &#8211; это и границы самой фигуры и соединения и точки столкновения и все все что нужно будет. Разница между ними небольшая &#8211; BitmapDebug использует опкоды алхимии для быстрой отрисовки (отрисовка происходит в битмапы). ShapeDebug использует стандартный набор Graphics, тем самым более медленный (но это не критично для нас, я буду использовать ShapeDebug (BitmapDebug может не работать в FlashPlayer 11.2, так как разрабы заявили что уберут оттуда опкоды)).</p>
<p>Создаем экземпляр класса ShapeDebug, как параметры передаем ширину и высоту нашего приложения (область которую нужно отрисовать), третий параметр цвет бекграунта, он не столь важный, просто используется чтобы Nape лучше подобрал цвета для затенения. Потому добавляем его свойство display в список отображения.<br />
Код выглядит так:</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> initDebugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><br />
<span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; _debug = <span style="color: #0033ff; font-weight: bold;">new</span> ShapeDebug<span style="color: #000000;">&#40;</span>APP_WIDTH<span style="color: #000066; font-weight: bold;">,</span> APP_HEIGHT<span style="color: #000066; font-weight: bold;">,</span> 0x555555<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; <span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>_debug<span style="color: #000066; font-weight: bold;">.</span>display<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #000000;">&#125;</span></div></div>
<p>В обработчике enter_frame мы каждый кадр очищаем то что нарисовали, рисуем заново и скидываем нарисованное на экран <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  (метод draw может принимает для рисования отдельные объекты, но мы ему передаем нарисовать целый мир)<br />
Код обработчика теперь выглядит так:</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> enterFrameHandler<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=event%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:event.html"><span style="color: #004993;">Event</span></a><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><br />
<span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; _space<span style="color: #000066; font-weight: bold;">.</span>step<span style="color: #000000;">&#40;</span>_timeStep<span style="color: #000066; font-weight: bold;">,</span> _velocityIterations<span style="color: #000066; font-weight: bold;">,</span> _positionIterations<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
&nbsp; &nbsp; _debug<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">clear</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; _debug<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">draw</span><span style="color: #000000;">&#40;</span>_space<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; _debug<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">flush</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #000000;">&#125;</span></div></div>
<p>(можете поиграться с классом <a href="http://deltaluca.me.uk/docnew/pckg/nape/util/Debug.html" title="Debug класс" target="_blank">Debug</a>. Большинство свойств по умолчанию отключены)</p>
<p>Еще надо заметить, что уже не надо создавать экземпляр класса Boot (new Boot();) как это было в прошлой версии, также при добавлении фигур в тело не надо вручную обновлять параметры тела, пересчитывать массу и центр масс. Таких методов как <a href="http://flashnotes.ru/2010/11/29/nape-sozdanie-fizicheskix-obektov-vruchnuyu/" title="Методы старой версии Nape" target="_blank">body.calcProperties(), body.update(), space.sync(body)</a> больше не существует и это радует, как я говорил в прошлом посту многие рутинные операции автоматизированы и пользователь больше не знает о них.</p>
<p>Ну вот вроде пока и все. <a href="http://flashnotes.ru/downloads/2012/02/InitNapeExamlpe.zip" title="Исходники" target="_blank">Исходник тут</a>. Ниже результат работы.</p>
<p>
<object width="640" height="480">
<param name="movie" value="http://flashnotes.ru/downloads/2012/02/InitNapeExamlpe.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#eeeeee"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="640" height="480" src="http://flashnotes.ru/downloads/2012/02/InitNapeExamlpe.swf" quality="high" bgcolor="#eeeeee" wmode="window" menu="false" ></embed>
</object>
</p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/02/07/nape-2-sozdaem-prostranstvo-s-telami/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nape 2 &#8211; вступление&#8230;</title>
		<link>http://flashnotes.ru/2012/02/07/nape-2-vstuplenie/</link>
		<comments>http://flashnotes.ru/2012/02/07/nape-2-vstuplenie/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 01:48:02 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Nape]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Физика]]></category>
		<category><![CDATA[nape intro]]></category>
		<category><![CDATA[nape overhaul]]></category>
		<category><![CDATA[nape2]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=808</guid>
		<description><![CDATA[Вот уже полтора года Лука работает над новой версией Nape. И сегодня можно сказать его overhaul вышел на финишную прямую. Конечно работа ведется, но основная функциональность и API уже заложены и протестированы (ошибки конечно возможны, и если мы их найдем обязательно поможем Луке исправить их ). Но в основном практически все готово, поэтому настало время [...]]]></description>
			<content:encoded><![CDATA[<p>Вот уже полтора года Лука работает над новой версией <strong><a href="http://deltaluca.me.uk/" title="Страница проектов Луки" target="_blank">Nape</a></strong>. И сегодня можно сказать его overhaul вышел на финишную прямую. Конечно работа ведется, но основная функциональность и API уже заложены и протестированы (ошибки конечно возможны, и если мы их найдем обязательно поможем Луке исправить их <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ). Но в основном практически все готово, поэтому настало время разбираться, тестировать и конечно писать заметки!<br />
<span id="more-808"></span><br />
Полностью еще не разобрался во всем, но точно можно сказать, что эта версия ЗНАЧИТЕЛЬНО(!) лучше предыдущей &#8211; быстрее, точнее, API более дружественный, легче, понятней и возможности богаче. Некоторые моменты которые надо было делать в старом руками в новой делаются автоматом и скрыты от пользователя.<br />
Название Nape 2 дал для того, чтобы не путать заметки с первой версией. Хотя сам Лука не обозначает это версию как 2, говорит что это overhaul первой версии, но изменения очень значительны, чтобы говорить, что это просто улучшенная первая версия.  </p>
<p>На главной странице проекта вы сможете найти ссылки на <a href="http://deltaluca.me.uk/forum/" title="Форум Nape" target="_blank">форум</a>, <a href="http://github.com/deltaluca/nape/" title="Репозиторий Nape" target="_blank">github репозиторий</a> и страницу с <a href="http://deltaluca.me.uk/docnew/" title="Документация и ссылки на скачивание" target="_blank">документацией и ссылки на скомпилированные библиотеки</a>.</p>
<p><strong>Nape</strong> поставляется в виде трех библиотек:<br />
release_nape.swc<br />
debug_nape.swc<br />
assert_nape.swc</p>
<p><strong>Release </strong>версию надо использовать только когда ваш проект уходит в продакшн, то есть компилируется последняя релиз версия для клиента.<br />
<strong>Debug </strong>версия используется при разработке проекта. В этом случае, если будут происходить какие то ошибки из-за не правильного использования Nape, то вы будете информированы об этом. Эта версия несколько медленнее чем release но более информативней, потому используется при разработке.<br />
<strong>Assert </strong>версия используется в том случае, если вы хотите помочь Луке найти ошибку в Nape. Например, у вас падает ошибка от Nape, но вы уверены что проблема в самом движке. В этом случае вы подключаете эту библиотек и скидываете Луке трейс, который сгенерирует библиотека. Эта библиотека очень медленная, потому что в ней очень много встроенно assert команд, которые помогают определить проблемы в движке. </p>
<p>Ну что ж, краткое словцо сказано и теперь можно приступить к Nape&#8217;овским заметкам <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .<br />
Если есть какие то неточности, а то и вообще неправда <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  обязательно пишите в комментариях.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/02/07/nape-2-vstuplenie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nape 2 &#8211; Содержание</title>
		<link>http://flashnotes.ru/2012/02/07/nape-2-soderzhanie/</link>
		<comments>http://flashnotes.ru/2012/02/07/nape-2-soderzhanie/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 01:47:43 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Nape]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Физика]]></category>
		<category><![CDATA[Nape 2 - Содержание]]></category>
		<category><![CDATA[nape overhaul]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=821</guid>
		<description><![CDATA[Цикл постов посвящен новой версии физического движка Nape. Каждый новый пост будет добавляться в это содержание. Содержание: 1. Вступление 2. Создаем пространство с телами 3. Немного глубже в новшества фигур и тел 4. Кинематические тела]]></description>
			<content:encoded><![CDATA[<p>Цикл постов посвящен новой версии физического движка <strong><a href="http://deltaluca.me.uk/" title="Физический движок Nape" target="_blank">Nape</a></strong>. Каждый новый пост будет добавляться в это содержание.<br />
<strong>Содержание</strong>:<br />
1. <a href="http://flashnotes.ru/2012/02/07/nape-2-vstuplenie/" title="Nape 2 – вступление…" target="_blank">Вступление</a><br />
2. <a href="http://flashnotes.ru/2012/02/07/nape-2-sozdaem-prostranstvo-s-telami/" title="Nape 2 – Создаем пространство с телами" target="_blank">Создаем пространство с телами</a><br />
3. <a href="http://flashnotes.ru/2012/02/08/nape-2-nemnogo-glubzhe-v-novshestva-figur-i-tel/" title="Nape 2 – немного глубже в новшества фигур и тел" target="_blank">Немного глубже в новшества фигур и тел</a><br />
4. <a href="http://flashnotes.ru/2012/02/21/nape-2-kinematicheskie-tela/" title="Nape2 - Кинематические тела" target="_blank">Кинематические тела</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/02/07/nape-2-soderzhanie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>В новый Nape были добавлены колбеки</title>
		<link>http://flashnotes.ru/2011/12/30/v-novyj-nape-byli-dobavleny-kolbeki/</link>
		<comments>http://flashnotes.ru/2011/12/30/v-novyj-nape-byli-dobavleny-kolbeki/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 22:03:50 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Nape]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Физика]]></category>
		<category><![CDATA[Interaction callbacks]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=802</guid>
		<description><![CDATA[Хорошая новость, в новый Nape Лука наконец-то добавил колбеки. В основном как было в старом нейпе. Подробности на форуме Лука сказал что в скором времени добавит примеры для лучшего понимания.]]></description>
			<content:encoded><![CDATA[<p>Хорошая новость, в новый Nape Лука наконец-то добавил колбеки.<br />
В основном как было в старом нейпе.<br />
<a href="http://deltaluca.me.uk/forum/index.php/mv/msg/147/1600/d054c554967f71bc1a6b9921a218d71d/#msg_1600">Подробности на форуме</a><br />
Лука сказал что в скором времени добавит примеры для лучшего понимания. </p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2011/12/30/v-novyj-nape-byli-dobavleny-kolbeki/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Обновление &#8211; FlashBuilder 4.6 и FlexSDK 4.6</title>
		<link>http://flashnotes.ru/2011/11/30/obnovlenie-flashbuilder-4-6-i-flexsdk-4-6/</link>
		<comments>http://flashnotes.ru/2011/11/30/obnovlenie-flashbuilder-4-6-i-flexsdk-4-6/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 20:18:51 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[IDE]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[FlashBuilder 4.6]]></category>
		<category><![CDATA[FlexSDK 4.6]]></category>
		<category><![CDATA[updates]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=792</guid>
		<description><![CDATA[Обновились версии FlashBuilder и FlexSDK до 4.6 Для FlashBuilder это бесплатное обновление у кого была версия 4.5. Эта версия расширяет разработку для мобильных устройств. Вы можете использовать все новые фичи, которые есть в Adobe AIR 3.0 и Flash Player 11. Имейте ввиду, что здесь невозможно использовать автообновление. Для того, чтобы обновится вам надо скачать новую [...]]]></description>
			<content:encoded><![CDATA[<p>Обновились версии <strong>FlashBuilder</strong> и <strong>FlexSDK </strong>до <strong>4.6</strong><br />
Для FlashBuilder это бесплатное обновление у кого была версия 4.5. Эта версия расширяет разработку для мобильных устройств.<br />
Вы можете использовать все новые фичи, которые есть в <strong>Adobe AIR 3.0</strong> и <strong>Flash Player 1</strong>1.<br />
Имейте ввиду, что здесь невозможно использовать автообновление. Для того, чтобы обновится вам надо скачать новую версию, удалить старую и проинсталировать новую и ввести свои ключи с предыдущей версии.<br />
Ссылка на<strong> <a href="https://www.adobe.com/cfusion/tdrc/index.cfm?product=flash_builder">FlashBuilder 4.6</a></strong><br />
Ссылка на<strong> <a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4.6">FlexSDK 4.6</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2011/11/30/obnovlenie-flashbuilder-4-6-i-flexsdk-4-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Знакомая картина, не правда ли?</title>
		<link>http://flashnotes.ru/2011/11/24/znakomaya-kartina-ne-pravda-li/</link>
		<comments>http://flashnotes.ru/2011/11/24/znakomaya-kartina-ne-pravda-li/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 08:17:20 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=786</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://flashnotes.ru/downloads/2011/11/developer-born-brave1.jpg"><img src="http://flashnotes.ru/downloads/2011/11/developer-born-brave1.jpg" alt="Девелопер родился смелым" title="Девелопер родился смелым" width="640" height="300" class="alignnone size-full wp-image-787" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2011/11/24/znakomaya-kartina-ne-pravda-li/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.316 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-22 20:32:52 -->

