Проигрывание звука, передвижение картинок и проверка их столкновения в DelphiXDelphi , Графика и Игры , DirectX и DelphiXПроигрывание звука, передвижение картинок и проверка их столкновения в DelphiX
Для этого урока возьмем программу из предыдущего (так будет во всех уроках - в каждом следующем мы просто улучшаем программу предыдущего), единственные изменения - я возьму спрайты покрасивее: Это фон(он нарисован в Fireworks): А это тарелка(нарисована там же): Если вы не хотите рисовать сами, вы можете скачать мой вариант Итак, приступим к работе Цель этого занятия - научится проигрывать звук, передвигать картинки и проверять их столкновения. Для проверки столкновений понадобится третий спрайт, я нарисую стенку. Теперь я уже не буду объяснять, как вывести стенку на экран. Я выведу её с координатами "400,400.0" Все, можно пристурать к анимированию. В описание класса Ttarelka, перед "Public" надо поставить такую строку:
Теперь описание класса должно выглядеть так:
Теперь эту процедуру надо ПРОписать. Сразу после трех конструкторов пишем:
Разбираем: изменяться тут будут только большие "X" и "Y" - координаты спрайтов, "+1" - коэффициент изменения, берется от фонаря (или так, как задумал). Запускаем и видим тарелку, летящую по диагонали, налетающую на стенку и летящую дальше! Теперь думаем: зачем тут стенка? Обычно через стенки не летают, о них разбиваются. Начинаем писать проверку столкновений. Там же, где описывали doMove(перед "Public") пишем:
Теперь описание класса "Ttarelka" должно быть таким:
Теперь ПРОписываем, после прописывания процедуры doMove:
Запускаем и видим, как тарелка наскакивает на стену и разбивается! Только скучно как-то! Полетела, разбилась и все! Сделаем так, чтобы спрайт тарелки создавался по щелчку мыши (и заодно увидим, что процедура, написанная для одного спрайта действует и для всех его копий). В "Событиях"(Events) объекта DXDraw создаем обработчик onClick и пишем туда:
Заодно убираем эту процедуру из onFormCreate. Ну все бы хорошо, ещё бы было этакое "БУМ!" когда тарелка разбивается! Ставим на форму DXWaveList и DXSound. В свойства "DXSound" вэйв-листа выбираем "DXSound1" и переименовываем сам DXWaveList1 в DXWaveList. В Items'ax создаем новый, называем его "boom" и ставим в свойстве "wave" звук. Теперь в процедуру "doCollision" добавляем:
Теперь процедура doCollision выгдядит так:
Наслаждемся тем, что второй урок наконец закончен! P.S. DXDraw на форме надо будет растянуть на весь экран. P.P.S. У кого что-то не получилось, могут скачать готовую программу Кому сильно охота хотя бы немного посмотреть настоящие возможности ДельфИкса, те могут скачать игру, полностью написанную на ДельфИксе, причем написанную не кем-то особо крутым, а автором сайта http://instrumentari.narod.ru (игра на двоих). а здесь лежат исходники (только для Delphi 6.0) В статье описывается создание игры в DelphiX с использованием звука, передвижения картинок и проверки столкновения объектов на экране. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: DirectX и DelphiX ::
|
|||||||||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |