<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90784</guid>
        <pubDate>Thu, 26 Jun 2003 09:05:18 +0000</pubDate>
        <title>Движение вокруг препятствия</title>
        <link>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90784</link>
        <description><![CDATA[Mixxx: Я нашёл баг просто процедура Move<br>была так устроена что если задаваемое параметром<br>направление не совпадает с текущим<br>то текущее заменяеться на задаваемое<br>а движения непроисходит.<br>т.е. <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;br&#62;move(np:napr)&#60;br&#62;begin&#60;br&#62;....&#60;br&#62;if polozh&#60;&#62;np then &#60;br&#62; begin&#60;br&#62; &nbsp; polozh:=np&#60;br&#62; &nbsp; exit;&#60;br&#62; end;&#60;br&#62;....&#60;br&#62;end;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>Правда это был небаг это было так задумано,<br>но темнемение после того как я это исправил<br>всё заработало.<br>Огромное спасибо тебе ,Vesper1, за помощ.]]></description>
        <author>Mixxx</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90783</guid>
        <pubDate>Thu, 26 Jun 2003 04:52:45 +0000</pubDate>
        <title>Движение вокруг препятствия</title>
        <link>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90783</link>
        <description><![CDATA[vesper1: Аааа, пардону, скобки забыл :( <br><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">(MOZNO(levo) and MOZNO(pravo) and MOZNO(verh) and MOZNO(niz))=false</div></ol></div></div></div></div><br>В тот момент, когда &quot;заканчивается верх&quot;, проверь на MOZNO(levo) и MOZNO(verh), а вдруг туда нельзя, да еще и вправо нельзя. Или поставь брыкпойнт :) в точке функции kuda, там где уже никуда нельзя, есть вариант, что оно там циклит. Еще вариант: в процедуре MOVE может быть ляп, то есть говоришь MOVE(pravo) а она только двигает объект, а polozh не меняет, тогда получается, что объект смотрит на стену, а слева есть свободное пространство, в результате чего объект начинает вращаться вокруг пустого места.]]></description>
        <author>vesper1</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90782</guid>
        <pubDate>Wed, 25 Jun 2003 15:41:06 +0000</pubDate>
        <title>Движение вокруг препятствия</title>
        <link>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90782</link>
        <description><![CDATA[Mixxx: Vesper1, ты гений твой алгоритм почти работает:<br>танк нормально едет по границам экрана  но вот со <br>внутреними препятствиями сложно - танчик доезжает до угла объекта<br>и тутже начинает вращаться вокруг своей оси с большой скоростью.<br>Тоесть траектория право-верх-право почамуто неподсилу и трагически обрываеться после того как<br>заканчиваеться &quot;верх&quot;. Буду разбираться.<br><br>Да и почему ты говоришь вызывать токо после<br><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;br&#62;MOZNO(levo) and MOZNO(pravo) and MOZNO(verh) and MOZNO(niz)=false &#60;br&#62;</div></ol></div></div></div></div><br>Почаму имменно niz?<br>Я вызываю сразу после того как юнит упреться фейсом в стену.]]></description>
        <author>Mixxx</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90780</guid>
        <pubDate>Wed, 25 Jun 2003 13:45:34 +0000</pubDate>
        <title>Движение вокруг препятствия</title>
        <link>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90780</link>
        <description><![CDATA[vesper1: Ага. Ну примерно так: Держишь в объекте текущее направление (скажем cur_dir:NAPR; ) и создаешь функцию &quot;куда&quot;, перебирающую направления. Но имхо начать вызывать ее надо лишь когда &quot;дотронулся&quot; до стены, то есть <br><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">MOZNO(levo) and MOZNO(pravo) and MOZNO(verh) and MOZNO(niz)=false</div></ol></div></div></div></div><br>Да и твои направления надо бы переупорядочить (для оптимизации), вот так:<br><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">type NAPR=(levo,verh,pravo,niz);</div></ol></div></div></div></div> чтобы succ(a_napr) выдавал следующее по часовой стрелке направление, ну не совсем succ а конструкция типа <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if a_napr=niz then a_succ:=levo else a_succ:=succ(a_napr);</div></ol></div></div></div></div><br>Да и аналогично a_pred реализовать. Тогда получится<br><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function kuda(var t:TANK):NAPR;&#60;br&#62;var a_kuda:NAPR;&#60;br&#62;begin&#60;br&#62; &nbsp;a_kuda:=a_pred(t.cur_dir);&#60;br&#62; &nbsp;repeat&#60;br&#62; &nbsp; &nbsp;if MOZNO(a_kuda) then begin&#60;br&#62; &nbsp; &nbsp; &nbsp;kuda:=a_kuda;&#60;br&#62; &nbsp; &nbsp; &nbsp;exit end;&#60;br&#62; &nbsp; &nbsp;a_kuda:=a_succ(a_kuda);&#60;br&#62; &nbsp;until a_kuda=a_pred(t.cur_dir);&#60;br&#62; &nbsp;{а вот если мы здесь, то ниkuda нельзя :)}&#60;br&#62; &nbsp;kuda:=t.cur_dir;&#60;br&#62;end;&#60;br&#62;</div></ol></div></div></div></div><br>других вариантов не придумал.<br>Ну и собсно все, дальше в цикле хватаешь kuda(T) и проверяешь MOZNO ли, и если да то двигаешь.<br><br>ЗЫ: Только щас заметил POLOZH:napr в 0м посте, переправь cur_dir тады ;)]]></description>
        <author>vesper1</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90779</guid>
        <pubDate>Wed, 25 Jun 2003 10:44:58 +0000</pubDate>
        <title>Движение вокруг препятствия</title>
        <link>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90779</link>
        <description><![CDATA[Mixxx: 2 Ozzя <br>Да ладно я не обиделся.<br>Посмотрю там где ты велел.<br>2 All<br>Но я не совсем ето просил.<br>Идею алгоритма обхода я вроде-бы как-бы уловил.<br>Проблема с его реализацией в тех безобразных условиях которые я сам себе создал :'(<br>И ещё я не просил &nbsp;помоч мне реализовать весь алгоритм обхода.<br>Мне нужна токо реализация кружения юнита вокруг горки,<br>да-да именно кружение по круговой траектории в цикле (остальное (обход) я сам доделаю),это как алгоритм поиска выхода из лабиринта - алгоритм левой руки<br>держися левой рукой за стенку и идёшь а если вдруг стена посередине лабиринта<br>и не соприкосаеться с другими его стенами то суждено путнику навеки ходить в лаберинте кругами. Вот именно реализацию этого я и хочу от вас добиться.]]></description>
        <author>Mixxx</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90778</guid>
        <pubDate>Wed, 25 Jun 2003 09:43:03 +0000</pubDate>
        <title>Движение вокруг препятствия</title>
        <link>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90778</link>
        <description><![CDATA[Булат Шакиров: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>Mixxx, 25.06.03, 13:23:22</span><div class='quote '>2 Ozzя Ну, хорошо допустим я Mixx  :-/<br></div></div><br>Извини &nbsp;;)<br><br><div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><br>Я сразу скачал эту книженицию как-тока увидел линк<br>(в одном из ныне закрытых паскальных топиков)<br>И какой индивидуум догадался запечатать стоко метров в одном doc файле,<br>у он меня он грузиться 20 минут (к томуже у меня ворда нет).<br>Кроме-того меня никто не спрашивал знаю ли я Си<br>(кстати  юзать прогу переводчик ctop я так и не научился)<br>И наконец там про мой случай ничего не сказано.<br><br>Прошу ещё учесть что я задал не общий вопрос,<br>а конкретный (я вообще думаю что форум как раз для таких случаев и создан, разве нет)</div></div><br>Посмотри на delphimaster.ru раздел DElphiGX, там среди алогоритмов и статей вроде и обход препятствий был]]></description>
        <author>Булат Шакиров</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90777</guid>
        <pubDate>Wed, 25 Jun 2003 09:23:22 +0000</pubDate>
        <title>Движение вокруг препятствия</title>
        <link>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90777</link>
        <description><![CDATA[Mixxx: 2 Ozzя Ну, хорошо допустим я Mixx &nbsp;:-/<br>Я сразу скачал эту книженицию как-тока увидел линк<br>(в одном из ныне закрытых паскальных топиков)<br>И какой индивидуум догадался запечатать стоко метров в одном doc файле,<br>у он меня он грузиться 20 минут (к томуже у меня ворда нет).<br>Кроме-того меня никто не спрашивал знаю ли я Си<br>(кстати &nbsp;юзать прогу переводчик ctop я так и не научился)<br>И наконец там про мой случай ничего не сказано.<br><br>Прошу ещё учесть что я задал не общий вопрос,<br>а конкретный (я вообще думаю что форум как раз для таких случаев и создан, разве нет)]]></description>
        <author>Mixxx</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90776</guid>
        <pubDate>Wed, 25 Jun 2003 08:18:31 +0000</pubDate>
        <title>Движение вокруг препятствия</title>
        <link>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90776</link>
        <description><![CDATA[Булат Шакиров: Mixx, прочитайте книгу:<br>Секреты программирования игр <br>http://pmg-ru.narod.ru/download/proggame.part1.rar <br>http://pmg-ru.narod.ru/download/proggame.part2.rar <br>и многие вопросы у Вас просто не будут возникать.]]></description>
        <author>Булат Шакиров</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90775</guid>
        <pubDate>Wed, 25 Jun 2003 07:44:30 +0000</pubDate>
        <title>Движение вокруг препятствия</title>
        <link>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90775</link>
        <description><![CDATA[Mixxx: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Танчики пишешь? </div></div><br>Просто поразительно как ты догадался? ;D<br><div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '> А координаты в процедуре MOVE меняешь? А нигде вовне старые не восстанавливаешь?</div></div><br>Координаты меняю только в процедуре move<br><div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '> А объект свой в каком месте рисуешь?</div></div><br> S:record{спрайт}<br> &nbsp;x,y,{координаты левого верхнего угла спрайта}<br> &nbsp;Xsize,Ysize:integer;{ширина и высота спрайта}<br> end;<br><div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>И вообще ЗЫ: Ошибка в 94й строке. </div></div><br>Неправда, я считал - в этой моей мессаге всего 22-строки. :D]]></description>
        <author>Mixxx</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90774</guid>
        <pubDate>Wed, 25 Jun 2003 05:14:24 +0000</pubDate>
        <title>Движение вокруг препятствия</title>
        <link>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90774</link>
        <description><![CDATA[vesper1: Танчики пишешь? &nbsp;;D А координаты в процедуре MOVE меняешь? А нигде вовне старые не восстанавливаешь? Че еще.. А объект свой в каком месте рисуешь?<br>И вообще ЗЫ: Ошибка в 94й строке. (с) Song]]></description>
        <author>vesper1</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90773</guid>
        <pubDate>Tue, 24 Jun 2003 21:17:15 +0000</pubDate>
        <title>Движение вокруг препятствия</title>
        <link>https://forum.sources.ru/index.php?showtopic=9262&amp;view=findpost&amp;p=90773</link>
        <description><![CDATA[Mixxx: Задача надо чтобы юнит ходил вокгруг  препятствия(стены).<br>переменые и методы<br><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;br&#62;type NAPR=( levo,pravo,niz,verh)-тип обозначающий движение&#60;br&#62;POLOZH:napr{текущее направление юнита}&#60;br&#62;в лево,право,низ или вверх;&#60;br&#62;MOZNO(NP:NAPR):boolean;-функция которая говорит можно ли двинуться(на один пиксель) в этом&#60;br&#62;направлении(true если можно)&#60;br&#62;MOVE(NP:NAPR) процедура которая двигает юнит (на один пиксель)&#60;br&#62;в том направлении куда укажет параметр np ;&#60;br&#62;</div></ol></div></div></div></div><br>все направления АБСОЛЮТНЫ и НЕ относительны юнита<br>т.е. К примеру если юнит движеться в niz то рано или поздно он<br>упрется в низ экрана.<br>У меня получилось только чтобы юнит дергался в разные стороны<br>но в итоге оставался на одном месте( низнаю может я просто не <br>выспался :) )<br>Главные проблемы я считаю это<br>абсолютные направления<br>и движения на расстояние в один пиксель<br>(хотя сам юнит и препятствие разумееться больше одного пиxеля)<br><br>Пожалуйста помогите кто чем может (идеями, реализацией...).<br>Буду примного благодарен.<br><br>]]></description>
        <author>Mixxx</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	