
Все ниже написанное относится к Delphi 5, в более старых версиях возможны отличия, а может и нет, не знаю.
Щас мы будем анимировать спрайт. Он будет состоять из 6 промежуточных фаз.
Я его выдрал из Сеговской игрушки “Asterix & Obelix” (при помощи эмулятора), а Вы, если обладаете талантом, можете его нарисовать, ну или тоже выдрать :).
Должно получиться что-то похожее на это:
Сначала сделаем без использования DXSpriteEngine:
Создадим форму MainForm
На форме создадим
DXDraw, размером где-то 150×150,
DXImageList и
DXTimer Read more »
Filed in Графика by admin | Март 11, 2008 | No Comments
Для чего это нужно. Эту технологию можно использовать для выделения “юнита”, или для выделения пункта меню. Одним словом для обозначения чего-либо.
Ну что не поняли? Показываю:
стандартный спрайт : спрайт с измененной гаммой
Как это делатся. Динамически создается новый спрайт с подложкой нужного цвета (фон) и на него накладывается с использованием Альфа смешения наш спрайт. Чем больше величина Альфа, тем больше будет “проявляться” фон, соответственно, если “фон” белый - спрайт будет осветляться.
Что касается TransparentColor - если фоновый цвет спрайта будет отличаться от “подложки” создаваемого спрайта, то придется подумать как определить новый TransparentColor. Можно конечно заранее его просчитать и использовать, а можно просчитать динамически, взяв, например, цвет фоновой точки (посмотрите координаты какой нибудь из них в редакторе) в полученном спрайте.
Read more »
Filed in Графика by admin | Март 11, 2008 | No Comments
Сразу рассмотрим плюсы и минусы помещения каждой буквы в отдельное изображение!
Плюсы :
1.Более быстрая отрисовка (так как ищется только номер картинки).
2.Буквы рисуются аккуратно, на одинаковом расстоянии друг от друга.
Минусы:
1.Много файлов (256 штук) - этот минус отпадает сам, так как я буду использовать псевдо архив.
2.Довольно медленная загрузка (надо прочитать архив и повторить процедуру загрузки картинки в память 256 раз)
Сначала нам нужны все символы от 1 до 256 в BMP формате (желательно 256 цветов) из них и будет состоять шрифт. Сейчас мы напишем программу сохраняющая ваши символы в псевдо архив fnt. Создаем проект и после слова TYPE пишем:
Read more »
Filed in Графика by admin | Март 10, 2008 | No Comments
В этой статье мы рассмотрим методы управления объектами в играх с помощью клавиатуры, мыши и джойстика..
1. Клавиатура.
Опрос нажатия клавиши ведется через DXInput.States:
if <тикер> in DXInput.States then
begin
//действие
end
,где
* <тикер> есть зарезервированное слово:
* isUp - по умолчанию “стрелка вверх”
* isDown - по умолчанию “стрелка вниз”
* isRight - по умолчанию “стрелка вправо”
* isLeft - по умолчанию “стрелка влево”
* IsButton1 - по умолчанию “Space”
* IsButton2 - по умолчанию “Enter”
* IsButton3-IsButton32 - по умолчанию не определены
Read more »
Filed in Графика by admin | Март 10, 2008 | No Comments
Итак, у нас есть спрайты. Они рисуются, двигаются, но не взаимодействуют друг с другом. И вот для того, что бы мячики отскакивали, пули попадали во врага, а герои не проваливались сквозь пол, в DelphiX есть замечательная вещь как проверка на столкновение, которая в большинстве случаев поможет избежать написание собственного движка.
Есть два метода определение столкновений.
1. Проверка столкновения рамок: Простой тип, слежение идет за взаимным положением рамок спрайтов. При обнаружении пересечения координат, ябъявляется событие “столкновение”
2. Проверка столкновения точек: Сложный тип. Слежение ведется не только за взаимным положением рамок спрайтов, но и за взаимным положением самих изображений. Событие “столкновение” объявляется при обнаружении пересечения точек изображений.
Read more »
Filed in Графика by admin | Март 9, 2008 | No Comments