<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2215693175176631241</id><updated>2011-11-29T21:39:06.151+04:00</updated><category term='мегатест'/><category term='processing'/><category term='доклад'/><category term='html5'/><category term='пчелайн'/><category term='Свиборг'/><category term='tyrian'/><category term='x86'/><category term='Supaplex'/><category term='eeepc'/><category term='порт'/><category term='bomjurvivor'/><category term='arcade'/><category term='js'/><category term='SDL'/><category term='gamedev'/><category term='безлимитный'/><category term='canvas'/><category term='олдфаг'/><category term='c++'/><category term='интернет'/><category term='OpenGL'/><category term='паскаль'/><category term='hackday'/><category term='геймдев'/><category term='видео'/><category term='dingoo a320'/><category term='ssge'/><category term='пример'/><category term='мутная прога'/><category term='новости'/><category term='necrofilia'/><category term='обновления'/><category term='mlug'/><category term='устройство'/><category term='планы'/><category term='pascal'/><category term='отчет'/><category term='статья'/><category term='мероприятие'/><category term='LGD'/><category term='android'/><category term='творчество'/><category term='встреча'/><category term='Linux'/><category term='Бессердечный'/><category term='на заметку'/><category term='маразмы'/><category term='install fest'/><category term='Swibplex'/><category term='survivor'/><category term='конференция'/><category term='концерт'/><category term='инди'/><category term='игра'/><title type='text'>Разработка игр в ОС GNU/Linux и не только ...</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>56</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-8767960943921540946</id><published>2011-11-29T21:38:00.001+04:00</published><updated>2011-11-29T21:39:06.159+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Swibplex'/><category scheme='http://www.blogger.com/atom/ns#' term='survivor'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><category scheme='http://www.blogger.com/atom/ns#' term='canvas'/><category scheme='http://www.blogger.com/atom/ns#' term='processing'/><category scheme='http://www.blogger.com/atom/ns#' term='порт'/><category scheme='http://www.blogger.com/atom/ns#' term='bomjurvivor'/><title type='text'>мелкие добавления в старые проекты</title><content type='html'>Недавно обновил сайты своих старых проектов (&lt;a href="http://sourceforge.net/projects/swibplex/"&gt;SwibPlex&lt;/a&gt; и &lt;a href="http://sourceforge.net/projects/bomjsurvivor/"&gt;BomjSurvivor&lt;/a&gt;): для SwibPlex добавлен кривой порт на html5-canvas, а для BomjSurvivor добавлены полноценный html5-canvas порт Survivor и кривой порт на языке Processing - теперь игру можно запустить на андроидных устройствах&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-8767960943921540946?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/8767960943921540946/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/11/blog-post_29.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/8767960943921540946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/8767960943921540946'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/11/blog-post_29.html' title='мелкие добавления в старые проекты'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-5911757545998827055</id><published>2011-11-29T21:09:00.002+04:00</published><updated>2011-11-29T21:18:37.259+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='мегатест'/><category scheme='http://www.blogger.com/atom/ns#' term='necrofilia'/><category scheme='http://www.blogger.com/atom/ns#' term='мутная прога'/><category scheme='http://www.blogger.com/atom/ns#' term='паскаль'/><category scheme='http://www.blogger.com/atom/ns#' term='pascal'/><category scheme='http://www.blogger.com/atom/ns#' term='олдфаг'/><title type='text'>МегаТест</title><content type='html'>Времени программить игры все меньше и меньше, а тут, вдруг, на работе началась аттестация. По итогам аттестации должен пройти экзамен в виде теста на компутере при помощи какой-то мутной проги. При чем, для того чтобы попробовать свои силы до экзамена предлагается купить попытку пройти тест. Денег мне жалко, все вопросы на руках, включая все ответы - верные и не верные. Механизм работы мутной проги известен: задается несколько вопрос с несколькими вариантами ответов перемешанными случайным образом, один из вариантов - верный. Учить ничего не буду, в инсте уже забил на это неблагодарное дело. Да, и что-то Я давно не "трогал" старенький паскаль... Во общем решено - напишу свою мутную прогу - тренажёр и придрочусь при помощи нее отвечать на вопросы правильно. Исходный код Моего варианта мутной проги выкладываю ниже - может быть кому пригодится. Прога написана на старичке Borland Turbo Pascal 7.0 :) Перевести ее на си или еше куда нибудь, думаю -труда не составит. Работает прога примерно так: есть текстовый файл с вопросами (в Моем случае - в кодировке DOS CP866!), который имеет примерно следующий вид:&lt;br /&gt;&lt;blockquote&gt;$25$&lt;br /&gt;{1}&lt;br /&gt;[Текст вопроса N1]&lt;br /&gt;[1. неверный вариант ответа]&lt;br /&gt;[2. неверный вариант ответа]&lt;br /&gt;&amp;lt;3. верный вариант ответа&amp;gt;&lt;br /&gt;[4. неверный вариант ответа]&lt;br /&gt;[5. неверный вариант ответа]&lt;br /&gt;[6. неверный вариант ответа]&lt;br /&gt;&lt;br /&gt;{2}&lt;br /&gt;[Текст вопроса N2]&lt;br /&gt;...&lt;br /&gt;&lt;/blockquote&gt;и т.д.&lt;br /&gt;&lt;br /&gt;В $$ пишется суммарное число вопросов в тексте, в {} - номер вопроса, в первых [] - текст вопроса, и затем - в 5 вариантах в [] пишется неверные варианты ответа (или ничего не пишется, если вариантов ответа меньше 6), а в &amp;lt;&amp;gt; пишется правильный ответ. Далее этот текстовый файл парсится и "магическим образом" прога работает. Вот ее исходный текст:&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://pastebin.com/embed_iframe.php?i=GNMtrSvR" style="border: none; width: 100%;"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Исходники Моего варианта мутной проги:&lt;a href="http://narod.ru/disk/32875920001/MegaTest.zip.html"&gt;MegaTest.zip&lt;/a&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-5911757545998827055?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/5911757545998827055/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/11/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/5911757545998827055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/5911757545998827055'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/11/blog-post.html' title='МегаТест'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-8087347137248608047</id><published>2011-11-22T20:30:00.000+04:00</published><updated>2011-11-22T21:29:11.595+04:00</updated><title type='text'>Linux GameDev Conference #2 регистрация участников для выступления</title><content type='html'>В Москве &lt;b&gt;в декабре (или позже - в зависимости от количества участников)&lt;/b&gt; планируется проведение конференции LGDC#2 (Linux GameDev Conference #2), посвященной разработке игр в ОС gnu/linux. В июне этого года уже проводилось подобное мероприятие: &lt;a href="http://www.mlug.ru/gamedevconf_old"&gt;http://www.mlug.ru/gamedevconf_old&lt;/a&gt;, &lt;a href="http://www.mlug.ru/gamedevconf"&gt;http://www.mlug.ru/gamedevconf&lt;/a&gt;. Тогда получилось очень даже неплохо - захотелось еще...&lt;br /&gt;&lt;br /&gt;Итак, если у Вас есть желание и возможность принять участие в организации, информационном освещении, выступить с докладом или презентацией, или мастер-классом - присоединяйтесь!&lt;br /&gt;&lt;br /&gt;Для желающих выступить на конференции LGDC#2 уже открыта регистрация: &lt;a href="http://mlug.timepad.ru/event/11659"&gt;http://mlug.timepad.ru/event/11659&lt;/a&gt;. По всем остальным вопросам - пишите сюда, в ЛС или на minidune@ya.ru.&lt;br /&gt;&lt;br /&gt;Данное объявление о мероприятии, лишь подготовительная часть, если она удастся - конфе быть! Для слушателей - будет отдельная регистрация.&lt;br /&gt;&lt;br /&gt;На текущий момент записалось уже 3 участника:&lt;br /&gt;&lt;br /&gt;1) Картамышев Андрей.  Тема выступления: "Об использовании Linux в России и перспективах ее продвижения в нашей стране".&lt;br /&gt;&lt;br /&gt;2) Сергей Зверев. Тема выступления: "Battle &amp; Burning (Dingux/Gp2x)".&lt;br /&gt;&lt;br /&gt;3) Левин Владимир. Тема выступления: "Облачные вычисления".&lt;br /&gt;&lt;br /&gt;Господа, по - активней, мы не кусаемся:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-8087347137248608047?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/8087347137248608047/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/09/linux-gamedev-conference-2.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/8087347137248608047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/8087347137248608047'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/09/linux-gamedev-conference-2.html' title='Linux GameDev Conference #2 регистрация участников для выступления'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-1242725047889781047</id><published>2011-09-20T18:49:00.000+04:00</published><updated>2011-09-20T18:49:17.013+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='интернет'/><category scheme='http://www.blogger.com/atom/ns#' term='на заметку'/><category scheme='http://www.blogger.com/atom/ns#' term='безлимитный'/><category scheme='http://www.blogger.com/atom/ns#' term='пчелайн'/><title type='text'>Пчелайн безлимитный</title><content type='html'>Как-то, позвонила девушка из тех поддержки моего сотового оператора и предложила "по-акции" подключить "безлимитный" инет за 13 деревянных в сутки. После окончания акции, подключение данной услуги обошлось бы мне в 150 деревянных. Не плохо, показалось мне - и я согласился. Правда на деле он не совсем безлимитный оказался, но пофиг - серфить через телефон хватает выше крыши. &lt;br /&gt;   Ну так вот, сегодня утром не успев скачать пару обновлений и проверить почту - инет в один знамечательный момент отрубается и я обнаруживаю, что на счете пусто:( Не беда - кладу на счет денежку в размере 300 рэ. Продолжаю &lt;strike&gt;тунеядств&lt;/strike&gt; читать почты, RSSы, хабры дальше... И опять: спустя некоторое время инет снова отрубается, а на счету лежит всего 50 копеек:( Звоню в тех поддержку. Объяснюя проблему - и оказывается, абонентская плата на сутки безлимитного инета снимаются только в начале этой самой сутки (в полночь!), ни минуты позже или раньше. На начало текущих суток сумма на счете была меньше абонентской и ее не списали, и инет был платным &lt;strike&gt;как у всех&lt;/strike&gt; - по 6-7 рэ за метр. Об этом открыто ни предупреждают! В итоге, поговорив еще чуть-чуть с очаровательной девушкой из тех поддержки договорились, что так, как косяк не совсем мой - оператор деньги вернет на следующих условиях: услуга "безлимитный инет" будет переподключена (-150рэ) и еще будет снята абонентская плата за текущие сутки. В итоге на счете обнаружилась сумма в размере 137 рэ и был доступен снова пчелайн безлимитный...&lt;br /&gt;   Вот такая вот дурацкая история. Будьте внимательны - проверяйте свой счет до полуночи!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-1242725047889781047?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/1242725047889781047/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/09/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/1242725047889781047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/1242725047889781047'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/09/blog-post.html' title='Пчелайн безлимитный'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-6297451337688953401</id><published>2011-08-20T20:52:00.000+04:00</published><updated>2011-08-20T20:52:51.335+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='планы'/><title type='text'>Планы...</title><content type='html'>Может показаться что блог заброшен и до программирования Мне уже "нету дела". Это не так. По-позже чиркну пару строк. Сейчас очень мало свободного времени - лето:) За это время, Я портировал SwibPlex на html5, "бомжсурвайвер" портирован на Processing и запускается под андроидом, пилю SSGE - починил тени, добавил слои. В будущем, в качестве основной платформы для разработок, думаю придерживаться html5. Планирую провести конференцию LGDC #2 в ноябре или раньше. Новых идей для игр, увы - нет:( Может попробую Box2d...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-6297451337688953401?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/6297451337688953401/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/08/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/6297451337688953401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/6297451337688953401'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/08/blog-post.html' title='Планы...'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-6299731212927230536</id><published>2011-06-30T00:24:00.005+04:00</published><updated>2011-06-30T00:29:36.227+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gamedev'/><category scheme='http://www.blogger.com/atom/ns#' term='отчет'/><category scheme='http://www.blogger.com/atom/ns#' term='конференция'/><category scheme='http://www.blogger.com/atom/ns#' term='LGD'/><category scheme='http://www.blogger.com/atom/ns#' term='мероприятие'/><title type='text'>Отчет о конфе LinuxGamesDev #1</title><content type='html'>Ну вот и прошла эта конференция: &lt;a href="http://www.mlug.ru/gamedevconf_old"&gt;http://www.mlug.ru/gamedevconf_old&lt;/a&gt;. Огромное спасибо Всем участникам и Всем кто помогал в ее проведении. Нельзя сказать, что прошло все гладко - косяки были.&lt;br /&gt;&lt;br /&gt;Планировалось начать с лекции от нашего информационного партнера - сайта &lt;a href="http://www.podgames.ru"&gt;podgames.ru&lt;/a&gt;. Далее, все планируемые доклады решено было разбить на 3 тематические секции:&lt;br /&gt;1) Разработка игровых приложений в ОС линукс, непосредственно для ОС линукс;&lt;br /&gt;2) Разработка игровых приложений в виде ВЕБ приложения;&lt;br /&gt;3) Разработка игровых приложений для мобильной операционной системы Google Android.&lt;br /&gt;&lt;br /&gt;Но, как всегда это бывает - не сложилось. Мероприятие началось с небольшой задержки - минут на 20. Было решено начать с 3-ей тематической секции, но камеру в этот момент врубить "на запись" забыли. Соответственно, видеозаписи с 2-мя докладами: от Максима Пестуна "Введение в разработку под Андроид" и Александра Иноземцева (т.е. Меня) "Создание игр для ОС Android при помощи языка Processing" - отсутствуют. Зато, можно скачать материалы и презентации, используемые для этих докладов. Соответственно &lt;a href="http://narod.ru/disk/16851078001/android.arj.html"&gt;http://narod.ru/disk/16851078001/android.arj.html&lt;/a&gt; и &lt;a href="http://narod.ru/disk/16851112001/pong_i_banner.arj.html"&gt;http://narod.ru/disk/16851112001/pong_i_banner.arj.html&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Потом косяк с камерой был обнаружен и устранен. Далее, была лекция от Александра Седых (&lt;a href="http://www.podgames.ru"&gt;podgames.ru&lt;/a&gt;) "Игровая журналистика: создание видеообзоров". Видеозапись выступления можно скачать отсюда: &lt;a href="http://narod.ru/disk/16631010001/podgames.mpeg.html"&gt;http://narod.ru/disk/16631010001/podgames.mpeg.html&lt;/a&gt;. &lt;a href="http://www.youtube.com/watch?v=31cCbVcgIt4&amp;feature=relmfu"&gt;Посмотреть видео на тытрубе&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Потом был небольшой перерыв и затем - были доклады из 1-ой тематической секции:&lt;br /&gt;- от Максима Пестуна "Введение в OpenGL": &lt;a href="http://narod.ru/disk/16639428001/opengl.mpeg.html"&gt;       http://narod.ru/disk/16639428001/opengl.mpeg.html&lt;/a&gt; (&lt;a href="http://www.youtube.com/watch?v=rqEEM4Gk9b4&amp;feature=related"&gt;видео на тытрубе&lt;/a&gt;) и &lt;a href="http://narod.ru/disk/16851098001/OpenGL.arj.html"&gt;http://narod.ru/disk/16851098001/OpenGL.arj.html&lt;/a&gt;;&lt;br /&gt;- от Меня: &lt;a href="http://narod.ru/disk/16715037001/sdl.mpeg.html"&gt;http://narod.ru/disk/16715037001/sdl.mpeg.html&lt;/a&gt; (&lt;a href="http://www.youtube.com/watch?v=P3qFbHZCVKo&amp;feature=related"&gt;видео на трубе&lt;/a&gt;) и &lt;a href="http://narod.ru/disk/16851112001/pong_i_banner.arj.html"&gt;http://narod.ru/disk/16851112001/pong_i_banner.arj.html&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Надо сказать, что мой любительский опыт в SDL и OpenGL оказался "не очень богатым":( Коллеги из зала меня постоянно поправляли и критиковали код. Позже оказалось, что оба имеют (или имели) педагогический опыт. Тем не менее, мне хватило наглости показать несколько своих проектов: SwibPlex (&lt;a href="http://sourceforge.net/projects/swibplex/"&gt;http://sourceforge.net/projects/swibplex/&lt;/a&gt;) и SSGE (&lt;a href="http://code.google.com/p/ssge/"&gt;http://code.google.com/p/ssge/&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Внезапно появились разработчики одной mmorpg Space Bot Wars 3D (&lt;a href="http://eyerie.org/index.php/ru/"&gt;http://eyerie.org/index.php/ru/&lt;/a&gt;) - команда eyerie. Они рассказали о своей игре, показали видео геймплея, попинали докладчика SDL, пригласили всех на бета тест и убежали. Видео этого выступления, также можно скачать отсюда: &lt;a href="http://narod.ru/disk/16720053001/game1.mpeg.html"&gt;http://narod.ru/disk/16720053001/game1.mpeg.html&lt;/a&gt;. &lt;a href="http://www.youtube.com/watch?v=-TFozGapWNk&amp;feature=related"&gt;Видео на тытрубе&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Далее, было выступление Константина Кирика. Он рассказал о своем проекте Pynwheel (&lt;a href="http://code.google.com/p/pynwheel/"&gt;http://code.google.com/p/pynwheel/&lt;/a&gt;) и затронул аспекты программирования подобных проектов на языке python. Видеозапись выступления можно скачать отсюда: &lt;a href="http://narod.ru/disk/16767239001/python_.mpeg.html"&gt;http://narod.ru/disk/16767239001/python_.mpeg.html&lt;/a&gt;. &lt;a href="http://www.youtube.com/watch?v=sPIdyKmy0jA&amp;feature=related"&gt;Видео на тытрубе&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Потом было еще одно не запланированное выступление: Куркин Антон (kurkin.anton@gmail.com) рассказал о своем проекте - игре-реинкарнации старушки "Аллоды: Проклятые земли". Вот видео его выступления: &lt;a href="http://narod.ru/disk/16765987001/game2.mpeg.html"&gt;http://narod.ru/disk/16765987001/game2.mpeg.html&lt;/a&gt;. &lt;a href="http://www.youtube.com/watch?v=9CRuP4zpIS0&amp;feature=related"&gt;Видео на тытрубе&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2-я тематическая секция была представлена выступлением Александра Чернова. Темой его доклада была: "Проектирование и разработка браузерных игр на JavaScript+(PHP+MySQL)". Кроме самого доклада Александр показал несколько своих проектов: &lt;a href="http://www.youtube.com/watch?v=gTTbpKRfsNs"&gt;http://www.youtube.com/watch?v=gTTbpKRfsNs&lt;/a&gt;, &lt;a href="http://a-l-e-x-u-s.ru/index.php?option=com_content&amp;view=article&amp;id=7:recoalition&amp;catid=2:games&amp;Itemid=6"&gt;http://a-l-e-x-u-s.ru/index.php?option=com_content&amp;view=article&amp;id=7:recoalition&amp;catid=2:games&amp;Itemid=6&lt;/a&gt;, &lt;a href="http://a-l-e-x-u-s.ru/index.php?option=com_content&amp;view=article&amp;id=9:recoalition&amp;catid=2:games&amp;Itemid=6"&gt;http://a-l-e-x-u-s.ru/index.php?option=com_content&amp;view=article&amp;id=9:recoalition&amp;catid=2:games&amp;Itemid=6&lt;/a&gt;, &lt;a href="http://a-l-e-x-u-s.ru/index.php?option=com_content&amp;view=article&amp;id=10:recoalition&amp;catid=2:games&amp;Itemid=6"&gt;http://a-l-e-x-u-s.ru/index.php?option=com_content&amp;view=article&amp;id=10:recoalition&amp;catid=2:games&amp;Itemid=6&lt;/a&gt;. Видео выступления: &lt;a href="http://narod.ru/disk/16756070001/rangers.mpeg.html"&gt;http://narod.ru/disk/16756070001/rangers.mpeg.html&lt;/a&gt;. &lt;a href="http://www.youtube.com/watch?v=ST1dYrQ11gw&amp;feature=related"&gt;Видео на тытрубе&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;А потом было выступление вне всяких тематических секций, которое стало сюрпризом для всех участников нашего мероприятия.  Зверев Сергей рассказал о разработке игровых приложений для консолей серии gp2x, wiz, caanoo, показал свои проекты и рассказал о их реализации. Видеозапись его выступления можно скачать отсюда: &lt;a href="http://narod.ru/disk/16864894001/gp2x.mpeg.html"&gt;http://narod.ru/disk/16864894001/gp2x.mpeg.html&lt;/a&gt;. &lt;a href="http://www.youtube.com/watch?v=jP5BjpdyZwE&amp;feature=related"&gt;Видео на тытрубе&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Зарегистрировались 128 человек, отказались от регистрации 10. Пришло больше половину участников. Хоть мероприятие было соориентировано как помощь для "новичкам" в геймдеве - около половины зарегистрировавшихся участников имеют опыт в разработке игр. К сожалению, человек из команды Big Little Team, по "форс мажорным" обстоятельствам - не приехал. Зато, на мероприятие приехали ребята из SmLUG (&lt;a href="http://smlug.ru/"&gt;http://smlug.ru/&lt;/a&gt;) - однополчане из Смоленского ЛУГа. Ребят, спасибо Вам за фотографии (&lt;a href="https://picasaweb.google.com/117547658405456849404/LinuxGameDevConf1?feat=directlink"&gt;https://picasaweb.google.com/117547658405456849404/LinuxGameDevConf1?feat=directlink&lt;/a&gt;) и простите за карточку:)&lt;br /&gt;&lt;br /&gt;Вот такой вот "странной" получилась эта нестандартная (для MLUG) "пилотная" конференция. И, несмотря: на косяки в организации мероприятия, на хаотичность представленных тем, на неадекватность некоторых зрителей - Мне кажется, что мероприятие удалось. Простите, если что было не так.&lt;br /&gt;&lt;br /&gt;Фотографии с мероприятия:&lt;br /&gt;&lt;table style="width:194px;"&gt;&lt;tr&gt;&lt;td align="center" style="height:194px;background:url(https://picasaweb.google.com/s/c/transparent_album_background.gif) no-repeat left"&gt;&lt;a href="https://picasaweb.google.com/117547658405456849404/LinuxGameDevConf1?feat=embedwebsite"&gt;&lt;img src="https://lh4.googleusercontent.com/-CEXwPdSJPvk/TgOZIkAHpRE/AAAAAAAAA5c/X_3uUcxnlHs/s160-c/LinuxGameDevConf1.jpg" width="160" height="160" style="margin:1px 0 0 4px;"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align:center;font-family:arial,sans-serif;font-size:11px"&gt;&lt;a href="https://picasaweb.google.com/117547658405456849404/LinuxGameDevConf1?feat=embedwebsite" style="color:#4D4D4D;font-weight:bold;text-decoration:none;"&gt;Linux GameDev Conf #1&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Всё снятое видео на YouTube:&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-6299731212927230536?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/6299731212927230536/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/06/httpwww_4692.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/6299731212927230536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/6299731212927230536'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/06/httpwww_4692.html' title='Отчет о конфе LinuxGamesDev #1'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh4.googleusercontent.com/-CEXwPdSJPvk/TgOZIkAHpRE/AAAAAAAAA5c/X_3uUcxnlHs/s72-c/LinuxGameDevConf1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-9072487331426081636</id><published>2011-04-27T22:30:00.002+04:00</published><updated>2011-04-27T22:30:59.865+04:00</updated><title type='text'>Processing 1.5 и Android</title><content type='html'>Собственно, эта наверно уже ни какая не новость - вышел язык программирования Processing 1.5. Стабильный билд. Одно из нововведений стало - возможность компиляция скетча в бинарный файл apk для Android. Почти все примеры, которые идут с языком - компилируются и запускаются на андрофоне. Кажется, это даже никакие не костыли - скорость работы на устройстее (LG Optimus GT540) полученных приложений удволетворительная. Скетч, также можно запустить и в эмуляторе. Необходимо иметь только установленный Android SDK.&lt;br /&gt;&lt;br /&gt;Статья о том как при помощи Processing писать приложения под андроид:&lt;br /&gt;1) &lt;a href="http://malbred.com/soft-po-vidzheingu/rukovodstvo-po-ispolzovaniyu-processing-pod-android.html"&gt;http://malbred.com/soft-po-vidzheingu/rukovodstvo-po-ispolzovaniyu-processing-pod-android.html&lt;/a&gt; (на русском);&lt;br /&gt;2) &lt;a href="http://createdigitalmotion.com/2010/09/getting-started-with-processing-for-android/"&gt;http://createdigitalmotion.com/2010/09/getting-started-with-processing-for-android/&lt;/a&gt;;&lt;br /&gt;3) &lt;a href="http://wiki.processing.org/w/Android"&gt;http://wiki.processing.org/w/Android&lt;/a&gt; &lt;br /&gt; &lt;br /&gt;Скачать Processing 1.5 можно здесь: &lt;a href="http://code.google.com/p/processing/downloads/list"&gt;http://code.google.com/p/processing/downloads/list&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-9072487331426081636?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/9072487331426081636/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/04/processing-15-android.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/9072487331426081636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/9072487331426081636'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/04/processing-15-android.html' title='Processing 1.5 и Android'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-9054662207052504660</id><published>2011-04-24T14:53:00.000+04:00</published><updated>2011-04-25T22:10:12.101+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gamedev'/><category scheme='http://www.blogger.com/atom/ns#' term='инди'/><category scheme='http://www.blogger.com/atom/ns#' term='геймдев'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='конференция'/><title type='text'>ОС GNU/Linux - платформа для разработки игровых приложений</title><content type='html'>MLUG (Московская группа пользователей операционной системы GNU/Linux, &lt;a href="http://www.mlug.ru"&gt;http://www.mlug.ru&lt;/a&gt;) собирает участников для проведения конференции: "ОС GNU/Linux - платформа для разработки игровых приложений".&lt;br /&gt;&lt;br /&gt;На конференции хочется затронуть такие моменты, как:&lt;br /&gt;* обзор сред разработки и IDE,&lt;br /&gt;* создание нативных игровых приложений непосредственно для самой ОС с&lt;br /&gt;использованием:&lt;br /&gt;- Blender,&lt;br /&gt;- OpenGL,&lt;br /&gt;- OGRE,&lt;br /&gt;- SDL,&lt;br /&gt;- PyGame;&lt;br /&gt;* программирование для Google Android,&lt;br /&gt;* создание кроссплатформенных решений и т. д...&lt;br /&gt;&lt;br /&gt;Пора уже показать, что средств для разработки игровых приложений в операционной системе GNU/Linux достаточно...&lt;br /&gt;&lt;br /&gt;Если у Вас имеются: опыт в создании инди-разработок на данной операционной системе и Вы хотите об этом рассказать или показать результаты Ваших трудов, или есть желание выступить с докладом (например, с одной из выше перечисленных тем и не только), или у Вас есть нерешенные проблемы, или Вам просто интересно это увидеть или послушать или попробовать - приглашаем Вас принять участие!&lt;br /&gt;&lt;br /&gt;Время, место, содеражние конференции пока уточняется. Мероприятие планируется провести на территории ГУ ВШЭ, летом 2011 г. в первой половине июня. Участие в конференции бесплатное.&lt;br /&gt;&lt;br /&gt;Заявки на участие - оставляйте в &lt;a href="http://www.gamedev.ru/industry/forum/?id=145803"&gt;этой теме&lt;/a&gt; или присылайте на minidune@ya.ru.&lt;br /&gt;&lt;br /&gt;Публикации на других ресурсах:&lt;br /&gt;&lt;a href="http://mlug.ru/node/64"&gt;http://mlug.ru/node/64&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gamedev.ru/industry/forum/?id=145803"&gt;http://www.gamedev.ru/industry/forum/?id=145803&lt;/a&gt;&lt;br /&gt;&lt;a href="http://open-life.org/blog/conferences/1643.html"&gt;http://open-life.org/blog/conferences/1643.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://welinux.ru/post/5479/"&gt;http://welinux.ru/post/5479/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://forum.boolean.name/showthread.php?p=185680#post185680"&gt;http://forum.boolean.name/showthread.php?p=185680#post185680&lt;/a&gt;&lt;br /&gt;&lt;a href="http://plg.lrn.ru/phorum/read.php?5,1730"&gt;http://plg.lrn.ru/phorum/read.php?5,1730&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-9054662207052504660?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/9054662207052504660/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/04/gnulinux.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/9054662207052504660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/9054662207052504660'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/04/gnulinux.html' title='ОС GNU/Linux - платформа для разработки игровых приложений'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-8897545353719092527</id><published>2011-04-05T12:56:00.004+04:00</published><updated>2011-05-04T07:31:34.134+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='survivor'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><category scheme='http://www.blogger.com/atom/ns#' term='canvas'/><title type='text'>И снова HTML5 и Canvas</title><content type='html'>1) Статьи с Хабра:&lt;br /&gt;&lt;a href="http://habrahabr.ru/blogs/html5/111308/"&gt;http://habrahabr.ru/blogs/html5/111308/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://habrahabr.ru/blogs/html5/111385/"&gt;http://habrahabr.ru/blogs/html5/111385/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://habrahabr.ru/blogs/html5/116860/"&gt;http://habrahabr.ru/blogs/html5/116860/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2) Мой допиленный порт игры БомжСурвайвер - игра Survivor: &lt;a href="http://minidune.narod.ru/survivor8/survivor.html"&gt;http://minidune.narod.ru/survivor8/survivor.html&lt;/a&gt;&lt;br /&gt;Добавлена возможность сохранения лучшего результата игрового та в куках на неделю.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-8897545353719092527?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/8897545353719092527/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/04/html5-canvas.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/8897545353719092527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/8897545353719092527'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/04/html5-canvas.html' title='И снова HTML5 и Canvas'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-2228499310342044887</id><published>2011-03-30T07:33:00.002+04:00</published><updated>2011-03-30T11:59:40.500+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><category scheme='http://www.blogger.com/atom/ns#' term='processing'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>HTML5 и processing на андроид ...</title><content type='html'>При помощи браузера &lt;a href="http://www.appbrain.com/app/miren-browser/cn.miren.browser"&gt;Miren Browser&lt;/a&gt; на устройствах с андроидом можно запускать оффлайно html странички. Например - с HTML5 c содержащимися кусками &lt;a href="http://processingjs.org/"&gt;Processing JS&lt;/a&gt;. Также, в будущем при помощи Processing - можно будет создавать приложения для самого андроида "на прямую:&lt;br /&gt;&lt;a href="http://wiki.processing.org/w/Android"&gt;http://wiki.processing.org/w/Android&lt;/a&gt;; &lt;a href="http://createdigitalmotion.com/2010/09/getting-started-with-processing-for-android/"&gt;http://createdigitalmotion.com/2010/09/getting-started-with-processing-for-android/&lt;br /&gt;&lt;/a&gt;; &lt;a href="http://malbred.com/soft-po-vidzheingu/rukovodstvo-po-ispolzovaniyu-processing-pod-android.html"&gt;http://malbred.com/soft-po-vidzheingu/rukovodstvo-po-ispolzovaniyu-processing-pod-android.html&lt;/a&gt; (на русском языке). Я пробовал разные сборки Processing c &lt;a href="http://code.google.com/p/processing/downloads/list"&gt;http://code.google.com/p/processing/downloads/list&lt;/a&gt; 0.194 и 0.190. Пока, запустить приложения на эмуляторе или устройстве не удалось:(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-2228499310342044887?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/2228499310342044887/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/03/miren-browser-html.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/2228499310342044887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/2228499310342044887'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/03/miren-browser-html.html' title='HTML5 и processing на андроид ...'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-3608892609127840484</id><published>2011-03-27T19:41:00.001+04:00</published><updated>2011-03-27T19:47:45.771+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='видео'/><category scheme='http://www.blogger.com/atom/ns#' term='mlug'/><category scheme='http://www.blogger.com/atom/ns#' term='отчет'/><category scheme='http://www.blogger.com/atom/ns#' term='install fest'/><title type='text'>Видео - отчет с мероприятия Linux Install Fest, прошедшего в Москве 26.03.2011</title><content type='html'>В эту субботу (26.03.2011), в Москве в ГУ ВШЭ - проходил &lt;a href="http://mlug.timepad.ru/event/6350"&gt;Linux Install Fest&lt;/a&gt; силами MLUG, Moscow Ubuntu Loco и Russian Fedora. Мною было записано видео сего мероприятия - все доклады и все выступления: &lt;br /&gt;&lt;a href="http://narod.ru/disk/8502602001/MOV001.mpg.html"&gt;http://narod.ru/disk/8502602001/MOV001.mpg.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://narod.ru/disk/8505715001/MOV002.mpg.html"&gt;http://narod.ru/disk/8505715001/MOV002.mpg.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://narod.ru/disk/8533899001/MOV003.mpg.html"&gt;http://narod.ru/disk/8533899001/MOV003.mpg.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://narod.ru/disk/8514866001/MOV004.mpg.html"&gt;http://narod.ru/disk/8514866001/MOV004.mpg.html&lt;/a&gt;&lt;br /&gt;Ничего не перекодировано и не ужато. Запись с камеры "как есть".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-3608892609127840484?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/3608892609127840484/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/03/linux-install-fest-26032011.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/3608892609127840484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/3608892609127840484'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/03/linux-install-fest-26032011.html' title='Видео - отчет с мероприятия Linux Install Fest, прошедшего в Москве 26.03.2011'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-6608254688609593013</id><published>2011-03-14T23:27:00.003+03:00</published><updated>2011-03-19T17:08:07.635+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gamedev'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><category scheme='http://www.blogger.com/atom/ns#' term='отчет'/><category scheme='http://www.blogger.com/atom/ns#' term='canvas'/><category scheme='http://www.blogger.com/atom/ns#' term='hackday'/><title type='text'>Победа в номинации  "приз зрительских симпатий" :)</title><content type='html'>Вот и прошел HackDay #11: &lt;a href="http://hackday.ru/events/hackday-11/home.html"&gt;http://hackday.ru/events/hackday-11/home.html&lt;/a&gt;. &lt;br /&gt;Я представил на суд общественности свой проект "Сурвайвер" - порт моего БомжСурвайвера &lt;a href="http://sourceforge.net/projects/bomjsurvivor/"&gt;http://sourceforge.net/projects/bomjsurvivor/&lt;/a&gt; на html5+canvas. Последнюю версию проекта можно потыкать тут: &lt;a href="http://minidune.narod.ru/survivor3/survivor.html"&gt;http://minidune.narod.ru/survivor3/survivor.html&lt;/a&gt;. Только ВНИМАНИЕ - в качестве тестового браузера использовался Google Chrome 10.0.648.127 для ОС GNU/Linux Debian 6.0. В других браузерах проект пока не работает:(&lt;br /&gt;&lt;br /&gt;Вот такое описание моего проекта было представлено при регистрации на демо-фест проектов:&lt;br /&gt;...&lt;br /&gt;Проект #10.&lt;br /&gt;Название проекта: Сурвайвер&lt;br /&gt;Описание: &lt;br /&gt;Жизненная игра - однажды матрас Вашей кровати не выдержал и начал "лопаться" у Вас на глазах. Только Вы готовились устроить пиршество, вывалив на матрас все богатство холодильника, как из матраса начала выползать всякая "нечисть", намереваясь испортить Вам настроение. В виде нечисти выступают самые домашние из домашних животных - тараканы, мухи, гусеницы, муравьи и пр.&lt;br /&gt;Нужно продержатся как можно дольше времени, истреблять нечисть дихлофосом, возвращать богатство на законное место не давая богатству "сделать ноги" под матрас.&lt;br /&gt;Проект является веб-приложением и создан на связке html5+canvas+javascript. В качестве тестового браузера использовался Google Chrome 10.0.648.127 для ос GNU/Linux Debian 6.0.&lt;br /&gt;&lt;br /&gt;В проекте принимают участие:&lt;br /&gt;1) Иноземцев Александр Павлович (minidune@ya.ru). Программирование исходного кода, автор идеи, графика.&lt;br /&gt;2) Алексей Рыбаков (axel_z@bk.ru). HTML верстка, "креатив" - дизайн.&lt;br /&gt;3) Петр Соболев (myxa333@gmail.com). Графика элементов интерфейса, тапков и матраса.&lt;br /&gt;&lt;br /&gt;Прототип проекта готов и его можно попробовать по адресу:&lt;br /&gt;http://... (адрес уже поменялся, см. ссылки выше)&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Мне не удалось реализовать случайную окраску насекомых - не хватило мозгов, времени и нервов:) Это можно как-то реализовать через getdata и pushdata. Ввел такой новый элемент геймплея, как "счетчик ярости". Чем больше и интенсивнее мочим "животных", тем быстрее он заполняется. Если бездействуем - счетчик падает. Когда ярость доходит до определенного предела, то происходит "тапко - апокалипсис":) В качестве монетизации проекта предлагается рекламные места для обувных фирм или бомж-пакетов) &lt;br /&gt;&lt;br /&gt;Проект получил большое количество голосов от зрителей. В качестве приза Я получил коллекционку игры "Готика 4" и сертификат победителя)) И то, и другое теперь украшают буфет:) Еще было 3 предложения по поводу трудоустройства - пока думаю...&lt;br /&gt;&lt;br /&gt;На хакдее проводились видео- и фотосъемки, сейчас составляется отчет. Когда его допилят - выложу на него ссылки: &lt;br /&gt;&lt;br /&gt;1. Немного фоточек: &lt;a href="http://nachinai.com/photo/albums/nachinaj-s-hackday"&gt;http://nachinai.com/photo/albums/nachinaj-s-hackday&lt;/a&gt;&lt;br /&gt;2. Сертификат победителя: &lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-tG6-bSSDhc8/TYCU3cCoGQI/AAAAAAAAAyQ/O1G_yi7spoU/s1600/IMG20110314_001.jpg" imageanchor="1" style=""&gt;&lt;img border="0" height="400" width="300" src="http://4.bp.blogspot.com/-tG6-bSSDhc8/TYCU3cCoGQI/AAAAAAAAAyQ/O1G_yi7spoU/s400/IMG20110314_001.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;3. Отчет на AR-Door.com: &lt;a href="http://ar-door.com/2011/03/14-igr-za-vyxodnye/"&gt;http://ar-door.com/2011/03/14-igr-za-vyxodnye/&lt;/a&gt;&lt;br /&gt;4. Отчет на сайте движения HackDay: &lt;a href="http://hackday.ru/events/hackday-11/report.html"&gt;http://hackday.ru/events/hackday-11/report.html&lt;/a&gt;&lt;br /&gt;Видео с мероприятия отсутствуют, кроме мастер - классов по Windows Phone 7 :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-6608254688609593013?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/6608254688609593013/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/03/hackday-11.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/6608254688609593013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/6608254688609593013'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/03/hackday-11.html' title='Победа в номинации  &quot;приз зрительских симпатий&quot; :)'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-tG6-bSSDhc8/TYCU3cCoGQI/AAAAAAAAAyQ/O1G_yi7spoU/s72-c/IMG20110314_001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-4988322309533847521</id><published>2011-02-28T21:01:00.000+03:00</published><updated>2011-02-28T21:01:34.862+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hackday'/><category scheme='http://www.blogger.com/atom/ns#' term='мероприятие'/><category scheme='http://www.blogger.com/atom/ns#' term='встреча'/><title type='text'>HackDay: Games, Москва, 12-13 марта</title><content type='html'>&lt;a href="http://habrahabr.ru/company/mkechinov/blog/114481/"&gt;http://habrahabr.ru/company/mkechinov/blog/114481/&lt;/a&gt;, идет кто?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-4988322309533847521?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/4988322309533847521/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/02/hackday-games-12-13.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/4988322309533847521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/4988322309533847521'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/02/hackday-games-12-13.html' title='HackDay: Games, Москва, 12-13 марта'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-195930720251317585</id><published>2011-02-20T13:41:00.001+03:00</published><updated>2011-02-20T23:58:22.035+03:00</updated><title type='text'>HTML5. Canvas ч.4.</title><content type='html'>Начал портировать на JS Свибплекс:&lt;a href="http://dl.dropbox.com/u/15250319/WebSplex0.007/splex.html"&gt;http://dl.dropbox.com/u/15250319/WebSplex0.007/splex.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Все работает, только жутко тормозит! Есть еще некоторые глюки связанные с переносом физики. Но все это временно. Для увелечения производительности, карты в портированной игре будут меньшего размера.&lt;br /&gt;&lt;br /&gt;Оказалось на JS нельзя подключать локальные файлы, например карты уровней или профили объектов. Более менее навороченый редатор сделать не получается. Говорят для этих целей надо использовать Ajax. Пока еще с этим не ковырялся. Портировать Свибплекс можно и без редактора - карты будут хранится внутри отдельного JS скрипта в виде матрицы из чисел. В принципе, это нормально и мне этого пока достаточно.&lt;br /&gt;&lt;br /&gt;Оказывается, существует "обертка" для написания приложений на JS для андроида (и не только) - PhoneGap:&lt;br /&gt;&lt;a href="http://www.mini-server.ru/faq/programms/103-android-eclipse-ubuntu"&gt;http://www.mini-server.ru/faq/programms/103-android-eclipse-ubuntu&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.phonegap.com/w/page/30862722/phonegap-android-eclipse-quickstart#BuildingTheSampleProject"&gt;http://wiki.phonegap.com/w/page/30862722/phonegap-android-eclipse-quickstart#BuildingTheSampleProject&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.phonegap.com/"&gt;http://www.phonegap.com/&lt;/a&gt;&lt;br /&gt;Удалось таки образом запустить один из моих предыдущих примеров: &lt;a href="http://dl.dropbox.com/u/15250319/index.html"&gt;http://dl.dropbox.com/u/15250319/index.html&lt;/a&gt;&lt;br /&gt;Исходники тут:&lt;a href="http://dl.dropbox.com/u/15250319/HelloPhoneGap.tar.gz"&gt;http://dl.dropbox.com/u/15250319/HelloPhoneGap.tar.gz&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-195930720251317585?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/195930720251317585/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/02/html5-canvas-4.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/195930720251317585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/195930720251317585'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/02/html5-canvas-4.html' title='HTML5. Canvas ч.4.'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-2346124986363927491</id><published>2011-01-25T23:34:00.004+03:00</published><updated>2011-01-27T19:49:37.914+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><category scheme='http://www.blogger.com/atom/ns#' term='canvas'/><title type='text'>HTML5. Canvas. ч.3.</title><content type='html'>Еще немного поглумившись с js, потихонечку перешел к работе со спрайтами. Для анимации спрайтов перевел с "сей" cвою функцию ControlAnimate, за что - огромное спасибо Mainamez за помощь) И теперь трепещите! Великий, Ужасный и Брутальный Свиборг теперь на сабже:&amp;nbsp;&lt;a href="http://minidune.narod.ru/canvas5.html"&gt;http://minidune.narod.ru/canvas5.html&lt;/a&gt;.&amp;nbsp;Управление аналогично предудщему примеру.&lt;br /&gt;&lt;br /&gt;Исходник у проги под катом...&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, arial, helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;table class="pastetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos" style="color: #888888; font-size: medium; padding-bottom: 6px; padding-left: 12px; padding-right: 0px; padding-top: 0px;"&gt;&lt;pre&gt;1&lt;br /&gt;  2&lt;br /&gt;  3&lt;br /&gt;  4&lt;br /&gt;  5&lt;br /&gt;  6&lt;br /&gt;  7&lt;br /&gt;  8&lt;br /&gt;  9&lt;br /&gt;&lt;span class="special"&gt; 10&lt;/span&gt;&lt;br /&gt; 11&lt;br /&gt; 12&lt;br /&gt; 13&lt;br /&gt; 14&lt;br /&gt; 15&lt;br /&gt; 16&lt;br /&gt; 17&lt;br /&gt; 18&lt;br /&gt; 19&lt;br /&gt;&lt;span class="special"&gt; 20&lt;/span&gt;&lt;br /&gt; 21&lt;br /&gt; 22&lt;br /&gt; 23&lt;br /&gt; 24&lt;br /&gt; 25&lt;br /&gt; 26&lt;br /&gt; 27&lt;br /&gt; 28&lt;br /&gt; 29&lt;br /&gt;&lt;span class="special"&gt; 30&lt;/span&gt;&lt;br /&gt; 31&lt;br /&gt; 32&lt;br /&gt; 33&lt;br /&gt; 34&lt;br /&gt; 35&lt;br /&gt; 36&lt;br /&gt; 37&lt;br /&gt; 38&lt;br /&gt; 39&lt;br /&gt;&lt;span class="special"&gt; 40&lt;/span&gt;&lt;br /&gt; 41&lt;br /&gt; 42&lt;br /&gt; 43&lt;br /&gt; 44&lt;br /&gt; 45&lt;br /&gt; 46&lt;br /&gt; 47&lt;br /&gt; 48&lt;br /&gt; 49&lt;br /&gt;&lt;span class="special"&gt; 50&lt;/span&gt;&lt;br /&gt; 51&lt;br /&gt; 52&lt;br /&gt; 53&lt;br /&gt; 54&lt;br /&gt; 55&lt;br /&gt; 56&lt;br /&gt; 57&lt;br /&gt; 58&lt;br /&gt; 59&lt;br /&gt;&lt;span class="special"&gt; 60&lt;/span&gt;&lt;br /&gt; 61&lt;br /&gt; 62&lt;br /&gt; 63&lt;br /&gt; 64&lt;br /&gt; 65&lt;br /&gt; 66&lt;br /&gt; 67&lt;br /&gt; 68&lt;br /&gt; 69&lt;br /&gt;&lt;span class="special"&gt; 70&lt;/span&gt;&lt;br /&gt; 71&lt;br /&gt; 72&lt;br /&gt; 73&lt;br /&gt; 74&lt;br /&gt; 75&lt;br /&gt; 76&lt;br /&gt; 77&lt;br /&gt; 78&lt;br /&gt; 79&lt;br /&gt;&lt;span class="special"&gt; 80&lt;/span&gt;&lt;br /&gt; 81&lt;br /&gt; 82&lt;br /&gt; 83&lt;br /&gt; 84&lt;br /&gt; 85&lt;br /&gt; 86&lt;br /&gt; 87&lt;br /&gt; 88&lt;br /&gt; 89&lt;br /&gt;&lt;span class="special"&gt; 90&lt;/span&gt;&lt;br /&gt; 91&lt;br /&gt; 92&lt;br /&gt; 93&lt;br /&gt; 94&lt;br /&gt; 95&lt;br /&gt; 96&lt;br /&gt; 97&lt;br /&gt; 98&lt;br /&gt; 99&lt;br /&gt;&lt;span class="special"&gt;100&lt;/span&gt;&lt;br /&gt;101&lt;br /&gt;102&lt;br /&gt;103&lt;br /&gt;104&lt;br /&gt;105&lt;br /&gt;106&lt;br /&gt;107&lt;br /&gt;108&lt;br /&gt;109&lt;br /&gt;&lt;span class="special"&gt;110&lt;/span&gt;&lt;br /&gt;111&lt;br /&gt;112&lt;br /&gt;113&lt;br /&gt;114&lt;br /&gt;115&lt;br /&gt;116&lt;br /&gt;117&lt;br /&gt;118&lt;br /&gt;119&lt;br /&gt;&lt;span class="special"&gt;120&lt;/span&gt;&lt;br /&gt;121&lt;br /&gt;122&lt;br /&gt;123&lt;br /&gt;124&lt;br /&gt;125&lt;br /&gt;126&lt;br /&gt;127&lt;br /&gt;128&lt;br /&gt;129&lt;br /&gt;&lt;span class="special"&gt;130&lt;/span&gt;&lt;br /&gt;131&lt;br /&gt;132&lt;br /&gt;133&lt;br /&gt;134&lt;br /&gt;135&lt;br /&gt;136&lt;br /&gt;137&lt;br /&gt;138&lt;br /&gt;139&lt;br /&gt;&lt;span class="special"&gt;140&lt;/span&gt;&lt;br /&gt;141&lt;br /&gt;142&lt;br /&gt;143&lt;br /&gt;144&lt;br /&gt;145&lt;br /&gt;146&lt;br /&gt;147&lt;br /&gt;148&lt;br /&gt;149&lt;br /&gt;&lt;span class="special"&gt;150&lt;/span&gt;&lt;br /&gt;151&lt;br /&gt;152&lt;br /&gt;153&lt;br /&gt;154&lt;br /&gt;155&lt;br /&gt;156&lt;br /&gt;157&lt;br /&gt;158&lt;br /&gt;159&lt;br /&gt;&lt;span class="special"&gt;160&lt;/span&gt;&lt;br /&gt;161&lt;br /&gt;162&lt;br /&gt;163&lt;br /&gt;164&lt;br /&gt;165&lt;br /&gt;166&lt;br /&gt;167&lt;br /&gt;168&lt;br /&gt;169&lt;br /&gt;&lt;span class="special"&gt;170&lt;/span&gt;&lt;br /&gt;171&lt;br /&gt;172&lt;br /&gt;173&lt;br /&gt;174&lt;br /&gt;175&lt;br /&gt;176&lt;br /&gt;177&lt;br /&gt;178&lt;br /&gt;179&lt;br /&gt;&lt;span class="special"&gt;180&lt;/span&gt;&lt;br /&gt;181&lt;br /&gt;182&lt;br /&gt;183&lt;br /&gt;184&lt;br /&gt;185&lt;br /&gt;186&lt;br /&gt;187&lt;br /&gt;188&lt;br /&gt;189&lt;br /&gt;&lt;span class="special"&gt;190&lt;/span&gt;&lt;br /&gt;191&lt;br /&gt;192&lt;br /&gt;193&lt;br /&gt;194&lt;br /&gt;195&lt;br /&gt;196&lt;br /&gt;197&lt;br /&gt;198&lt;br /&gt;199&lt;br /&gt;&lt;span class="special"&gt;200&lt;/span&gt;&lt;br /&gt;201&lt;br /&gt;202&lt;br /&gt;203&lt;br /&gt;204&lt;br /&gt;205&lt;br /&gt;206&lt;br /&gt;207&lt;br /&gt;208&lt;br /&gt;209&lt;br /&gt;&lt;span class="special"&gt;210&lt;/span&gt;&lt;br /&gt;211&lt;br /&gt;212&lt;br /&gt;213&lt;br /&gt;214&lt;br /&gt;215&lt;br /&gt;216&lt;br /&gt;217&lt;br /&gt;218&lt;br /&gt;219&lt;br /&gt;&lt;span class="special"&gt;220&lt;/span&gt;&lt;br /&gt;221&lt;br /&gt;222&lt;br /&gt;223&lt;br /&gt;224&lt;br /&gt;225&lt;br /&gt;226&lt;br /&gt;227&lt;br /&gt;228&lt;br /&gt;229&lt;br /&gt;&lt;span class="special"&gt;230&lt;/span&gt;&lt;br /&gt;231&lt;br /&gt;232&lt;br /&gt;233&lt;br /&gt;234&lt;br /&gt;235&lt;br /&gt;236&lt;br /&gt;237&lt;br /&gt;238&lt;br /&gt;239&lt;br /&gt;&lt;span class="special"&gt;240&lt;/span&gt;&lt;br /&gt;241&lt;br /&gt;242&lt;br /&gt;243&lt;br /&gt;244&lt;br /&gt;245&lt;br /&gt;246&lt;br /&gt;247&lt;br /&gt;248&lt;br /&gt;249&lt;br /&gt;&lt;span class="special"&gt;250&lt;/span&gt;&lt;br /&gt;251&lt;br /&gt;252&lt;br /&gt;253&lt;br /&gt;254&lt;br /&gt;255&lt;br /&gt;256&lt;br /&gt;257&lt;br /&gt;258&lt;br /&gt;259&lt;br /&gt;&lt;span class="special"&gt;260&lt;/span&gt;&lt;br /&gt;261&lt;br /&gt;262&lt;br /&gt;263&lt;br /&gt;264&lt;br /&gt;265&lt;br /&gt;266&lt;br /&gt;267&lt;br /&gt;268&lt;br /&gt;269&lt;br /&gt;&lt;span class="special"&gt;270&lt;/span&gt;&lt;br /&gt;271&lt;br /&gt;272&lt;br /&gt;273&lt;br /&gt;274&lt;br /&gt;275&lt;br /&gt;276&lt;br /&gt;277&lt;br /&gt;278&lt;br /&gt;279&lt;br /&gt;&lt;span class="special"&gt;280&lt;/span&gt;&lt;br /&gt;281&lt;br /&gt;282&lt;br /&gt;283&lt;br /&gt;284&lt;br /&gt;285&lt;br /&gt;286&lt;br /&gt;287&lt;br /&gt;288&lt;br /&gt;289&lt;br /&gt;&lt;span class="special"&gt;290&lt;/span&gt;&lt;br /&gt;291&lt;br /&gt;292&lt;br /&gt;293&lt;br /&gt;294&lt;br /&gt;295&lt;br /&gt;296&lt;br /&gt;297&lt;br /&gt;298&lt;br /&gt;299&lt;br /&gt;&lt;span class="special"&gt;300&lt;/span&gt;&lt;br /&gt;301&lt;br /&gt;302&lt;br /&gt;303&lt;br /&gt;304&lt;br /&gt;305&lt;br /&gt;306&lt;br /&gt;307&lt;br /&gt;308&lt;br /&gt;309&lt;br /&gt;&lt;span class="special"&gt;310&lt;/span&gt;&lt;br /&gt;311&lt;br /&gt;312&lt;br /&gt;313&lt;br /&gt;314&lt;br /&gt;315&lt;br /&gt;316&lt;br /&gt;317&lt;br /&gt;318&lt;br /&gt;319&lt;br /&gt;&lt;span class="special"&gt;320&lt;/span&gt;&lt;br /&gt;321&lt;br /&gt;322&lt;br /&gt;323&lt;br /&gt;324&lt;br /&gt;325&lt;br /&gt;326&lt;br /&gt;327&lt;br /&gt;328&lt;br /&gt;329&lt;br /&gt;&lt;span class="special"&gt;330&lt;/span&gt;&lt;br /&gt;331&lt;br /&gt;332&lt;br /&gt;333&lt;br /&gt;334&lt;br /&gt;335&lt;br /&gt;336&lt;br /&gt;337&lt;br /&gt;338&lt;br /&gt;339&lt;br /&gt;&lt;span class="special"&gt;340&lt;/span&gt;&lt;br /&gt;341&lt;br /&gt;342&lt;br /&gt;343&lt;br /&gt;344&lt;br /&gt;345&lt;br /&gt;346&lt;br /&gt;347&lt;br /&gt;348&lt;br /&gt;349&lt;br /&gt;&lt;span class="special"&gt;350&lt;/span&gt;&lt;br /&gt;351&lt;br /&gt;352&lt;br /&gt;353&lt;br /&gt;354&lt;br /&gt;355&lt;br /&gt;356&lt;br /&gt;357&lt;br /&gt;358&lt;br /&gt;359&lt;br /&gt;&lt;span class="special"&gt;360&lt;/span&gt;&lt;br /&gt;361&lt;br /&gt;362&lt;br /&gt;363&lt;br /&gt;364&lt;br /&gt;365&lt;br /&gt;366&lt;br /&gt;367&lt;br /&gt;368&lt;br /&gt;369&lt;br /&gt;&lt;span class="special"&gt;370&lt;/span&gt;&lt;br /&gt;371&lt;br /&gt;372&lt;br /&gt;373&lt;br /&gt;374&lt;br /&gt;375&lt;br /&gt;376&lt;br /&gt;377&lt;br /&gt;378&lt;br /&gt;379&lt;br /&gt;&lt;span class="special"&gt;380&lt;/span&gt;&lt;br /&gt;381&lt;br /&gt;382&lt;br /&gt;383&lt;br /&gt;384&lt;br /&gt;385&lt;br /&gt;386&lt;br /&gt;387&lt;br /&gt;388&lt;br /&gt;389&lt;br /&gt;&lt;span class="special"&gt;390&lt;/span&gt;&lt;br /&gt;391&lt;br /&gt;392&lt;br /&gt;393&lt;br /&gt;394&lt;br /&gt;395&lt;br /&gt;396&lt;br /&gt;397&lt;br /&gt;398&lt;br /&gt;399&lt;br /&gt;&lt;span class="special"&gt;400&lt;/span&gt;&lt;br /&gt;401&lt;br /&gt;402&lt;br /&gt;403&lt;br /&gt;404&lt;br /&gt;405&lt;br /&gt;406&lt;br /&gt;407&lt;br /&gt;408&lt;br /&gt;409&lt;br /&gt;&lt;span class="special"&gt;410&lt;/span&gt;&lt;br /&gt;411&lt;br /&gt;412&lt;br /&gt;413&lt;br /&gt;414&lt;br /&gt;415&lt;br /&gt;416&lt;br /&gt;417&lt;br /&gt;418&lt;br /&gt;419&lt;br /&gt;&lt;span class="special"&gt;420&lt;/span&gt;&lt;br /&gt;421&lt;br /&gt;422&lt;br /&gt;423&lt;br /&gt;424&lt;br /&gt;425&lt;br /&gt;426&lt;br /&gt;427&lt;br /&gt;428&lt;br /&gt;429&lt;br /&gt;&lt;span class="special"&gt;430&lt;/span&gt;&lt;br /&gt;431&lt;br /&gt;432&lt;br /&gt;433&lt;br /&gt;434&lt;br /&gt;435&lt;br /&gt;436&lt;br /&gt;437&lt;br /&gt;438&lt;br /&gt;439&lt;br /&gt;&lt;span class="special"&gt;440&lt;/span&gt;&lt;br /&gt;441&lt;br /&gt;442&lt;br /&gt;443&lt;br /&gt;444&lt;br /&gt;445&lt;br /&gt;446&lt;br /&gt;447&lt;br /&gt;448&lt;br /&gt;449&lt;br /&gt;&lt;span class="special"&gt;450&lt;/span&gt;&lt;br /&gt;451&lt;br /&gt;452&lt;br /&gt;453&lt;br /&gt;454&lt;br /&gt;455&lt;br /&gt;456&lt;br /&gt;457&lt;br /&gt;458&lt;br /&gt;459&lt;br /&gt;&lt;span class="special"&gt;460&lt;/span&gt;&lt;br /&gt;461&lt;br /&gt;462&lt;br /&gt;463&lt;br /&gt;464&lt;br /&gt;465&lt;br /&gt;466&lt;br /&gt;467&lt;br /&gt;468&lt;br /&gt;469&lt;br /&gt;&lt;span class="special"&gt;470&lt;/span&gt;&lt;br /&gt;471&lt;br /&gt;472&lt;br /&gt;473&lt;br /&gt;474&lt;br /&gt;475&lt;br /&gt;476&lt;br /&gt;477&lt;br /&gt;478&lt;br /&gt;479&lt;br /&gt;&lt;span class="special"&gt;480&lt;/span&gt;&lt;br /&gt;481&lt;br /&gt;482&lt;br /&gt;483&lt;br /&gt;484&lt;br /&gt;485&lt;br /&gt;486&lt;br /&gt;487&lt;br /&gt;488&lt;br /&gt;489&lt;br /&gt;&lt;span class="special"&gt;490&lt;/span&gt;&lt;br /&gt;491&lt;br /&gt;492&lt;br /&gt;493&lt;br /&gt;494&lt;br /&gt;495&lt;br /&gt;496&lt;br /&gt;497&lt;br /&gt;498&lt;br /&gt;499&lt;br /&gt;&lt;span class="special"&gt;500&lt;/span&gt;&lt;br /&gt;501&lt;br /&gt;502&lt;br /&gt;503&lt;br /&gt;504&lt;br /&gt;505&lt;br /&gt;506&lt;br /&gt;507&lt;br /&gt;508&lt;br /&gt;509&lt;br /&gt;&lt;span class="special"&gt;510&lt;/span&gt;&lt;br /&gt;511&lt;br /&gt;512&lt;br /&gt;513&lt;br /&gt;514&lt;br /&gt;515&lt;br /&gt;516&lt;br /&gt;517&lt;br /&gt;518&lt;br /&gt;519&lt;br /&gt;&lt;span class="special"&gt;520&lt;/span&gt;&lt;br /&gt;521&lt;br /&gt;522&lt;br /&gt;523&lt;br /&gt;524&lt;br /&gt;525&lt;br /&gt;526&lt;br /&gt;527&lt;br /&gt;528&lt;br /&gt;529&lt;br /&gt;&lt;span class="special"&gt;530&lt;/span&gt;&lt;br /&gt;531&lt;br /&gt;532&lt;br /&gt;533&lt;br /&gt;534&lt;br /&gt;535&lt;br /&gt;536&lt;br /&gt;537&lt;br /&gt;538&lt;br /&gt;539&lt;br /&gt;&lt;span class="special"&gt;540&lt;/span&gt;&lt;br /&gt;541&lt;br /&gt;542&lt;br /&gt;543&lt;br /&gt;544&lt;br /&gt;545&lt;br /&gt;546&lt;br /&gt;547&lt;br /&gt;548&lt;br /&gt;549&lt;br /&gt;&lt;span class="special"&gt;550&lt;/span&gt;&lt;br /&gt;551&lt;br /&gt;552&lt;br /&gt;553&lt;br /&gt;554&lt;br /&gt;555&lt;br /&gt;556&lt;br /&gt;557&lt;br /&gt;558&lt;br /&gt;559&lt;br /&gt;&lt;span class="special"&gt;560&lt;/span&gt;&lt;br /&gt;561&lt;br /&gt;562&lt;br /&gt;563&lt;br /&gt;564&lt;br /&gt;565&lt;br /&gt;566&lt;br /&gt;567&lt;br /&gt;568&lt;br /&gt;569&lt;br /&gt;&lt;span class="special"&gt;570&lt;/span&gt;&lt;br /&gt;571&lt;br /&gt;572&lt;br /&gt;573&lt;br /&gt;574&lt;br /&gt;575&lt;br /&gt;576&lt;br /&gt;577&lt;br /&gt;578&lt;br /&gt;579&lt;br /&gt;&lt;span class="special"&gt;580&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class="code" style="color: #888888; padding-bottom: 6px; padding-left: 12px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div class="paste" style="-webkit-box-shadow: rgb(238, 238, 238) 0px 1px 5px; background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 0px; border-color: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 0px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 0px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-left-radius: 4px 4px; border-top-right-radius: 4px 4px; border-top-style: solid; border-top-width: 0px; color: black; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;pre&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;canvasExample&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;body&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;onload=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;"Init()"&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;onkeydown=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;"get_key_down(event);"&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;onkeyup=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;"get_key_up(event);"&lt;/span&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;canvas&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;width=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;'800'&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;height=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;'480'&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;id=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;'herovina'&lt;/span&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;Обновите браузер&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/canvas&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Тут пишем сам текст проги на js&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Служебные переменные&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;herovina&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nb" style="color: #aa22ff;"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;"herovina"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ctx&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;herovina&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1" style="color: #bb4444;"&gt;'2d'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;timer&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;таймер&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;в&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;мс&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;frameRate&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;длительность&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;цикла&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;в&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;мс&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;аналог&lt;/span&gt; &lt;span class="nx"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;counter&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;fps&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;fps_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;br /&gt;    &lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;herovina&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;размеры&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;выводимого&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;фрейма&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;herovina&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Cвоя функция random&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;val&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span class="nb" style="color: #aa22ff;"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb" style="color: #aa22ff;"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;val&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//объект&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;obj_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;obj_frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Some&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;   &lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;frame_count&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Hren&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//вызов&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Some&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;obj_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;obj_frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;obj_frame&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;obj_frame_count&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод текста  &lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgb(255,0,255)"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;font&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"16px Arial"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textBaseline&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"top"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;"obj_frame="&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;obj_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;", obj_frame_count="&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;obj_frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;10&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;80&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Функция для контроля анимации                    &lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;ControlAnimate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;номер&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;текущего&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадра&lt;/span&gt;&lt;br /&gt;                        &lt;span class="nx"&gt;frame_start&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;стартовый&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадр&lt;/span&gt;&lt;br /&gt;                        &lt;span class="nx"&gt;frame_finish&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;финальный&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадр&lt;/span&gt;&lt;br /&gt;                        &lt;span class="nx"&gt;frame_delta&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;шаг&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;между&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадрами&lt;/span&gt;&lt;br /&gt;                        &lt;span class="nx"&gt;frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;                        &lt;span class="nx"&gt;delay&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;задержка&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;между&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадрами&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;в&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;циклах&lt;/span&gt;&lt;br /&gt;                        &lt;span class="nx"&gt;frame_loop&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//зациклить ли анимацию&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="nx"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame_start&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;frame_finish&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;frame_delta&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//следующий кадр анимации&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame_start&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;frame_finish&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;frame_delta&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//следующий кадр анимации&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;frame_finish&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;frame_start&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;frame_finish&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;||&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;frame_finish&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;frame_start&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;frame_finish&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;frame_finish&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame_loop&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;frame_start&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//возвращаемся на старый кадр&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;счетчик&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;задержки&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;frame_count&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Звездное небо. Для массива звезд используется класс&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;star&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;new&lt;/span&gt; &lt;span class="nb" style="color: #aa22ff;"&gt;Array&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;StarClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;speed&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;speed&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;speed&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Инициация звездного неба&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;InitStars&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Исходные значение для членов массива star&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;50&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;s&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;StarClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;                          &lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;                          &lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;                  &lt;br /&gt;    &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;s&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Движение звездного неба&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;RefreshStars&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;speed&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если звезда вылетает за границу экрана&lt;/span&gt;&lt;br /&gt;  &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;speed&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;break&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;     &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод звездного небы&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;DrawStars&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;distance&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;мнимая&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;дистанция&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;до&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;экрана&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//резмеры звезды и ее цвет зависят от ее близости к экрану   &lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;distance&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;speed&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;*&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;80&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;distance&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;distance&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;100&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;не&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;темная&lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgb("&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;distance&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;","&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;distance&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;","&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;distance&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;")"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillRect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;distance&lt;/span&gt;&lt;span class="sr" style="color: #bb6688;"&gt;/30,distance/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;30&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;  &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Мячики - используется самый обычный массив&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;30&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;15&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;ball_x&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;координаты&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;объекта&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_y&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_radius&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;размеры&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;объекта&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_move_x&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;скорости&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;смещения&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;объекта&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_move_y&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Инициация мячиков&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;InitBalls&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt;    &lt;span class="nx"&gt;ball_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;    &lt;span class="nx"&gt;ball_radius&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;    &lt;span class="nx"&gt;ball_move_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="sr" style="color: #bb6688;"&gt;/2)-random(ball_max/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_move_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="sr" style="color: #bb6688;"&gt;/2)-random(ball_max/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_move_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ball_move_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_move_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ball_move_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;   &lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Движение мячиков&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;RefreshBalls&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt;    &lt;span class="nx"&gt;ball_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;ball_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;ball_move_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;ball_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;ball_move_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;ball_radius&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;ball_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;br /&gt;       &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ball_move_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=-&lt;/span&gt;&lt;span class="nx"&gt;ball_move_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];}&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;ball_radius&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;ball_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;br /&gt;       &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ball_move_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=-&lt;/span&gt;&lt;span class="nx"&gt;ball_move_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];}&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод мячиков  &lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;DrawBalls&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt; &lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//для справок http://oneline.org.ru/statii/canvas.html&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;beginPath&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//начало рисования&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lineWidth&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;7&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;толщина&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;линий&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;strokeStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgba(90,50,205,20)"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;при&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;использовании&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;рисовании&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;без&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;заливки&lt;/span&gt;&lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.fillStyle = "rgb(9,5,205)";//при использовании в рисовании заливки&lt;/span&gt;&lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Рисование дуги&lt;/span&gt;&lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.arc(x,y,radius,startAngle,endAngle, anticlockwise); // Create the arc path.&lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;arc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;ball_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;ball_radius&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nb" style="color: #aa22ff;"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PI&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;*&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="kc" style="color: #aa22ff; font-weight: bold;"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stroke&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//конец рисования без заливки&lt;/span&gt;&lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.fill();//конец рисования c заливкой&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;  &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;      &lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Задник - изображение &lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;BackGround&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;PlayerSprite&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;br /&gt;   &lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Игрок&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;p_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;координаты&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;объекта&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;размеры&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;объекта&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_move_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;скорости&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;смещения&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;объекта&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_move_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_move&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_start_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_finish_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_frame_delay&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;заержка&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;смены&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадра&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;анимации&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="nx"&gt;p_view_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрок&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;смотрит&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;вправо&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;направлениие&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;вектора&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;последнего&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;движения&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;по&lt;/span&gt; &lt;span class="nx"&gt;OX&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_active&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрок&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;активен&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="nx"&gt;p_TX_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_TX_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_TX_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_TX_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Максимальное количество патронов&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;bullet_max&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;30&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Массив патронов игрока    &lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;bullet_x&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;bullet_y&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;bullet_dx&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;bullet_dy&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;bullet_move_dx&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;bullet_true&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;bullet_matugalnik&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;matuga&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;6&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Переменные для управления    &lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;k_down&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;k_up&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;k_left&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;k_right&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;k_fire&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;get_key_down&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;37&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_left&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;38&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_up&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;39&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_right&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;40&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_down&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_fire&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;get_key_up&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;37&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_left&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;38&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_up&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;39&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_right&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;40&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_down&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_fire&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия инициализации&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Init&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;InitStars&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//инициация звезд&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;InitBalls&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//инициация мячиков&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Грузим изображение фона&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;BackGround&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"back.png"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;PlayerSprite&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"swiborg.png"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Игрок&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="sr" style="color: #bb6688;"&gt;/2;/&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;координаты&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;старта&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрока&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;p_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;80&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;геометрические&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;размеры&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрока&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;80&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;p_move_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;скорость&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;передвижения&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрока&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_move_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;p_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_start_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;p_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_finish_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_frame_delay&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;80&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;p_view_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_active&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;p_TX_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_TX_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;256&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_TX_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;128&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_TX_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;128&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Начальные параметры для патронов игрока&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt;    &lt;span class="nx"&gt;bullet_true&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;  &lt;span class="nx"&gt;matuga&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"You!"&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;matuga&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"Look"&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;matuga&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"Like"&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;matuga&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"A"&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;matuga&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"Shit!"&lt;/span&gt; &lt;br /&gt;  &lt;span class="nx"&gt;matuga&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;6&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"Pesec!"&lt;/span&gt; &lt;br /&gt;   &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;    &lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия обновления&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;RefreshStuff&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;RefreshStars&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;RefreshBalls&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Движение игрока и соответствующие ей анимации&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k_left&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//движение влево &lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;p_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;p_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;p_move_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;перемещение&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрока&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;вдоль&lt;/span&gt; &lt;span class="nx"&gt;OX&lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;p_view_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;вправо&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрок&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;не&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;смотрит&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_TX_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;текстурные&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;координаты&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_TX_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;128&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_start_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;начальный&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;и&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;конечный&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадр&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;анимации&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;движения&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_finish_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;4&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_frame_delay&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;10&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_active&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//движение вправо&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt; &lt;br /&gt; &lt;span class="nx"&gt;p_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;p_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;p_move_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;перемещение&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрока&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;вдоль&lt;/span&gt; &lt;span class="nx"&gt;OX&lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;p_view_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрок&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;смотрит&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;вправо&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_TX_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;текстурные&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;координаты&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_TX_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_start_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;начальный&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;и&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;конечный&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадр&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;анимации&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;движения&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_finish_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;4&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_frame_delay&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;10&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_active&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k_up&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;p_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;p_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;p_move_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//движение вверх&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k_down&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;p_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;p_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;p_move_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//движение вниз &lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k_up&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;k_down&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//при движении вверх и вниз будет использоваться различная анимация&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_view_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если игрок смотрит вправо  &lt;/span&gt;&lt;br /&gt;  &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_TX_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_TX_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;   &lt;br /&gt;  &lt;span class="p"&gt;}&lt;/span&gt; &lt;br /&gt;  &lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_view_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если игрок не смотрит вправо&lt;/span&gt;&lt;br /&gt;     &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_TX_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_TX_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;128&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;   &lt;br /&gt;  &lt;span class="p"&gt;}&lt;/span&gt; &lt;br /&gt;    &lt;span class="nx"&gt;p_start_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;начальный&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;и&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;конечный&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадр&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;анимации&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;движения&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_finish_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;4&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_frame_delay&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;10&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_active&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;       &lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k_left&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;k_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;k_up&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;k_down&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;k_fire&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//анимация в состояние покоя&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;p_active&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//переход к анимации покоя из активного состояния&lt;/span&gt;&lt;br /&gt;  &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_view_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если игрок смотрит вправо   &lt;/span&gt;&lt;br /&gt;    &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;        &lt;span class="nx"&gt;p_TX_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;        &lt;span class="nx"&gt;p_TX_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;   &lt;br /&gt;    &lt;span class="p"&gt;}&lt;/span&gt; &lt;br /&gt;  &lt;br /&gt;      &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_view_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если игрок не смотрит вправо  &lt;/span&gt;&lt;br /&gt;    &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;        &lt;span class="nx"&gt;p_TX_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;        &lt;span class="nx"&gt;p_TX_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;128&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;   &lt;br /&gt;    &lt;span class="p"&gt;}&lt;/span&gt; &lt;br /&gt;      &lt;span class="nx"&gt;p_start_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;p_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_finish_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;  &lt;br /&gt;  &lt;span class="p"&gt;}&lt;/span&gt; &lt;br /&gt;    &lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;p_active&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//переход к анимации покоя из активного состояния&lt;/span&gt;&lt;br /&gt;  &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_TX_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_TX_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;256&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;  &lt;br /&gt;      &lt;span class="nx"&gt;p_start_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;p_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_finish_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_frame_delay&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;80&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_active&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;состояние&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;покоя&lt;/span&gt;&lt;br /&gt;  &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;                       &lt;br /&gt;                         &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Ограничение на перемещение игрока по экрану &lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;p_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;p_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;p_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;p_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;p_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;p_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;p_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;p_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k_fire&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//при стрельбе&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt; &lt;br /&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_view_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;     &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_TX_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_TX_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;256&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;128&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;   &lt;br /&gt;  &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_view_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;   &lt;br /&gt;  &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_TX_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;256&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;p_TX_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;256&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;128&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;   &lt;br /&gt;  &lt;span class="p"&gt;}&lt;/span&gt;  &lt;br /&gt;    &lt;span class="nx"&gt;p_start_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_finish_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_frame_delay&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;15&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;p_active&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Выстрел&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k_fire&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;     &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt;   &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bullet_true&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если i-го патрон не существует, то&lt;/span&gt;&lt;br /&gt;    &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;bullet_true&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;теперь&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;он&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;существует&lt;/span&gt;&lt;br /&gt;        &lt;span class="nx"&gt;bullet_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;p_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;p_dx&lt;/span&gt;&lt;span class="sr" style="color: #bb6688;"&gt;/2;/&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;в&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;координатах&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрока&lt;/span&gt;&lt;br /&gt;        &lt;span class="nx"&gt;bullet_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;p_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;p_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="mf" style="color: #666666;"&gt;1.8&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;4&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;        &lt;span class="nx"&gt;bullet_dx&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;15&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;6&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;        &lt;span class="nx"&gt;bullet_dy&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;6&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;           &lt;br /&gt;        &lt;span class="nx"&gt;bullet_matugalnik&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;               &lt;br /&gt;        &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//направление движения патрона взависимости от того куда смотрит игрок&lt;/span&gt;&lt;br /&gt;       &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_view_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;bullet_move_dx&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;4&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если смотрит вправо&lt;/span&gt;&lt;br /&gt;       &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_view_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;bullet_move_dx&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=-&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;4&lt;/span&gt;&lt;span class="p"&gt;);}&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если смотрит влево     &lt;/span&gt;&lt;br /&gt;        &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;break&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;вываливаемся&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;из&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;цикла&lt;/span&gt;&lt;br /&gt;       &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;     &lt;span class="p"&gt;}&lt;/span&gt;      &lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//k_fire=0;//если хотим чтобы было 1 нажатие&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Движение патрона &lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bullet_true&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если i-ый патрон существует, то&lt;/span&gt;&lt;br /&gt;  &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;bullet_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;bullet_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;bullet_move_dx&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//движение патрона вдоль OX&lt;/span&gt;&lt;br /&gt;      &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Если патрон вылетает за win_DX или 0, то его больше не существует&lt;/span&gt;&lt;br /&gt;      &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bullet_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;||&lt;/span&gt;&lt;br /&gt;          &lt;span class="nx"&gt;bullet_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;bullet_dx&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;br /&gt;         &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;bullet_true&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;     &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;      &lt;br /&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;ControlAnimate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;номер&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;текущего&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадра&lt;/span&gt;&lt;br /&gt;                         &lt;span class="nx"&gt;p_start_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;стартовый&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадр&lt;/span&gt;&lt;br /&gt;                         &lt;span class="nx"&gt;p_finish_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;финальный&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадр&lt;/span&gt;&lt;br /&gt;                         &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;шаг&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;между&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадрами&lt;/span&gt;&lt;br /&gt;                         &lt;span class="nx"&gt;p_frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;                         &lt;span class="nx"&gt;p_frame_delay&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;задержка&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;между&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;кадрами&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;в&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;циклах&lt;/span&gt;&lt;br /&gt;                         &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//зациклить ли анимацию&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;p_frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;              &lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия отрисовки&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Draw&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Черный фон на весь фрейм&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.fillStyle = "rgb(0,0,0)";&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.fillRect(0,0,win_DX,win_DY)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод повернутого изображения&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.save();//запоминаем состояние&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.translate(win_DX/2,win_DY/2);//смещаем на половину размера изображения&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.rotate(45 * Math.PI / 180);//поворачиваем на нужный угол&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.translate(-win_DX/2,-win_DY/2);//смещаем повернутое изображение обратно&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.drawImage(BackGround,0,0, win_DX, win_DY);//рисуем изображение&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.restore();//восстанавливаем состояние&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод задника на весь фрейм&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;drawImage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;BackGround&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//рисуем изображение&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Рисуем звезды&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;DrawStars&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод текста  &lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgb(255,0,255)"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;font&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"12px Arial"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textBaseline&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"top"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;"timer="&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;timer&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;", counter="&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;counter&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;", fps_max="&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;fps_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;10&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;10&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод игрока&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.fillStyle = "rgb(255,0,255)";&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.fillRect(p_x, p_y, p_dx, p_dy);&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод части изображения&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;"p_TX_x="&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;p_TX_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;", p_TX_y="&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;p_TX_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;", p_frame="&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;p_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;", p_frame_count="&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;p_frame_count&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;10&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;40&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;   &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Рисуем патроны &lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bullet_true&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если i-ый патрон существует, то&lt;/span&gt;&lt;br /&gt;  &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgb(0,255,255)"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillRect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bullet_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;bullet_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;bullet_dx&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;bullet_dy&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;&lt;br /&gt;      &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.fillStyle = "rgb(255,200,200)";&lt;/span&gt;&lt;br /&gt;      &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.font = "12px Arial";&lt;/span&gt;&lt;br /&gt;      &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.fillText(matuga[bullet_matugalnik[i]],bullet_x[i],bullet_y[i]);&lt;/span&gt;&lt;br /&gt;      &lt;br /&gt;     &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;  &lt;br /&gt; &lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;drawImage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;PlayerSprite&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;                &lt;span class="nx"&gt;p_TX_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;p_TX_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p_frame&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;координаты&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;начала&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;среза&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;относительно&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;текстуры&lt;/span&gt;&lt;br /&gt;                &lt;span class="nx"&gt;p_TX_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;                &lt;span class="nx"&gt;p_TX_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;величина&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;среза&lt;/span&gt;&lt;br /&gt;                &lt;span class="nx"&gt;p_TX_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;                &lt;span class="nx"&gt;p_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;координаты&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;вывода&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;вырезанного&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;куска&lt;/span&gt;&lt;br /&gt;                &lt;span class="nx"&gt;p_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;br /&gt;                &lt;span class="nx"&gt;p_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;размеры&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;куска&lt;/span&gt; &lt;br /&gt;                &lt;span class="nx"&gt;p_dy&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;  //Вывод всего изображения&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;  ctx.drawImage(PlayerSprite,&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;                p_x,//координаты&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;                p_y, &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;                p_dx,//размеры&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;                p_dy);                &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;*/&lt;/span&gt;  &lt;br /&gt;                  &lt;br /&gt;  &lt;span class="nx"&gt;DrawBalls&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//рисуем мячики&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Рамка&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;beginPath&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lineWidth&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"10"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;толщина&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;линий&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;strokeStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgb(0,0,205)"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;цвет&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;рамки&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rect&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//сама рамка&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stroke&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия обновления&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Refresh&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;timer&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;timer&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;frameRate&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;считаем&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;таймер&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;мс&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;counter&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;counter&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;суммарное&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;число&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;циклов&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;fps&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;количество&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;пройденных&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;циклов&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;за&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;секунду&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Очистка задника&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.clearRect(0,0,herovina.width, herovina.height);&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.beginPath();&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Обновление всего&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;RefreshStuff&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия отрисовки всего&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;Draw&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;&lt;span class="nx"&gt;setInterval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Refresh&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;frameRate&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//обновление&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Расчет ФПС&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;checkFps&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;fps_max&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;fps&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;fps&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="nx"&gt;setInterval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;checkFps&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-2346124986363927491?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/2346124986363927491/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/01/html5-canvas-3.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/2346124986363927491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/2346124986363927491'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/01/html5-canvas-3.html' title='HTML5. Canvas. ч.3.'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-5655357172139885548</id><published>2011-01-23T19:22:00.018+03:00</published><updated>2011-01-27T19:50:36.839+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><category scheme='http://www.blogger.com/atom/ns#' term='canvas'/><title type='text'>HTML5. Canvas. ч.2.</title><content type='html'>Порывшись в нетах нашел несколько ресурсов по html5 и canvas:&lt;br /&gt;1)&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/ms533053(v=VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms533053(v=VS.85).aspx&lt;/a&gt;&amp;nbsp;(куда уж без мс:))&lt;br /&gt;2)&amp;nbsp;&lt;a href="http://oneline.org.ru/statii/canvas.html"&gt;http://oneline.org.ru/statii/canvas.html&lt;/a&gt;&lt;br /&gt;3)&amp;nbsp;&lt;a href="http://webcache.googleusercontent.com/search?q=cache:http://arttu-peka.info/html-5/igri-na-html5-dlja-chajnikov/"&gt;http://webcache.googleusercontent.com/search?q=cache:http://arttu-peka.info/html-5/igri-na-html5-dlja-chajnikov/&lt;/a&gt;&lt;br /&gt;4)&amp;nbsp;&lt;a href="http://webcache.googleusercontent.com/search?q=cache:http://arttu-peka.info/html-5/igry-na-html5-canvas-dlya-chajnikov-%E2%80%93-chast-ii/"&gt;http://webcache.googleusercontent.com/search?q=cache:http://arttu-peka.info/html-5/igry-na-html5-canvas-dlya-chajnikov-%E2%80%93-chast-ii/&lt;/a&gt;&lt;br /&gt;5)&amp;nbsp;&lt;a href="http://habrahabr.ru/blogs/canvas/112274/"&gt;http://habrahabr.ru/blogs/canvas/112274/&lt;/a&gt;&amp;nbsp;(имхо, какаято компиляция 3) и 4) )&lt;br /&gt;6)&amp;nbsp;&lt;a href="http://wecreategames.com/blog/?p=321"&gt;http://wecreategames.com/blog/?p=321&lt;/a&gt;&lt;br /&gt;7)&amp;nbsp;&lt;a href="http://html5blog.ru/"&gt;http://html5blog.ru/&lt;/a&gt;&lt;br /&gt;8)&amp;nbsp;&lt;a href="http://w3pro.ru/article/html-5-canvas-dlya-nachinayushchikh"&gt;http://w3pro.ru/article/html-5-canvas-dlya-nachinayushchikh&lt;/a&gt;&lt;br /&gt;9)&amp;nbsp;&lt;a href="http://www.html5canvastutorials.com/"&gt;http://www.html5canvastutorials.com/&lt;/a&gt;&lt;br /&gt;10)&amp;nbsp;&lt;a href="http://www.html5dev.ru/"&gt;http://www.html5dev.ru/&lt;/a&gt;&lt;br /&gt;11)&amp;nbsp;&lt;a href="http://www.johnegraham2.com/category/web-technology/web-playground/"&gt;http://www.johnegraham2.com/category/web-technology/web-playground/&lt;/a&gt;&lt;br /&gt;12)&amp;nbsp;&lt;a href="http://simon.html5.org/dump/html5-canvas-cheat-sheet.html"&gt;http://simon.html5.org/dump/html5-canvas-cheat-sheet.html&lt;/a&gt;&lt;br /&gt;13)&amp;nbsp;&lt;a href="http://www.03www.su/"&gt;http://www.03www.su/&lt;/a&gt;&lt;br /&gt;14)&amp;nbsp;&lt;a href="http://javascript.internet.com/image-effects/"&gt;http://javascript.internet.com/image-effects/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Еще немного поковырялся с canvas и js.&amp;nbsp;Переместил все свои примеры на minidune.ya.ru - blogspot както болезненно относится к тегам body.&amp;nbsp;Разобрался с массивами и осуществление управления объектом при помощи &amp;nbsp;клавиатуры.&amp;nbsp;Вот результат моих трудов в виде очередного примера:&amp;nbsp;&lt;a href="http://minidune.narod.ru/canvas3.html"&gt;http://minidune.narod.ru/canvas3.html&lt;/a&gt;.&amp;nbsp;Можно управлять лиловым квадратиком клавишами вверх, вниз, влево, вправо, и &amp;nbsp;стрелять - используя клавишу пробел.&lt;br /&gt;&lt;br /&gt;Исходник примера под катом...&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, arial, helvetica, sans-serif;"&gt;&lt;table class="pastetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos" style="color: #888888; font-size: medium; padding-bottom: 6px; padding-left: 12px; padding-right: 0px; padding-top: 0px;"&gt;&lt;pre&gt;1&lt;br /&gt;  2&lt;br /&gt;  3&lt;br /&gt;  4&lt;br /&gt;  5&lt;br /&gt;  6&lt;br /&gt;  7&lt;br /&gt;  8&lt;br /&gt;  9&lt;br /&gt;&lt;span class="special"&gt; 10&lt;/span&gt;&lt;br /&gt; 11&lt;br /&gt; 12&lt;br /&gt; 13&lt;br /&gt; 14&lt;br /&gt; 15&lt;br /&gt; 16&lt;br /&gt; 17&lt;br /&gt; 18&lt;br /&gt; 19&lt;br /&gt;&lt;span class="special"&gt; 20&lt;/span&gt;&lt;br /&gt; 21&lt;br /&gt; 22&lt;br /&gt; 23&lt;br /&gt; 24&lt;br /&gt; 25&lt;br /&gt; 26&lt;br /&gt; 27&lt;br /&gt; 28&lt;br /&gt; 29&lt;br /&gt;&lt;span class="special"&gt; 30&lt;/span&gt;&lt;br /&gt; 31&lt;br /&gt; 32&lt;br /&gt; 33&lt;br /&gt; 34&lt;br /&gt; 35&lt;br /&gt; 36&lt;br /&gt; 37&lt;br /&gt; 38&lt;br /&gt; 39&lt;br /&gt;&lt;span class="special"&gt; 40&lt;/span&gt;&lt;br /&gt; 41&lt;br /&gt; 42&lt;br /&gt; 43&lt;br /&gt; 44&lt;br /&gt; 45&lt;br /&gt; 46&lt;br /&gt; 47&lt;br /&gt; 48&lt;br /&gt; 49&lt;br /&gt;&lt;span class="special"&gt; 50&lt;/span&gt;&lt;br /&gt; 51&lt;br /&gt; 52&lt;br /&gt; 53&lt;br /&gt; 54&lt;br /&gt; 55&lt;br /&gt; 56&lt;br /&gt; 57&lt;br /&gt; 58&lt;br /&gt; 59&lt;br /&gt;&lt;span class="special"&gt; 60&lt;/span&gt;&lt;br /&gt; 61&lt;br /&gt; 62&lt;br /&gt; 63&lt;br /&gt; 64&lt;br /&gt; 65&lt;br /&gt; 66&lt;br /&gt; 67&lt;br /&gt; 68&lt;br /&gt; 69&lt;br /&gt;&lt;span class="special"&gt; 70&lt;/span&gt;&lt;br /&gt; 71&lt;br /&gt; 72&lt;br /&gt; 73&lt;br /&gt; 74&lt;br /&gt; 75&lt;br /&gt; 76&lt;br /&gt; 77&lt;br /&gt; 78&lt;br /&gt; 79&lt;br /&gt;&lt;span class="special"&gt; 80&lt;/span&gt;&lt;br /&gt; 81&lt;br /&gt; 82&lt;br /&gt; 83&lt;br /&gt; 84&lt;br /&gt; 85&lt;br /&gt; 86&lt;br /&gt; 87&lt;br /&gt; 88&lt;br /&gt; 89&lt;br /&gt;&lt;span class="special"&gt; 90&lt;/span&gt;&lt;br /&gt; 91&lt;br /&gt; 92&lt;br /&gt; 93&lt;br /&gt; 94&lt;br /&gt; 95&lt;br /&gt; 96&lt;br /&gt; 97&lt;br /&gt; 98&lt;br /&gt; 99&lt;br /&gt;&lt;span class="special"&gt;100&lt;/span&gt;&lt;br /&gt;101&lt;br /&gt;102&lt;br /&gt;103&lt;br /&gt;104&lt;br /&gt;105&lt;br /&gt;106&lt;br /&gt;107&lt;br /&gt;108&lt;br /&gt;109&lt;br /&gt;&lt;span class="special"&gt;110&lt;/span&gt;&lt;br /&gt;111&lt;br /&gt;112&lt;br /&gt;113&lt;br /&gt;114&lt;br /&gt;115&lt;br /&gt;116&lt;br /&gt;117&lt;br /&gt;118&lt;br /&gt;119&lt;br /&gt;&lt;span class="special"&gt;120&lt;/span&gt;&lt;br /&gt;121&lt;br /&gt;122&lt;br /&gt;123&lt;br /&gt;124&lt;br /&gt;125&lt;br /&gt;126&lt;br /&gt;127&lt;br /&gt;128&lt;br /&gt;129&lt;br /&gt;&lt;span class="special"&gt;130&lt;/span&gt;&lt;br /&gt;131&lt;br /&gt;132&lt;br /&gt;133&lt;br /&gt;134&lt;br /&gt;135&lt;br /&gt;136&lt;br /&gt;137&lt;br /&gt;138&lt;br /&gt;139&lt;br /&gt;&lt;span class="special"&gt;140&lt;/span&gt;&lt;br /&gt;141&lt;br /&gt;142&lt;br /&gt;143&lt;br /&gt;144&lt;br /&gt;145&lt;br /&gt;146&lt;br /&gt;147&lt;br /&gt;148&lt;br /&gt;149&lt;br /&gt;&lt;span class="special"&gt;150&lt;/span&gt;&lt;br /&gt;151&lt;br /&gt;152&lt;br /&gt;153&lt;br /&gt;154&lt;br /&gt;155&lt;br /&gt;156&lt;br /&gt;157&lt;br /&gt;158&lt;br /&gt;159&lt;br /&gt;&lt;span class="special"&gt;160&lt;/span&gt;&lt;br /&gt;161&lt;br /&gt;162&lt;br /&gt;163&lt;br /&gt;164&lt;br /&gt;165&lt;br /&gt;166&lt;br /&gt;167&lt;br /&gt;168&lt;br /&gt;169&lt;br /&gt;&lt;span class="special"&gt;170&lt;/span&gt;&lt;br /&gt;171&lt;br /&gt;172&lt;br /&gt;173&lt;br /&gt;174&lt;br /&gt;175&lt;br /&gt;176&lt;br /&gt;177&lt;br /&gt;178&lt;br /&gt;179&lt;br /&gt;&lt;span class="special"&gt;180&lt;/span&gt;&lt;br /&gt;181&lt;br /&gt;182&lt;br /&gt;183&lt;br /&gt;184&lt;br /&gt;185&lt;br /&gt;186&lt;br /&gt;187&lt;br /&gt;188&lt;br /&gt;189&lt;br /&gt;&lt;span class="special"&gt;190&lt;/span&gt;&lt;br /&gt;191&lt;br /&gt;192&lt;br /&gt;193&lt;br /&gt;194&lt;br /&gt;195&lt;br /&gt;196&lt;br /&gt;197&lt;br /&gt;198&lt;br /&gt;199&lt;br /&gt;&lt;span class="special"&gt;200&lt;/span&gt;&lt;br /&gt;201&lt;br /&gt;202&lt;br /&gt;203&lt;br /&gt;204&lt;br /&gt;205&lt;br /&gt;206&lt;br /&gt;207&lt;br /&gt;208&lt;br /&gt;209&lt;br /&gt;&lt;span class="special"&gt;210&lt;/span&gt;&lt;br /&gt;211&lt;br /&gt;212&lt;br /&gt;213&lt;br /&gt;214&lt;br /&gt;215&lt;br /&gt;216&lt;br /&gt;217&lt;br /&gt;218&lt;br /&gt;219&lt;br /&gt;&lt;span class="special"&gt;220&lt;/span&gt;&lt;br /&gt;221&lt;br /&gt;222&lt;br /&gt;223&lt;br /&gt;224&lt;br /&gt;225&lt;br /&gt;226&lt;br /&gt;227&lt;br /&gt;228&lt;br /&gt;229&lt;br /&gt;&lt;span class="special"&gt;230&lt;/span&gt;&lt;br /&gt;231&lt;br /&gt;232&lt;br /&gt;233&lt;br /&gt;234&lt;br /&gt;235&lt;br /&gt;236&lt;br /&gt;237&lt;br /&gt;238&lt;br /&gt;239&lt;br /&gt;&lt;span class="special"&gt;240&lt;/span&gt;&lt;br /&gt;241&lt;br /&gt;242&lt;br /&gt;243&lt;br /&gt;244&lt;br /&gt;245&lt;br /&gt;246&lt;br /&gt;247&lt;br /&gt;248&lt;br /&gt;249&lt;br /&gt;&lt;span class="special"&gt;250&lt;/span&gt;&lt;br /&gt;251&lt;br /&gt;252&lt;br /&gt;253&lt;br /&gt;254&lt;br /&gt;255&lt;br /&gt;256&lt;br /&gt;257&lt;br /&gt;258&lt;br /&gt;259&lt;br /&gt;&lt;span class="special"&gt;260&lt;/span&gt;&lt;br /&gt;261&lt;br /&gt;262&lt;br /&gt;263&lt;br /&gt;264&lt;br /&gt;265&lt;br /&gt;266&lt;br /&gt;267&lt;br /&gt;268&lt;br /&gt;269&lt;br /&gt;&lt;span class="special"&gt;270&lt;/span&gt;&lt;br /&gt;271&lt;br /&gt;272&lt;br /&gt;273&lt;br /&gt;274&lt;br /&gt;275&lt;br /&gt;276&lt;br /&gt;277&lt;br /&gt;278&lt;br /&gt;279&lt;br /&gt;&lt;span class="special"&gt;280&lt;/span&gt;&lt;br /&gt;281&lt;br /&gt;282&lt;br /&gt;283&lt;br /&gt;284&lt;br /&gt;285&lt;br /&gt;286&lt;br /&gt;287&lt;br /&gt;288&lt;br /&gt;289&lt;br /&gt;&lt;span class="special"&gt;290&lt;/span&gt;&lt;br /&gt;291&lt;br /&gt;292&lt;br /&gt;293&lt;br /&gt;294&lt;br /&gt;295&lt;br /&gt;296&lt;br /&gt;297&lt;br /&gt;298&lt;br /&gt;299&lt;br /&gt;&lt;span class="special"&gt;300&lt;/span&gt;&lt;br /&gt;301&lt;br /&gt;302&lt;br /&gt;303&lt;br /&gt;304&lt;br /&gt;305&lt;br /&gt;306&lt;br /&gt;307&lt;br /&gt;308&lt;br /&gt;309&lt;br /&gt;&lt;span class="special"&gt;310&lt;/span&gt;&lt;br /&gt;311&lt;br /&gt;312&lt;br /&gt;313&lt;br /&gt;314&lt;br /&gt;315&lt;br /&gt;316&lt;br /&gt;317&lt;br /&gt;318&lt;br /&gt;319&lt;/pre&gt;&lt;/td&gt;&lt;td class="code" style="color: #888888; padding-bottom: 6px; padding-left: 12px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div class="paste" style="-webkit-box-shadow: rgb(238, 238, 238) 0px 1px 5px; background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 0px; border-color: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 0px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 0px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-left-radius: 4px 4px; border-top-right-radius: 4px 4px; border-top-style: solid; border-top-width: 0px; color: black; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;pre&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;canvasExample&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;body&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;onload=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;"Main()"&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;onkeydown=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;"get_key_down(event);"&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;onkeyup=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;"get_key_up(event);"&lt;/span&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;canvas&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;width=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;'800'&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;height=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;'480'&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;id=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;'herovina'&lt;/span&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;Обновите браузер&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/canvas&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Тут пишем сам текст проги на js&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Служебные переменные&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;herovina&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nb" style="color: #aa22ff;"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;"herovina"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ctx&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;herovina&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1" style="color: #bb4444;"&gt;'2d'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;timer&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;таймер&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;в&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;мс&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;frameRate&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;10&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;длительность&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;цикла&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;в&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;мс&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;аналог&lt;/span&gt; &lt;span class="nx"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;herovina&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;размеры&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;выводимого&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;фрейма&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;herovina&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Cвоя функция random&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;val&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span class="nb" style="color: #aa22ff;"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb" style="color: #aa22ff;"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;val&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Звездное небо. Для массива звезд используется класс&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;star&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;new&lt;/span&gt; &lt;span class="nb" style="color: #aa22ff;"&gt;Array&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;StarClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;speed&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;speed&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;speed&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Инициация звездного неба&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;InitStars&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Исходные значение для членов массива star&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;50&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;s&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;StarClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;                          &lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;                          &lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;                  &lt;br /&gt;    &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;s&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Движение звездного неба&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;RefreshStars&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;speed&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если звезда вылетает за границу экрана&lt;/span&gt;&lt;br /&gt;  &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;speed&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;break&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;     &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод звездного небы&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;DrawStars&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;distance&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;мнимая&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;дистанция&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;до&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;экрана&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//резмеры звезды и ее цвет зависят от ее близости к экрану   &lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;distance&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;speed&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;*&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;80&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;distance&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;distance&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;100&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;не&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;темная&lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgb("&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;distance&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;","&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;distance&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;","&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;distance&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;")"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillRect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;star&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;distance&lt;/span&gt;&lt;span class="sr" style="color: #bb6688;"&gt;/30,distance/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;30&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;  &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Мячики - используется самый обычный массив&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;30&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;15&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;ball_x&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;координаты&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;объекта&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_y&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_radius&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;размеры&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;объекта&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_move_x&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;скорости&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;смещения&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;объекта&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_move_y&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Инициация мячиков&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;InitBalls&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt;    &lt;span class="nx"&gt;ball_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;    &lt;span class="nx"&gt;ball_radius&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;    &lt;span class="nx"&gt;ball_move_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="sr" style="color: #bb6688;"&gt;/2)-random(ball_max/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_move_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="sr" style="color: #bb6688;"&gt;/2)-random(ball_max/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_move_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ball_move_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_move_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ball_move_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;   &lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Движение мячиков&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;RefreshBalls&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt;    &lt;span class="nx"&gt;ball_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;ball_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;ball_move_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ball_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;ball_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;ball_move_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;ball_radius&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;ball_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;br /&gt;       &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ball_move_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=-&lt;/span&gt;&lt;span class="nx"&gt;ball_move_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];}&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;ball_radius&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;ball_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;br /&gt;       &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ball_move_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=-&lt;/span&gt;&lt;span class="nx"&gt;ball_move_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];}&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод мячиков  &lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;DrawBalls&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;ball_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt; &lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//для справок http://oneline.org.ru/statii/canvas.html&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;beginPath&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//начало рисования&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lineWidth&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;7&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;толщина&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;линий&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;strokeStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgba(90,50,205,20)"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;при&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;использовании&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;рисовании&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;без&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;заливки&lt;/span&gt;&lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.fillStyle = "rgb(9,5,205)";//при использовании в рисовании заливки&lt;/span&gt;&lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Рисование дуги&lt;/span&gt;&lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.arc(x,y,radius,startAngle,endAngle, anticlockwise); // Create the arc path.&lt;/span&gt;&lt;br /&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;arc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ball_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;ball_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;ball_radius&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nb" style="color: #aa22ff;"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PI&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;*&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="kc" style="color: #aa22ff; font-weight: bold;"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stroke&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//конец рисования без заливки&lt;/span&gt;&lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//ctx.fill();//конец рисования c заливкой&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;  &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Игрок&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;координаты&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;объекта&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;player_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;размеры&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;объекта&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;player_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;player_move_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;скорости&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;смещения&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;объекта&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;player_move_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Максимальное количество патронов&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;bullet_max&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;30&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Массив патронов игрока    &lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;bullet_x&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;bullet_y&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;bullet_true&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;k_down&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;переменные&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;для&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;управления&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;k_up&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;k_left&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;k_right&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;k_fire&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;get_key_down&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;37&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_left&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;38&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_up&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;39&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_right&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;40&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_down&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_fire&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;get_key_up&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;37&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_left&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;38&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_up&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;39&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_right&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;40&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_down&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;k_fire&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия инициализации&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Init&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;InitStars&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//инициация звезд&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;InitBalls&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//инициация мячиков&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="sr" style="color: #bb6688;"&gt;/2;/&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;координаты&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;старта&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрока&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;player_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;20&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;геометрические&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;размеры&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрока&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;player_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;20&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;player_move_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;скорость&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;передвижения&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрока&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;player_move_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Начальные паракметры для патронов игрока&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt;    &lt;span class="nx"&gt;bullet_true&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;    &lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия обновления&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;RefreshStuff&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;RefreshStars&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;RefreshBalls&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Движение игрока&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k_left&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;player_move_x&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k_right&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;player_move_x&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k_up&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;player_move_y&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k_down&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;player_move_y&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Ограничение на перемещение игрока по экрану &lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;player_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;player_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;player_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;player_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Выстрел&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k_fire&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;     &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt;   &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bullet_true&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если i-го патрон не существует, то&lt;/span&gt;&lt;br /&gt;    &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;bullet_true&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;теперь&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;он&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;существует&lt;/span&gt;&lt;br /&gt;        &lt;span class="nx"&gt;bullet_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;в&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;координатах&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;игрока&lt;/span&gt;&lt;br /&gt;        &lt;span class="nx"&gt;bullet_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;        &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;break&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;вываливаемся&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;из&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;цикла&lt;/span&gt;&lt;br /&gt;       &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;     &lt;span class="p"&gt;}&lt;/span&gt;      &lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//k_fire=0;//если хотим чтобы было 1 нажатие&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Движение патрона &lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bullet_true&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если i-ый патрон существует, то&lt;/span&gt;&lt;br /&gt;  &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;bullet_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;bullet_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;15&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;движение&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;патрона&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;вправо&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;по&lt;/span&gt; &lt;span class="nx"&gt;OX&lt;/span&gt;&lt;br /&gt;      &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Если патрон вылетает за win_DX, то его больше не существует&lt;/span&gt;&lt;br /&gt;      &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bullet_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;bullet_true&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;     &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;      &lt;br /&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия отрисовки&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Draw&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Черный фон на весь фрейм&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgb(0,0,0)"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillRect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Рисуем звезды&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;DrawStars&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод текста  &lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgb(58,95,205)"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;font&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"16px Arial"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textBaseline&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"top"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;timer&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;10&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;10&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;br /&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод игрока&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgb(255,0,255)"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillRect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;player_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;player_dy&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Рисуем патроны &lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;bullet_max&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bullet_true&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если i-ый патрон существует, то&lt;/span&gt;&lt;br /&gt;  &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgb(0,255,255)"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillRect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bullet_x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;bullet_y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;12&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;12&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;     &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;DrawBalls&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//рисуем мячики&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Рамка&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;beginPath&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lineWidth&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"10"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;толщина&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;линий&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;strokeStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgb(0,0,205)"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;цвет&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;рамки&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rect&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//сама рамка&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stroke&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия обновления&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Refresh&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;timer&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;timer&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;frameRate&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;считаем&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;таймер&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Очистка задника&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clearRect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;herovina&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;herovina&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;beginPath&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Обновление всего&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;RefreshStuff&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия отрисовки всего&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;Draw&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="nx"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;"Refresh()"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;frameRate&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Главная функция&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;Init&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;"Refresh()"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//0 - в начале запуска отсутствует пауза&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;   &lt;br /&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-5655357172139885548?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/5655357172139885548/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/01/html5-canvas_23.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/5655357172139885548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/5655357172139885548'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/01/html5-canvas_23.html' title='HTML5. Canvas. ч.2.'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-2149209765650026000</id><published>2011-01-22T13:41:00.005+03:00</published><updated>2011-01-27T19:51:05.634+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><category scheme='http://www.blogger.com/atom/ns#' term='canvas'/><title type='text'>HTML5. Canvas. ч.1.</title><content type='html'>Да, руки у меня доросли и до сабжа - буду ковырять.&lt;br /&gt;Первая поделка:&amp;nbsp;&lt;a href="http://minidune.narod.ru/canvas2.html"&gt;http://minidune.narod.ru/canvas2.html&lt;/a&gt;&lt;br /&gt;Исходный код под катом...&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, arial, helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;table class="pastetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos" style="color: #888888; font-size: medium; padding-bottom: 6px; padding-left: 12px; padding-right: 0px; padding-top: 0px;"&gt;&lt;pre&gt;1&lt;br /&gt; 2&lt;br /&gt; 3&lt;br /&gt; 4&lt;br /&gt; 5&lt;br /&gt; 6&lt;br /&gt; 7&lt;br /&gt; 8&lt;br /&gt; 9&lt;br /&gt;&lt;span class="special"&gt;10&lt;/span&gt;&lt;br /&gt;11&lt;br /&gt;12&lt;br /&gt;13&lt;br /&gt;14&lt;br /&gt;15&lt;br /&gt;16&lt;br /&gt;17&lt;br /&gt;18&lt;br /&gt;19&lt;br /&gt;&lt;span class="special"&gt;20&lt;/span&gt;&lt;br /&gt;21&lt;br /&gt;22&lt;br /&gt;23&lt;br /&gt;24&lt;br /&gt;25&lt;br /&gt;26&lt;br /&gt;27&lt;br /&gt;28&lt;br /&gt;29&lt;br /&gt;&lt;span class="special"&gt;30&lt;/span&gt;&lt;br /&gt;31&lt;br /&gt;32&lt;br /&gt;33&lt;br /&gt;34&lt;br /&gt;35&lt;br /&gt;36&lt;br /&gt;37&lt;br /&gt;38&lt;br /&gt;39&lt;br /&gt;&lt;span class="special"&gt;40&lt;/span&gt;&lt;br /&gt;41&lt;br /&gt;42&lt;br /&gt;43&lt;br /&gt;44&lt;br /&gt;45&lt;br /&gt;46&lt;br /&gt;47&lt;br /&gt;48&lt;br /&gt;49&lt;br /&gt;&lt;span class="special"&gt;50&lt;/span&gt;&lt;br /&gt;51&lt;br /&gt;52&lt;br /&gt;53&lt;br /&gt;54&lt;br /&gt;55&lt;br /&gt;56&lt;br /&gt;57&lt;br /&gt;58&lt;br /&gt;59&lt;br /&gt;&lt;span class="special"&gt;60&lt;/span&gt;&lt;br /&gt;61&lt;br /&gt;62&lt;br /&gt;63&lt;br /&gt;64&lt;br /&gt;65&lt;br /&gt;66&lt;br /&gt;67&lt;br /&gt;68&lt;br /&gt;69&lt;br /&gt;&lt;span class="special"&gt;70&lt;/span&gt;&lt;br /&gt;71&lt;br /&gt;72&lt;br /&gt;73&lt;br /&gt;74&lt;br /&gt;75&lt;br /&gt;76&lt;br /&gt;77&lt;br /&gt;78&lt;br /&gt;79&lt;br /&gt;&lt;span class="special"&gt;80&lt;/span&gt;&lt;br /&gt;81&lt;br /&gt;82&lt;br /&gt;83&lt;br /&gt;84&lt;br /&gt;85&lt;br /&gt;86&lt;br /&gt;87&lt;br /&gt;88&lt;br /&gt;89&lt;br /&gt;&lt;span class="special"&gt;90&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class="code" style="color: #888888; padding-bottom: 6px; padding-left: 12px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div class="paste" style="-webkit-box-shadow: rgb(238, 238, 238) 0px 1px 5px; background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 0px; border-color: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 0px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 0px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-left-radius: 4px 4px; border-top-right-radius: 4px 4px; border-top-style: solid; border-top-width: 0px; color: black; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;pre&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;canvasExample&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;body&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;onload=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;"Main()"&lt;/span&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;canvas&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;height=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;'640'&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;width=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;'480'&lt;/span&gt; &lt;span class="na" style="color: #bb4444;"&gt;id=&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;'herovina'&lt;/span&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;Обновите браузер&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/canvas&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Тут пишем сам текст проги на js&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Служебные переменные&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;herovina&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nb" style="color: #aa22ff;"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;"herovina"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;ctx&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;herovina&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1" style="color: #bb4444;"&gt;'2d'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;timer&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;таймер&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;в&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;мс&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;frameRate&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;10&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;длительность&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;цикла&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;в&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;мс&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;аналог&lt;/span&gt; &lt;span class="nx"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;herovina&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;herovina&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Переменные   &lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;player_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;br /&gt;    &lt;span class="nx"&gt;player_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия инициализации&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Init&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;player_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;player_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;    &lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия обновления&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;RefreshStuff&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;player_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;player_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DX&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;player_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=-&lt;/span&gt;&lt;span class="nx"&gt;player_dx&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="nx"&gt;win_DY&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;player_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=-&lt;/span&gt;&lt;span class="nx"&gt;player_dy&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия отрисовки&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Draw&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод текста  &lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgb(58,95,205)"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;font&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"10px Arial"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textBaseline&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"top"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;timer&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;br /&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Вывод объекта&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillStyle&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="s2" style="color: #bb4444;"&gt;"rgb(0,0,205)"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fillRect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;player_x&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;player_y&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;50&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;50&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия обновления&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Refresh&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;timer&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;+=&lt;/span&gt;&lt;span class="nx"&gt;frameRate&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;;//&lt;/span&gt;&lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;считаем&lt;/span&gt; &lt;span class="err" style="border-bottom-color: rgb(255, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 0, 0); border-top-style: solid; border-top-width: 1px;"&gt;таймер&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Очистка задника&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clearRect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;herovina&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;herovina&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;beginPath&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Обновление всего&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;RefreshStuff&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Стадия отрисовки всего&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;Draw&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="nx"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;"Refresh()"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;frameRate&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Главная функция&lt;/span&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="nx"&gt;Init&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="nx"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2" style="color: #bb4444;"&gt;"Refresh()"&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//0 - в начале запуска отсутствует пауза&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;   &lt;br /&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="nt" style="color: green; font-weight: bold;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-2149209765650026000?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/2149209765650026000/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/01/html5-canvas.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/2149209765650026000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/2149209765650026000'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/01/html5-canvas.html' title='HTML5. Canvas. ч.1.'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-6112121688704844765</id><published>2011-01-21T13:35:00.000+03:00</published><updated>2011-01-23T19:20:03.393+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='arcade'/><category scheme='http://www.blogger.com/atom/ns#' term='tyrian'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='SDL'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='ssge'/><title type='text'>SSGE</title><content type='html'>Всех с прошедшими:)&amp;nbsp;Наконец-то, я забил на гугл коде &amp;nbsp;место для своей "леталки":&amp;nbsp;&lt;a href="http://code.google.com/p/ssge/"&gt;http://code.google.com/p/ssge/&lt;/a&gt;.&amp;nbsp;SSGE - этот scroll shooter game engine :) Чтобы это могло называться движком - еще нужно копать и копать. Но, тем не менее - уже много всего сделано...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-6112121688704844765?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/6112121688704844765/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/01/ssge.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/6112121688704844765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/6112121688704844765'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2011/01/ssge.html' title='SSGE'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-5034663376626223394</id><published>2010-12-01T23:34:00.003+03:00</published><updated>2010-12-01T23:55:05.003+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='x86'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='eeepc'/><title type='text'>Android x86</title><content type='html'>Наткнулся недавно на проект Android-x86 (&lt;a href="http://www.android-x86.org/"&gt;http://www.android-x86.org/&lt;/a&gt;). Это порт андроида на процессор x86 (ваш К.О.). Стабильным портом сейчас является андроид версии 1.6. Iso образ которого можно скачать с сайта проекта, а для ленивых - отсюда:&amp;nbsp;&lt;a href="http://android-x86.googlecode.com/files/android-x86-1.6-r2.iso"&gt;http://android-x86.googlecode.com/files/android-x86-1.6-r2.iso&lt;/a&gt;. Хотелось бы отметить основными фишки этого порта:&lt;br /&gt;- образ занимает всего 52 мегабайта и работает в режиме лайв сиди, причем для создания загрузочной флешки совсем не обязательно использовать *.img образ (тоже валяется на сайте), а программульку &lt;a href="http://unetbootin.sourceforge.net/"&gt;unetbootin&lt;/a&gt; - загрузочное меню после заливки исошника програмка не изменит.&lt;br /&gt;- андроид можно установить на жесткий диск - для этого в загрузочном меню есть соответствующий пункт, установка занимает каких-то 5 минут.&lt;br /&gt;- система загружается мгновенно, в ней уже присутствуют программы для просмтора видео или прослушивания mp3.&lt;br /&gt;- есть терминал (aterm в Dev Tools) и в нем можно сделать рута, набрав su :)&lt;br /&gt;&lt;br /&gt;Из минусов - стоит отметить, следущее:&lt;br /&gt;- проект еще сырой, поддержка железа никакая, но на сайте есть таблица совместимости с теми или иными ноутбуками/железяками:&amp;nbsp;&lt;a href="http://www.android-x86.org/hardware-list"&gt;http://www.android-x86.org/hardware-list&lt;/a&gt;. Например у меня на нетбуке Asus EEEPC 701 4g заработало все - и экран 800 на 480 (а больше и не вышло), и Wifi, и звук, камера, USB, сетевуха и т.д. А вот на Acer AO532h-28b: заработала камера, экран был все те же 840 на 480, звук не работал, Wifi работал, но панель индикаторов не работала. Видеоплата в обоих устройствах, имхо, тоже не определилась - наблюдались жуткие тормоза при открытии/закрытии и анимации окон.&lt;br /&gt;- дальше своей файловой системы андроид дисков не видит - ну это и понятно, система не для десктопов. В качестве внешней карточки памяти, выступает любая подключенная к компу флешка.&lt;br /&gt;- в качестве загрузчика андроида используется grub 0.98. При установки андроида, загрузчик лучше не устанавливать - в процессе установки будет задан соответствующий вопрос. Я пробовал ставить этот груб, но он не увидел моих уже установленных ранее систем. А чинить груб из нового андроида я незнаю как. Наверно никак. Вообщем я оставил, уже ранее установленный груб 2.0, и создал в меню загрузчика отдельный пункт для загрузки андроида, на это меня натолкнуло&amp;nbsp;&lt;a href="http://www.franklinstrube.com/blog/dual-booting-ubuntu-netbook-remix-and-android-x86-on-an-asus-eee-pc"&gt;http://www.franklinstrube.com/blog/dual-booting-ubuntu-netbook-remix-and-android-x86-on-an-asus-eee-pc&lt;/a&gt;,&amp;nbsp;а для ликбеза я полез сюда&amp;nbsp;&lt;a href="https://help.ubuntu.com/community/Grub2"&gt;https://help.ubuntu.com/community/Grub2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-5034663376626223394?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/5034663376626223394/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2010/12/android-x86.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/5034663376626223394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/5034663376626223394'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2010/12/android-x86.html' title='Android x86'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-8561609345752620397</id><published>2010-11-30T23:50:00.001+03:00</published><updated>2010-12-01T23:55:32.995+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='новости'/><category scheme='http://www.blogger.com/atom/ns#' term='обновления'/><category scheme='http://www.blogger.com/atom/ns#' term='концерт'/><title type='text'>Обновления в блоге и концерт</title><content type='html'>Начинаю по чуть-чуть наполнять блог. Появился раздел "Мои проекты" и "Девайсы". Первый посвящен &amp;nbsp;моим "извращениям" с кодом, а последний - гаджетам с которыми имел счастье столкнуться...&lt;br /&gt;&lt;br /&gt;Да, и, еще - 20-го декабря еду в Питер на концерт Video Games Live. Поеду точно - билеты уже купил, присоединяйтесь!&lt;br /&gt;&lt;a href="http://www.newarena.spb.ru/afisha/#event/3985"&gt;http://www.newarena.spb.ru/afisha/#event/3985&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.videogameslive.com/index.php?s=home"&gt;http://www.videogameslive.com/index.php?s=home&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2215693175176631241-8561609345752620397?l=linuxgamesdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxgamesdev.blogspot.com/feeds/8561609345752620397/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://linuxgamesdev.blogspot.com/2010/11/blog-post_30.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/8561609345752620397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2215693175176631241/posts/default/8561609345752620397'/><link rel='alternate' type='text/html' href='http://linuxgamesdev.blogspot.com/2010/11/blog-post_30.html' title='Обновления в блоге и концерт'/><author><name>Shikari</name><uri>http://www.blogger.com/profile/12417178449260996956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_pAoNwWPBdLU/S6kpBgQmvpI/AAAAAAAAAEM/qcasOn9AE5A/S220/index.php.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2215693175176631241.post-406761619997293539</id><published>2010-11-21T13:00:00.006+03:00</published><updated>2011-01-23T13:56:51.111+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игра'/><category scheme='http://www.blogger.com/atom/ns#' term='пример'/><category scheme='http://www.blogger.com/atom/ns#' term='SDL'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='статья'/><title type='text'>Немного о связке SDL + OpenGL</title><content type='html'>Сегодня, Я попытаюсь рассказать о том, как можно написать свою игру при ппомощи связки SDL + OpenGl. Для начала, заглянем в вики &lt;a href="http://ru.wikipedia.org/wiki/Simple_DirectMedia_Layer"&gt;http://ru.wikipedia.org/wiki/Simple_DirectMedia_Layer&lt;/a&gt; и &lt;a href="http://ru.wikipedia.org/wiki/OpenGL"&gt;http://ru.wikipedia.org/wiki/OpenGL&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) SDL (Simple DirectMedia Layer)-это свободная кроссплатформенная мультимедийная библиотека, реализующая единый программный интерфейс к графической подсистеме, звуковым устройствам и средствам ввода. Официально поддерживаются операционные системы: Linux, Windows, Windows CE, BeOS, Mac OS,*BSD, и т.д. Также, есть неофициальные поддержки AmigaOS, Dreamcast,Symbian OS и др. SDL API доступны для языков: C, C++,Vala, Erlang, Java, Lisp, Lua, Pascal, Python, Ruby и др. SDL создал Сэм Лантинга, будучи ведущим программистом компании Loki Entertainment Software. Работая над программой-эмулятором Macintosh для Microsoft Windows, он заметил, что многие куски кода без проблем могут работать на Linux. И он решил создать небольшую библиотеку, чтобы ей могли воспользоваться другие программисты - SDL распространяется под условиями лицензии GNU LGPL. В октябре 1997 был выпущен первый релиз версии 0.3, Позже, Loki Software вовсю использует эту библиотеку для портирования игр под Linux.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SDL можно рассматривать как тонкую прослойку, обеспечивающую поддержку для 2D-операций над пикселами, звука, доступа к файлам, обработки событий и т. п. Часто используется в дополнение к OpenGL.&lt;br /&gt;&lt;br /&gt;SDL сам по себе довольно прост. Библиотека состоит из нескольких подсистем, таких как Video, Audio, CD-ROM, Joystick и Timer. В дополнение к этой базовой низкоуровневой функциональности, существует ряд стандартных библиотек, предоставляющих дополнительную функциональность:&lt;br /&gt;&lt;br /&gt;SDL_image — поддержка различных растровых форматов&lt;br /&gt;&lt;br /&gt;SDL_mixer — функции для организации сложного аудио, в основном, сведение звука из нескольких источников&lt;br /&gt;&lt;br /&gt;SDL_net — поддержка сетевых функций&lt;br /&gt;&lt;br /&gt;SDL_ttf — поддержка шрифтов TrueType&lt;br /&gt;&lt;br /&gt;SDL_rtf — отрисовка текста в формате RTF&lt;br /&gt;&lt;br /&gt;Оффициальный сайт библиотеки &lt;a href="http://www.libsdl.org/"&gt;http://www.libsdl.org&lt;/a&gt;. Помимо самой библиотеки на сайте есть куча примеров и демонстрашек по использованию SDL.&lt;br /&gt;&lt;br /&gt;2) OpenGL (Open Graphics Library — открытая графическая библиотека) — спецификация, определяющая независимый от языка программирования кросс-платформенный&amp;nbsp;программный интерфейс для написания приложений, использующих двумерную и трёхмерную компьютерную графику. Включает более 250-ти функций для рисования&amp;nbsp;сложных трёхмерных сцен из простых примитивов. Используется при создании компьютерных игр, САПР, виртуальной реальности, визуализации в научных&amp;nbsp;исследованиях. На платформе Windows конкурирует с Direct3D.&lt;br /&gt;&lt;br /&gt;Для создания простеньких 2д-игр можно использовать "сам по себе" - он быстр, не требует наличие видеодрайвера к видеокарте. Но количество возможностей работы с графикой сильно ограничены.В частности Мне не хватало возможности растянуть/сузить, увеличить/уменьшить, повернуть изображение. Этого можно было добится, подлючив дополнительные библиотеки, но тогда придется программе потребуются огромные вычислительные мощности на софтварный просчет, а следовательно - неизбежны тормоза. Потом, используя в качестве вывода графики не SDL а OpenGl, появляется возможность добавить к 2-ух мерной графике сложную 3-х мерную.&lt;br /&gt;&lt;br /&gt;О использовании библиотеки SDL с OpenGL прекрасно расжевано во 2-ом номере электронного журнала LinGameTech (&lt;a href="http://lingametech.com/"&gt;http://lingametech.com&lt;/a&gt;). В частности - вот в этом номере (2-ой) :&amp;nbsp;&lt;a href="http://lingametech.com/index.php?option=com_weblinks&amp;amp;task=view&amp;amp;catid=15&amp;amp;id=12"&gt;http://lingametech.com/index.php?option=com_weblinks&amp;amp;task=view&amp;amp;catid=15&amp;amp;id=12&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Также, по работе именно c библиотекой SDL были можно почитать в статьях журнала LinuxFormat, в номерах N98 (&lt;a href="http://wiki.linuxformat.ru/index.php/LXF98:%D0%A1%D1%82%D1%80%D0%B5%D0%BB%D1%8F%D0%BB%D0%BA%D0%B0"&gt;http://wiki.linuxformat.ru/index.php/LXF98:%D0%A1%D1%82%D1%80%D0%B5%D0%BB%D1%8F%D0%BB%D0%BA%D0%B0&lt;/a&gt;) и N103 (&lt;a href="http://wiki.linuxformat.ru/index.php/LXF103:%D0%A1%D1%82%D1%80%D0%B5%D0%BB%D1%8F%D0%BB%D0%BA%D0%B0"&gt;http://wiki.linuxformat.ru/index.php/LXF103:%D0%A1%D1%82%D1%80%D0%B5%D0%BB%D1%8F%D0%BB%D0%BA%D0%B0&lt;/a&gt;). Много информации о разработке игр в linux с ипользованием SDL можно найти на сайте &lt;a href="http://plg.lrn.ru/"&gt;http://plg.lrn.ru/&lt;/a&gt;, например - вики о SDL на русском языке: &lt;a href="http://plg.lrn.ru/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0"&gt;http://plg.lrn.ru/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Я "учился" на статьях журанала &lt;a href="http://www.linuxformat.ru/"&gt;LinuxFormat&lt;/a&gt; и на исходниках игрушки SDL-Ball (&lt;a href="http://sdl-ball.sourceforge.net/"&gt;http://sdl-ball.sourceforge.net/&lt;/a&gt;) и какой-то там матери =)&lt;br /&gt;&lt;br /&gt;Много от туда было позаимствовано:). И теперь, для того чтобы показать, как работать с этой связкой SDL+OpenGL в своих игровых проектах - я написал пример простенькой игры - понг:&lt;br /&gt;&lt;a href="http://narod.ru/disk/179861001/pong2.tar.gz.html"&gt;http://narod.ru/disk/179861001/pong2.tar.gz.html&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Есть 2 ракетки - игрока и оппонента, также, есть мячик. Цель игры - набрать больше количество очков чем у оппонента, забивая голы и не давать забивать голы ему самому.&lt;br /&gt;&lt;br /&gt;В статье я буду рассматривать в качестве операционной системы дистрибутив GNI/linux Ubuntu 10.04. Для компиляции и запуска примера необходимо установить следующие пакеты (должны быть в репозитории вашего дистрибутива):&lt;br /&gt;&lt;br /&gt;libsdl-ttf2.0-0&lt;br /&gt;libsdl-ttf2.0-dev&lt;br /&gt;libsdl-mixer1.2&lt;br /&gt;libsdl-mixer1.2-dev&lt;br /&gt;libsdl-image1.2&lt;br /&gt;libsdl-image1.2-dev&lt;br /&gt;&lt;br /&gt;Возможно, имена пакетов от дистрибутива к дистрибутиву могут слегка изменятся.&lt;br /&gt;&lt;br /&gt;Для компиляции в makefile манифесте добавляем библиотеки lGL, lGLU, lSDL_ttf, lSDL_image. он будет иметь следующий вид:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;all:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;gcc -o pong pong_adv.cpp `sdl-config --libs --cflags` -I/usr/include/GL -lGL -lGLU -lSDL_ttf -lSDL_image&lt;/pre&gt;Дальше, разберем исходный код моего примера pong_adv.cpp:&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #008800; font-family: monospace; font-style: italic; white-space: pre;"&gt;//Одна из основных библиотек С&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="cp" style="color: #008800;"&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//В исходный текст программы (pong_adv.cpp), соответственно, подключаем библиотеки: &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//библиотеки для работы с OpenGL&lt;/span&gt;&lt;br /&gt;&lt;span class="cp" style="color: #008800;"&gt;#include &amp;lt;GL/gl.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="cp" style="color: #008800;"&gt;#include &amp;lt;GL/glu.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//библиотеки SDL&lt;/span&gt;&lt;br /&gt;&lt;span class="cp" style="color: #008800;"&gt;#include &amp;lt;SDL/SDL.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="cp" style="color: #008800;"&gt;#include &amp;lt;SDL/SDL_ttf.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="cp" style="color: #008800;"&gt;#include &amp;lt;SDL/SDL_image.h&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Введем следущие переменные для работы с SDL&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;SDL_Surface&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;*&lt;/span&gt;&lt;span class="n"&gt;screen&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Экран - поверхность, некая 2d плоскость на которой будет происходить игровой действие&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//для управления клавиатурой вводим&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;SDL_Event&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//для обработки событий, например на клавиатуре нажата клавиша&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;Uint8&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;*&lt;/span&gt; &lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//для определения того какая конкретно клавиша нажата    &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;using&lt;/span&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;namespace&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//подключаем пространство имён стандартной библиотеки&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;void&lt;/span&gt; &lt;span class="n"&gt;randomize&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;srand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb" style="color: #aa22ff;"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//randomize;-включить счетчик случайных чисел &amp;lt;iostream.h&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;int&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span class="n"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;%&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;+&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="n"&gt;IntToStr&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//перевод числа в строку-поправить&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;char&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;16&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;snprintf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s" style="color: #bb4444;"&gt;"%i"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//1) Функция для инициализации OpenGL средствами SDL.&lt;/span&gt;&lt;br /&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;init_sdl_opengl&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;int&lt;/span&gt; &lt;span class="n"&gt;win_DX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//размеры экрана&lt;/span&gt;&lt;br /&gt;                      &lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;int&lt;/span&gt; &lt;span class="n"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;br /&gt;                      &lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;int&lt;/span&gt; &lt;span class="n"&gt;pal&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//палитра 16 или 32 разрадная  &lt;/span&gt;&lt;br /&gt;                      &lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;int&lt;/span&gt; &lt;span class="n"&gt;full_screen&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//на полный =1 экран или в окне =0&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Проверка на возможность инициализация видео при помощи SDL&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Если чтото не получилось (например не поддерживается заданный видео режим),&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//то выводим причину сбоя и заканчиваем работу программы&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SDL_Init&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SDL_INIT_VIDEO&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;!=&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;"Unable to initialize SDL: %s&lt;/span&gt;&lt;span class="se" style="color: #bb6622; font-weight: bold;"&gt;\n&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;SDL_GetError&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span class="Apple-style-span" style="color: magenta;"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;//функция свою задачу не выполнила (ложь)&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Иначе&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SDL_Init&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SDL_INIT_VIDEO&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;   &lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Включаем двойной буфер с OpenGL&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;SDL_GL_SetAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SDL_GL_DOUBLEBUFFER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;    &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//И инициализируем флаг SDL_OPENGL (который говорит о том что SDL использует OpenGL).&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;full_screen&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если оконный режим&lt;/span&gt;&lt;br /&gt;       &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;screen&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="n"&gt;SDL_SetVideoMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;win_DX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;pal&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;SDL_OPENGL&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;|&lt;/span&gt;&lt;span class="n"&gt;SDL_RESIZABLE&lt;/span&gt;&lt;span class="p"&gt;);}&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//выводим окно OpenGl на "полный экран"&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;full_screen&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если полноэкранный режим&lt;/span&gt;&lt;br /&gt;       &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;screen&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt;&lt;span class="n"&gt;SDL_SetVideoMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;win_DX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;pal&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;SDL_OPENGL&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;|&lt;/span&gt;&lt;span class="n"&gt;SDL_FULLSCREEN&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;|&lt;/span&gt;&lt;span class="n"&gt;SDL_RESIZABLE&lt;/span&gt;&lt;span class="p"&gt;);}&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//экран OpenGl в окне   &lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;//функция свою задачу выполнила (истина)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Если не был установлен заданный видеорежим win_DX, win_DY, то выводим причину&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;!&lt;/span&gt;&lt;span class="n"&gt;screen&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;"Unable to set video mode: %s&lt;/span&gt;&lt;span class="se" style="color: #bb6622; font-weight: bold;"&gt;\n&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;SDL_GetError&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;//функция свою задачу не выполнила (ложь)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;   &lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//2) Следующая процедура не обязательна, но полезна: она необходима&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//для перерисовки окна при изменении его габаритов win_DX и win_DY &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//(например в опциях игры). Для перерисовки экрана в новый размер &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//воспользуемся функцией glViewport &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//(&lt;a href="http://opengl.gamedev.ru/doc/?func=glViewport"&gt;http://opengl.gamedev.ru/doc/?func=glViewport&lt;/a&gt;),&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//glViewport - задает область просмотра.&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//При запуске программы в "оконном режиме", размеры такого окна можно &lt;br /&gt;//можно изменить при помощи мышки.&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//но выводимая область при этом останется без изменения. &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Эта процедура позимствована из исходников игры sdl-ball.&lt;/span&gt;&lt;br /&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;void&lt;/span&gt; &lt;span class="n"&gt;resize_window&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;int&lt;/span&gt; &lt;span class="n"&gt;win_DX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;br /&gt;                    &lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;int&lt;/span&gt; &lt;span class="n"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;GLfloat&lt;/span&gt; &lt;span class="n"&gt;ratio&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//соотношение win_DY/win_DY&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;win_DY&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Защита от деления на ноль при win_DY=0&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;win_DY&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//В таком случае соотношение будет равно&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;ratio&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GLfloat&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;win_DX&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GLfloat&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Устанавливаем наш новый вьюпорт&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glViewport&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,(&lt;/span&gt;&lt;span class="n"&gt;GLsizei&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;win_DX&lt;/span&gt;&lt;span class="p"&gt;,(&lt;/span&gt;&lt;span class="n"&gt;GLsizei&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//изменяем проекционные матрицы и устнавливаем видимый объем&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glMatrixMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_PROJECTION&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glLoadIdentity&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;gluPerspective&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf" style="color: #666666;"&gt;45.0f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ratio&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf" style="color: #666666;"&gt;0.1f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf" style="color: #666666;"&gt;10.0f&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//установка перспективы&lt;/span&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Убеждаемся в том, что мы меняем вид модели, а не проекции (Make sure we're chaning the model view and not the projection)&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glMatrixMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_MODELVIEW&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glLoadIdentity&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//перезагрузка вида&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//3) Следущая функция нужна для нициализации 2д в OpenGl.&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Для этого будет использована функция glOrtho &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//(&lt;a href="http://www.gamedev.ru/articles/?id=20114"&gt;http://www.gamedev.ru/articles/?id=20114&lt;/a&gt;): &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//glOrtho()-устанавливает режим ортогонального (прямоугольного) проецирования. &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Это значит, что изображение будет рисоваться как в изометрии. 6 параметров &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//типа GLdouble (или просто double): left, right, bottom, top, near, far&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//определяют координаты соответственно левой, правой, нижней, верхней, ближней&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//и дальней плоскостей отсечения, т.е. всё, что окажется за этими пределами, &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//рисоваться не будет. На самом деле эта процедура просто устанавливает &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//масштабы координатных осей.&lt;/span&gt;&lt;br /&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;void&lt;/span&gt; &lt;span class="n"&gt;gl2dMode&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;int&lt;/span&gt; &lt;span class="n"&gt;win_DX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;br /&gt;               &lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;int&lt;/span&gt; &lt;span class="n"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glMatrixMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_PROJECTION&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glLoadIdentity&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glOrtho&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;win_DX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;win_DY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glMatrixMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_MODELVIEW&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glLoadIdentity&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//4) Функция для загрузки текстуры из графического (jpg,png,bmp) &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//файла в переменную типа GLuint. Загрузка текстуры происходит с&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//линейной фильтрацией GL_LINEAR (пиксели текстуры "размываются").&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Эту функцию лучше применять в тех случаях, когда текстура исользуется&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//в качестве "тайлов" (элементов декораций уровня) или спрайтов с &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//незначительным содержанием "дырок в альфа канале". При использовании &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//линейной фильтрации Возможно появление артефактов на свободных участках&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//и по краям текстуры. Эту функцию желательно использовать при инициализации.&lt;/span&gt;&lt;br /&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;load_LINEAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GLuint&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;tex&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;SDL_Surface&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;*&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nb" style="color: #aa22ff;"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//временная SDL текстура&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;GLint&lt;/span&gt; &lt;span class="n"&gt;maxTexSize&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;GLuint&lt;/span&gt; &lt;span class="n"&gt;glFormat&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="n"&gt;GL_RGBA&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//по умолчанию, подразумеваем использование альфа канала в текстуре&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;  //если файл изображения имеет расширению jpg, &lt;/span&gt;&lt;span class="Apple-style-span" style="color: #008800; font-style: italic;"&gt;то &lt;/span&gt;&lt;span class="Apple-style-span" style="color: #008800; font-style: italic;"&gt;альфа канал не используется&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;substr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;compare&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;"jpg"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;glFormat&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="n"&gt;GL_RGB&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//загружаем изображение во временную SDL текстуру temp&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;temp&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="n"&gt;IMG_Load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//проверка 1 &lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="nb" style="color: #aa22ff;"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если изображение не удалось загрузить, то выводим причину&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s" style="color: #bb4444;"&gt;"Apshipka managera textur: "&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s" style="color: #bb4444;"&gt;" : "&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;SDL_GetError&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;endl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;SDL_FreeSurface&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//освобождаем память от временной SDL текстуры&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;//функция свою задачу не выполнила (ложь)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//проверка 2 - на превышение максимально допустимого размера текстуры SDL для использования ее в OpenGL&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glGetIntegerv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_MAX_TEXTURE_SIZE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;maxTexSize&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;maxTexSize&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если есть превышение, то функция не срабатывает и пишем сообщение об ошибке&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s" style="color: #bb4444;"&gt;"Apshipka managera textur: "&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s" style="color: #bb4444;"&gt;" texturka velika i shiroka."&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;endl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;SDL_FreeSurface&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//освобождаем память от временной SDL текстуры&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;//функция свою задачу выполнила (ложь)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Если все проверки пройдены без проблем, то генерим текстуру с изображением из SDL текстуры temp&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glGenTextures&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;tex&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//создаем 1 OpenGL текстуру с именем tex&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glBindTexture&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_TEXTURE_2D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tex&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//передаем изображение из SDL текстуре temp текстуре tex&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glTexParameteri&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_TEXTURE_2D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_TEXTURE_MAG_FILTER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_LINEAR&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//GL_LINEAR задает линейную фильтрацию&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glTexParameteri&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_TEXTURE_2D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_TEXTURE_MIN_FILTER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_LINEAR&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glTexParameteri&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_TEXTURE_2D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_TEXTURE_WRAP_S&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_CLAMP&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glTexParameteri&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_TEXTURE_2D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_TEXTURE_WRAP_T&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_CLAMP&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glTexImage2D&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_TEXTURE_2D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;glFormat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;glFormat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_UNSIGNED_BYTE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;pixels&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="n"&gt;SDL_FreeSurface&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//освобождаем память от временной SDL текстуры&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;//функция свою задачу выполнила (истина)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//5) Следущая функция полностью аналогична предыдущей, за иключением того, &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//что изображение передается в текстуру без линейной фильтрации. &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Как следствие, - в текстуре артефакты отсутствуют, &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//зато присутствует пикселизация при малой детализации исходного&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//изображения. В "своих" 2д играх Я исользую эту функцию и &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//для спрайтов, и для тайлов.&lt;/span&gt;&lt;br /&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;load_NEAREST&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GLuint&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;tex&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;SDL_Surface&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;*&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="nb" style="color: #aa22ff;"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//временная SDL текстура&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;GLint&lt;/span&gt; &lt;span class="n"&gt;maxTexSize&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;GLuint&lt;/span&gt; &lt;span class="n"&gt;glFormat&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="n"&gt;GL_RGBA&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//по умолчанию, подразумеваем использование альфа канала в текстуре&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;substr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;3&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;compare&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s" style="color: #bb4444;"&gt;"jpg"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если изображение содержит расширению jpg - альфы нет&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;glFormat&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="n"&gt;GL_RGB&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//загружаем изображение во временную SDL текстуру temp&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;temp&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;=&lt;/span&gt; &lt;span class="n"&gt;IMG_Load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//проверка 1 &lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt; &lt;span class="nb" style="color: #aa22ff;"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если изображение не удалось загрузить, то выводим причину&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s" style="color: #bb4444;"&gt;"Apshipka managera textur: "&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s" style="color: #bb4444;"&gt;" : "&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;SDL_GetError&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;endl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;SDL_FreeSurface&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//освобождаем память от временной SDL текстуры&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt; &lt;/span&gt;&lt;span class="mi"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;//&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;функция свою задачу не выполнила (ложь)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//проверка 2 - напрвышает максимально допустимого размера SDL текстуры для использования ее в OpenGL&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glGetIntegerv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_MAX_TEXTURE_SIZE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;maxTexSize&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;maxTexSize&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//если есть превышение, то функция не срабатывает и пишем сообщение об ошибке&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s" style="color: #bb4444;"&gt;"Apshipka managera textur: "&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s" style="color: #bb4444;"&gt;" texturka velika i shiroka."&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;endl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;SDL_FreeSurface&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//освобождаем память от временной SDL текстуры&lt;/span&gt;&lt;br /&gt;    &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;//функция свою задачу не выполнила (ложь)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Если все проверки пройдены без проблем, то генерим текстуру с изображением из SDL текстуры temp&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glGenTextures&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o" style="color: #666666;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;tex&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//создаем 1 OpenGL текстуру с именем tex&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glBindTexture&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_TEXTURE_2D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tex&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//передаем изображение из SDL текстуре temp текстуре tex&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glTexParameteri&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_TEXTURE_2D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_TEXTURE_MAG_FILTER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_NEAREST&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//GL_NEAREST - текстура загружается как есть&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glTexParameteri&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_TEXTURE_2D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_TEXTURE_MIN_FILTER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_NEAREST&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//без фильтрации. Осторожно - пиксели! :)&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glTexParameteri&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_TEXTURE_2D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_TEXTURE_WRAP_S&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_CLAMP&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glTexParameteri&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_TEXTURE_2D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_TEXTURE_WRAP_T&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_CLAMP&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glTexImage2D&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_TEXTURE_2D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;glFormat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;glFormat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GL_UNSIGNED_BYTE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;pixels&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="n"&gt;SDL_FreeSurface&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//освобождаем память от временной SDL текстуры&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt; &lt;/span&gt;&lt;span class="mi"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;//функция свою задачу выполнила (истина)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Говорят, для текстур желательно использовать файлы с изображением размерами по &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//высоте и ширине равные 2 в степени n. Это связано с особенностями работы видеопамяти. &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//На видеокартах nvidia я глюков особо не замечал, но на видеокартах от Intel (встроенные)  &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//"неправильные" изображения в текстуру просто не загружаются. Вместо спрайта&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//рисуется только залитый цветом полигон.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//6) Процедура для отрисовки затекстурированного полигона в координатах x,y; &lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//размером dX, dY; повернутом на delta градусов. относительно верхней левой точки,&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//либо - относительно центра. Эту процедуру удобно использовать для рисования фонов&lt;/span&gt;&lt;br /&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//или спрайтов/тайлов, текстура которых использует все исходное изображение целиком.&lt;/span&gt;&lt;br /&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;void&lt;/span&gt; &lt;span class="n"&gt;DrawTXT&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;float&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;br /&gt;              &lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;float&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;br /&gt;              &lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;float&lt;/span&gt; &lt;span class="n"&gt;dX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;br /&gt;              &lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;float&lt;/span&gt; &lt;span class="n"&gt;dY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;br /&gt;              &lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;float&lt;/span&gt; &lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;br /&gt;              &lt;span class="kt" style="color: #aa22ff; font-weight: bold;"&gt;int&lt;/span&gt; &lt;span class="n"&gt;center&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glEnable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_TEXTURE_2D&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;br /&gt;  &lt;span class="n"&gt;glLoadIdentity&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glTranslatef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//задаем местоположение&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glRotatef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//поворачиваемся на delta градусов&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Если поворот объекта происходит относительно его центра, то смещаем ось координат на 0.5dX и 0.5dY&lt;/span&gt;&lt;br /&gt;  &lt;span class="k" style="color: #aa22ff; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;center&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;==&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;glTranslatef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="n"&gt;dX&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;-&lt;/span&gt;&lt;span class="n"&gt;dY&lt;/span&gt;&lt;span class="o" style="color: #666666;"&gt;/&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Рисуем затекстурированный полигон, текстурные координаты glTexCoord2i задаются в %/100 &lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glBegin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GL_QUADS&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br /&gt;   &lt;span class="n"&gt;glTexCoord2i&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="n"&gt;glVertex2f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;// Верхний левый угол&lt;/span&gt;&lt;br /&gt;   &lt;span class="n"&gt;glTexCoord2i&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="n"&gt;glVertex2f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dY&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Нижний левый угол&lt;/span&gt;&lt;br /&gt;   &lt;span class="n"&gt;glTexCoord2i&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="n"&gt;glVertex2f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;dY&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Нижний правый угол &lt;/span&gt;&lt;br /&gt;   &lt;span class="n"&gt;glTexCoord2i&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="n"&gt;glVertex2f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi" style="color: #666666;"&gt;0&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="c" style="color: #008800; font-style: italic;"&gt;//Верхний правый угол&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;glEnd&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span class="n"&gt;glLoadIdentity&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;br /&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;
