<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Графика в Delphi - примеры задач на построение графиков, а также компоненты для графики</title>
	<link>http://delphigraph.ru</link>
	<description></description>
	<pubDate>Wed, 01 Oct 2008 06:36:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3</generator>
	<language>en</language>
			<item>
		<title>Анимация спрайтов</title>
		<link>http://delphigraph.ru/animaciya-sprajtov/</link>
		<comments>http://delphigraph.ru/animaciya-sprajtov/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 16:12:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[DirectX и DelphiX]]></category>

		<guid isPermaLink="false">http://delphigraph.ru/animaciya-sprajtov/</guid>
		<description><![CDATA[
Все ниже написанное относится к Delphi 5, в более старых версиях возможны отличия, а может и нет, не знаю.
Щас мы будем анимировать спрайт. Он будет состоять из 6 промежуточных фаз.
Я его выдрал из Сеговской игрушки &#8220;Asterix &#38; Obelix&#8221; (при помощи эмулятора), а Вы, если обладаете талантом, можете его нарисовать, ну или тоже выдрать :).
Должно получиться [...]]]></description>
			<content:encoded><![CDATA[<p><img width='1' height='1' src='http://www.blogan.ru/it.000000.010598.i.gif'><br />
Все ниже написанное относится к Delphi 5, в более старых версиях возможны отличия, а может и нет, не знаю.</p>
<p>Щас мы будем анимировать спрайт. Он будет состоять из 6 промежуточных фаз.</p>
<p>Я его выдрал из Сеговской игрушки &#8220;Asterix &amp; Obelix&#8221; (при помощи эмулятора), а Вы, если обладаете талантом, можете его нарисовать, ну или тоже выдрать :).<br />
Должно получиться что-то похожее на это:</p>
<p>Сначала сделаем без использования DXSpriteEngine:<br />
Создадим форму MainForm<br />
На форме создадим<br />
DXDraw, размером где-то 150&#215;150,<br />
DXImageList и<br />
DXTimer <a href="http://delphigraph.ru/animaciya-sprajtov/#more-193" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://delphigraph.ru/animaciya-sprajtov/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Изменение гаммы спрайта</title>
		<link>http://delphigraph.ru/izmenenie-gammy-sprajta/</link>
		<comments>http://delphigraph.ru/izmenenie-gammy-sprajta/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 11:43:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[DirectX и DelphiX]]></category>

		<guid isPermaLink="false">http://delphigraph.ru/izmenenie-gammy-sprajta/</guid>
		<description><![CDATA[Для чего это нужно. Эту технологию можно использовать для выделения &#8220;юнита&#8221;, или для выделения пункта меню. Одним словом для обозначения чего-либо.
Ну что не поняли? Показываю:
стандартный спрайт : спрайт с измененной гаммой
Как это делатся. Динамически создается новый спрайт с подложкой нужного цвета (фон) и на него накладывается с использованием Альфа смешения наш спрайт. Чем больше величина [...]]]></description>
			<content:encoded><![CDATA[<p>Для чего это нужно. Эту технологию можно использовать для выделения &#8220;юнита&#8221;, или для выделения пункта меню. Одним словом для обозначения чего-либо.<br />
Ну что не поняли? Показываю:<br />
стандартный спрайт : спрайт с измененной гаммой</p>
<p>Как это делатся. Динамически создается новый спрайт с подложкой нужного цвета (фон) и на него накладывается с использованием Альфа смешения наш спрайт. Чем больше величина Альфа, тем больше будет &#8220;проявляться&#8221; фон, соответственно, если &#8220;фон&#8221; белый - спрайт будет осветляться.<br />
Что касается TransparentColor - если фоновый цвет спрайта будет отличаться от &#8220;подложки&#8221; создаваемого спрайта, то придется подумать как определить новый TransparentColor. Можно конечно заранее его просчитать и использовать, а можно просчитать динамически, взяв, например, цвет фоновой точки (посмотрите координаты какой нибудь из них в редакторе) в полученном спрайте.<br />
 <a href="http://delphigraph.ru/izmenenie-gammy-sprajta/#more-194" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://delphigraph.ru/izmenenie-gammy-sprajta/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Опять шрифты. Нормальная процедура отображения графических шрифтов</title>
		<link>http://delphigraph.ru/opyat-shrifty-normalnaya-procedura-otobrazheniya-graficheskix-shriftov/</link>
		<comments>http://delphigraph.ru/opyat-shrifty-normalnaya-procedura-otobrazheniya-graficheskix-shriftov/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 17:43:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[DirectX и DelphiX]]></category>

		<guid isPermaLink="false">http://delphigraph.ru/opyat-shrifty-normalnaya-procedura-otobrazheniya-graficheskix-shriftov/</guid>
		<description><![CDATA[Сразу рассмотрим плюсы и минусы помещения каждой буквы в отдельное изображение!
Плюсы :
1.Более быстрая отрисовка (так как ищется только номер картинки).
2.Буквы рисуются аккуратно, на одинаковом расстоянии друг от друга.
Минусы:
1.Много файлов (256 штук) - этот минус отпадает сам, так как я буду использовать псевдо архив.
2.Довольно медленная загрузка (надо прочитать архив и повторить процедуру загрузки картинки в память [...]]]></description>
			<content:encoded><![CDATA[<p>Сразу рассмотрим плюсы и минусы помещения каждой буквы в отдельное изображение!<br />
Плюсы :<br />
1.Более быстрая отрисовка (так как ищется только номер картинки).<br />
2.Буквы рисуются аккуратно, на одинаковом расстоянии друг от друга.<br />
Минусы:<br />
1.Много файлов (256 штук) - этот минус отпадает сам, так как я буду использовать псевдо архив.<br />
2.Довольно медленная загрузка (надо прочитать архив и повторить процедуру загрузки картинки в память 256 раз)</p>
<p>Сначала нам нужны все символы от 1 до 256 в BMP формате (желательно 256 цветов) из них и будет состоять шрифт. Сейчас мы напишем программу сохраняющая ваши символы в псевдо архив fnt. Создаем проект и после слова TYPE пишем:<br />
 <a href="http://delphigraph.ru/opyat-shrifty-normalnaya-procedura-otobrazheniya-graficheskix-shriftov/#more-197" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://delphigraph.ru/opyat-shrifty-normalnaya-procedura-otobrazheniya-graficheskix-shriftov/feed/</wfw:commentRss>
		</item>
		<item>
		<title>DXInput</title>
		<link>http://delphigraph.ru/dxinput/</link>
		<comments>http://delphigraph.ru/dxinput/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 10:42:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[DirectX и DelphiX]]></category>

		<guid isPermaLink="false">http://delphigraph.ru/dxinput/</guid>
		<description><![CDATA[В этой статье мы рассмотрим методы управления объектами в играх с помощью клавиатуры, мыши и джойстика..
1. Клавиатура.
Опрос нажатия клавиши ведется через DXInput.States:
if &#60;тикер&#62; in DXInput.States then
begin
//действие
end
,где
* &#60;тикер&#62; есть зарезервированное слово:
* isUp - по умолчанию &#8220;стрелка вверх&#8221;
* isDown - по умолчанию &#8220;стрелка вниз&#8221;
* isRight - по умолчанию &#8220;стрелка вправо&#8221;
* isLeft - по умолчанию &#8220;стрелка влево&#8221;
* IsButton1 [...]]]></description>
			<content:encoded><![CDATA[<p>В этой статье мы рассмотрим методы управления объектами в играх с помощью клавиатуры, мыши и джойстика..<br />
1. Клавиатура.<br />
Опрос нажатия клавиши ведется через DXInput.States:</p>
<p>if &lt;тикер&gt; in DXInput.States then<br />
begin<br />
//действие<br />
end</p>
<p>,где</p>
<p>* &lt;тикер&gt; есть зарезервированное слово:<br />
* isUp - по умолчанию &#8220;стрелка вверх&#8221;<br />
* isDown - по умолчанию &#8220;стрелка вниз&#8221;<br />
* isRight - по умолчанию &#8220;стрелка вправо&#8221;<br />
* isLeft - по умолчанию &#8220;стрелка влево&#8221;<br />
* IsButton1 - по умолчанию &#8220;Space&#8221;<br />
* IsButton2 - по умолчанию &#8220;Enter&#8221;<br />
* IsButton3-IsButton32 - по умолчанию не определены<br />
 <a href="http://delphigraph.ru/dxinput/#more-196" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://delphigraph.ru/dxinput/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Collision</title>
		<link>http://delphigraph.ru/collision/</link>
		<comments>http://delphigraph.ru/collision/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 15:55:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[DirectX и DelphiX]]></category>

		<guid isPermaLink="false">http://delphigraph.ru/collision/</guid>
		<description><![CDATA[Итак, у нас есть спрайты. Они рисуются, двигаются, но не взаимодействуют друг с другом. И вот для того, что бы мячики отскакивали, пули попадали во врага, а герои не проваливались сквозь пол, в DelphiX есть замечательная вещь как проверка на столкновение, которая в большинстве случаев поможет избежать написание собственного движка.
Есть два метода определение столкновений.
1. Проверка [...]]]></description>
			<content:encoded><![CDATA[<p>Итак, у нас есть спрайты. Они рисуются, двигаются, но не взаимодействуют друг с другом. И вот для того, что бы мячики отскакивали, пули попадали во врага, а герои не проваливались сквозь пол, в DelphiX есть замечательная вещь как проверка на столкновение, которая в большинстве случаев поможет избежать написание собственного движка.<br />
Есть два метода определение столкновений.<br />
1. Проверка столкновения рамок: Простой тип, слежение идет за взаимным положением рамок спрайтов. При обнаружении пересечения координат, ябъявляется событие &#8220;столкновение&#8221;<br />
2. Проверка столкновения точек: Сложный тип. Слежение ведется не только за взаимным положением рамок спрайтов, но и за взаимным положением самих изображений. Событие &#8220;столкновение&#8221; объявляется при обнаружении пересечения точек изображений.<br />
 <a href="http://delphigraph.ru/collision/#more-195" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://delphigraph.ru/collision/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Система рационального создания спрайтов</title>
		<link>http://delphigraph.ru/sistema-racionalnogo-sozdaniya-sprajtov/</link>
		<comments>http://delphigraph.ru/sistema-racionalnogo-sozdaniya-sprajtov/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 04:44:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[DirectX и DelphiX]]></category>

		<guid isPermaLink="false">http://delphigraph.ru/sistema-racionalnogo-sozdaniya-sprajtov/</guid>
		<description><![CDATA[B примере мы рассмотрим Четыре способа создания спрайтов:
1. Аркадный
2. Нерациональный
3. Рациональный
4. Рациональный два
Итак способ первый - Аркадный. Его смысл заключается в том, что процедура создания спрайта описывается в коде заранее, а значит параметры спрайта определены ещё до его появления. Вот пример:
]]></description>
			<content:encoded><![CDATA[<p>B примере мы рассмотрим Четыре способа создания спрайтов:<br />
1. Аркадный<br />
2. Нерациональный<br />
3. Рациональный<br />
4. Рациональный два<br />
Итак способ первый - Аркадный. Его смысл заключается в том, что процедура создания спрайта описывается в коде заранее, а значит параметры спрайта определены ещё до его появления. Вот пример:<br />
 <a href="http://delphigraph.ru/sistema-racionalnogo-sozdaniya-sprajtov/#more-198" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://delphigraph.ru/sistema-racionalnogo-sozdaniya-sprajtov/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Как заставить работать DelphiX и UnDelphiX под Delphi6</title>
		<link>http://delphigraph.ru/kak-zastavit-rabotat-delphix-i-undelphix-pod-delphi6/</link>
		<comments>http://delphigraph.ru/kak-zastavit-rabotat-delphix-i-undelphix-pod-delphi6/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 14:40:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[DirectX и DelphiX]]></category>

		<guid isPermaLink="false">http://delphigraph.ru/?p=192</guid>
		<description><![CDATA[Введение
Эта статья расскажет вам как откомпилировать известные библиотеки DelphiX и UnDelphiX под Delphi 6.0. Весь процесс займет не больше 15-20 минут, кроме того вы изучите общие приемы, которые могут помочь в аналогичных ситуациях. Почему это статья, а не, скажем, патч или дополнение к Delphi? Есть две причины:
1) По соглашению об использовании библиотеки (&#8221;TERMS AND CONDITIONS [...]]]></description>
			<content:encoded><![CDATA[<p>Введение</p>
<p>Эта статья расскажет вам как откомпилировать известные библиотеки DelphiX и UnDelphiX под Delphi 6.0. Весь процесс займет не больше 15-20 минут, кроме того вы изучите общие приемы, которые могут помочь в аналогичных ситуациях. Почему это статья, а не, скажем, патч или дополнение к Delphi? Есть две причины:</p>
<p>1) По соглашению об использовании библиотеки (&#8221;TERMS AND CONDITIONS OF USE&#8221;), нельзя рапространять измененные части дистрибутива DelphiX.</p>
<p>2) Действия, которые необходимо совершить для конвертации проекта под Delphi 6.0, делают DelphiX несовместимой для использования в Delphi 3-5.</p>
<p>Предупреждение: пожалуйста, сохраните резервную копию всех изменяемых файлов. Методы, изложенные здесь, протестированы на Delphi 6.0 Personal, если у вас другая редакция (например, Professional), могут возникнуть непредвиденные проблемы.<br />
Итак, перекомпиляция:<br />
 <a href="http://delphigraph.ru/kak-zastavit-rabotat-delphix-i-undelphix-pod-delphi6/#more-192" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://delphigraph.ru/kak-zastavit-rabotat-delphix-i-undelphix-pod-delphi6/feed/</wfw:commentRss>
		</item>
		<item>
		<title>DirectX и Delphi - введение</title>
		<link>http://delphigraph.ru/directx-i-delphi-vvedenie/</link>
		<comments>http://delphigraph.ru/directx-i-delphi-vvedenie/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 14:38:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[DirectX и DelphiX]]></category>

		<guid isPermaLink="false">http://delphigraph.ru/?p=191</guid>
		<description><![CDATA[Как обычно, начну с оговорок.
Первое – для меня большая проблема перевести некоторые термины. Поэтому я думаю может и не стоит их переводить.  Вот список терминов, которые вызывают у меня трудности с переводом:
    * blitting - blit сокращение от &#8220;bit block transfer&#8221; пересылка блоков данных из одной области видеопамяти в другую.
  [...]]]></description>
			<content:encoded><![CDATA[<p>Как обычно, начну с оговорок.<br />
Первое – для меня большая проблема перевести некоторые термины. Поэтому я думаю может и не стоит их переводить. <img src='http://delphigraph.ru/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Вот список терминов, которые вызывают у меня трудности с переводом:</p>
<p>    * blitting - blit сокращение от &#8220;bit block transfer&#8221; пересылка блоков данных из одной области видеопамяти в другую.<br />
    * flip – переключение между буферами видеопамяти<br />
    * Surface – &#8220;поверхность&#8221; – область видеопамяти</p>
<p>Второе – разговор идет о использовании DirectDraw в Delphi. Для того, чтобы воспользоваться DirectX вообще и DirectDraw в частности, нужно, чтобы во-первых DirectX был установлен на компьютере (скачать его можно у Microsoft например, впрочем я не думаю, что для читателя будет проблемой его найти), во-вторых нужны файлы заголовков DirectX – их существует немало, я по-прежднему считаю компонент DelphiX от Hiroyuki Hori – превосходным , кроме того, существует официально поддерживаемые Borland&#8217;ом заголовки DirectX, составленные в рамках проекта &#8220;JEDI&#8221; – скачать их можно с (http://www.delphi-jedi.org/DelphiGraphics/).<br />
 <a href="http://delphigraph.ru/directx-i-delphi-vvedenie/#more-191" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://delphigraph.ru/directx-i-delphi-vvedenie/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Обработка событий клавиш в DelphiX</title>
		<link>http://delphigraph.ru/obrabotka-sobytij-klavish-v-delphix/</link>
		<comments>http://delphigraph.ru/obrabotka-sobytij-klavish-v-delphix/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 14:37:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[DirectX и DelphiX]]></category>

		<guid isPermaLink="false">http://delphigraph.ru/?p=190</guid>
		<description><![CDATA[Если завис компьютер, выдерни шнур, выдави стекло.
Этот урок не совсем посвящен ДельфИксу. Сейчас вы научитесь обрабатывать такие события, как, например, нажатия клавиш. Но делать мы это будем не при помощи DXInput, так как я все ещё не знаю как с ним работать, делать мы это будем при помощи трех обычных событий: onKeyDown, onKeyUp и onKeyPreesed. [...]]]></description>
			<content:encoded><![CDATA[<p>Если завис компьютер, выдерни шнур, выдави стекло.</p>
<p>Этот урок не совсем посвящен ДельфИксу. Сейчас вы научитесь обрабатывать такие события, как, например, нажатия клавиш. Но делать мы это будем не при помощи DXInput, так как я все ещё не знаю как с ним работать, делать мы это будем при помощи трех обычных событий: onKeyDown, onKeyUp и onKeyPreesed. Эти свойства есть и у формы и у DXDraw. Я буду работать с формой, кому больше нравится - могут работать с DXDraw, это ничего не меняет. Итак, в прошлый раз у нас была тарелка, летящая по уже заданной траектории. Теперь, я думаю было бы неплохо сделать спрайт стенки квадратным и небольшим, размножить их и добавить гравитацию, чтобы можно было летать по лабиринту и избегать столкновения со стенкой. Теперь стенка будет такой:</p>
<p>Можно будет размножить её, зная, что её размеры 23х23 и выстроить лабиринт. Кроме того не помешает создать спрайт &#8220;посадочной площадки&#8221;, чтобы в лабиринте была цель. У меня она будет такой:<br />
 <a href="http://delphigraph.ru/obrabotka-sobytij-klavish-v-delphix/#more-190" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://delphigraph.ru/obrabotka-sobytij-klavish-v-delphix/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blitting, Спрайты и Анимация</title>
		<link>http://delphigraph.ru/blitting-sprajty-i-animaciya/</link>
		<comments>http://delphigraph.ru/blitting-sprajty-i-animaciya/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 14:36:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Графика]]></category>

		<category><![CDATA[DirectX и DelphiX]]></category>

		<guid isPermaLink="false">http://delphigraph.ru/?p=189</guid>
		<description><![CDATA[Для тех, кто интересуется, что это за слово такое “JEDI”– выберите в Delphi 5 пункт меню Help->About и наберите слово JEDI, удерживая нажатой клавишу Alt. Вы узнаете, что JEDI – это аббревиатура, расшифровывающаяся как Join Endeavor of Delphi Innovators. (на русский это можно перевести приблизительно – Совместные Усилия Дельфийских Новаторов или еще лучше - все [...]]]></description>
			<content:encoded><![CDATA[<p>Для тех, кто интересуется, что это за слово такое “JEDI”– выберите в Delphi 5 пункт меню Help->About и наберите слово JEDI, удерживая нажатой клавишу Alt. Вы узнаете, что JEDI – это аббревиатура, расшифровывающаяся как Join Endeavor of Delphi Innovators. (на русский это можно перевести приблизительно – Совместные Усилия Дельфийских Новаторов или еще лучше - все для Delphi, все для победы) :-).</p>
<p>Звучит красиво, но нам-то что до этого? На самом деле нам до этого есть дело – в рамках проекта JEDI (кстати, некоммерческого и держащегося на энтузиазме, пусть и с официальным одобрением Borland), в рамках именно этого проекта были созданы заголовочные файлы DirectX для Delphi. Так скачаем же их! (http://www.delphi-jedi.org/DelphiGraphics/)<br />
 <a href="http://delphigraph.ru/blitting-sprajty-i-animaciya/#more-189" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://delphigraph.ru/blitting-sprajty-i-animaciya/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
