Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2009, 11:56   #241
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Эх, надеюсь не забанят.
http://delphideveloper.narod.ru/
Сайт на фреймах поэтому прямой ссылки дать не могу. Pascal/Delphi -> Delphi,Direct3D,2D -> 1. Определение поддерживаемых режимов монитора...
Kostia вне форума Ответить с цитированием
Старый 17.03.2009, 11:59   #242
Maxadal
 
Регистрация: 08.03.2009
Сообщений: 7
По умолчанию

Боольшое спасибо попробую разобраться)
Maxadal вне форума Ответить с цитированием
Старый 17.03.2009, 14:52   #243
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Maxadal, это ты миникарту в уголку реализуешь или что?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 17.03.2009, 17:14   #244
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

Цитата:
я незнаю как мне сделать прокрутку игровай карты
Нет, у него игровое пространство больше чем размеры экрана.

Банальное нежелание пользоваться поиском по форуму...
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 17.03.2009, 21:55   #245
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Выводить 2D на экран посредством Direct3D - это просто кощунственно по отношению к нему, и для каких грандиозных целей он был создан
Вообще все просто. Нужно создать большой спрайт участка карты, чуть больше экрана, и банально грузить на него изменяющуюся текстуру поверхности, которая строится исходя из модели поверхности под ногами. Камера, надеюсь, не плавает? В моменты перехода на клетку (а карта смещается так же как и объект, по клетке матрицы, с плавным смещением) происходит сканирование определенного участка матрицы всей карты (модель с параметрами, которой не видим) и вывод на наш фрагмент - спрайт видимого участка. Сама текстура собирается по кусам.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 20.03.2009, 22:25   #246
Алекс Ялта
Пользователь
 
Аватар для Алекс Ялта
 
Регистрация: 27.01.2009
Сообщений: 97
По умолчанию Collision Bitmap'ов на канве

Столкнулся с проблемой. Как проверить столкновение объектов Bitmap на канве. В теории я понимаю, что нужно проверять на столкновение углы прямоугольников. Но, если, у меня есть объект Bullet (Bitmap - пуля) с координатами BulletX,BulletY, который я отрисовываю в буффер так Buffer.canvas.Draw(BulletX,BulletY, bullet) и объект Enemy, с координатами Ex,Ey , как должен выглядеть код?
Я пробовал,к примеру, так (проверка только по оси Y)

Код:
procedure Collision1();
begin
If ((BulletX,BulletY)>=(Ex,Ey)) or ((BulletX+10,BulletY)>=(Ex+40,Ey))
then EnemyDestroy;
end;
программа не компилируется и ругается " ')' expected but ',' found "
Алекс Ялта вне форума Ответить с цитированием
Старый 20.03.2009, 22:30   #247
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
" ')' expected but ',' found "
Дословно с английского означает: "должна быть скобка, а обнаружена запятая"... )
Ты просто скобку где-нибудь пропустил...


Дополнение

Так... А что это за условие такое странное "((BulletX,BulletY)>=(Ex,Ey)) or ((BulletX+10,BulletY)>=(Ex+40,Ey))" ..?

Может лучше так:
Код:
If ((BulletX+60>Ex) And (Ex+60>BulletX)) And ((BulletY+60>Ey) And (Ey+60>BulletY)) Then
Там два битмапа 60х60...
I am the First of Cyber Evolution...
I am the First to Program your Future...

Последний раз редактировалось DomiNick; 20.03.2009 в 23:15. Причина: Дополнение
DomiNick вне форума Ответить с цитированием
Старый 20.03.2009, 23:18   #248
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Все нужно выполнять в модели, а отрисовка подчиняется изменению состояния модели. Т.е. мы работаем с цифрами, ...в клетке X,Y должна лететь пуля в таком-то направлении, ...создаем ее на карте под кодом, задаем направление, допустим по-Y вверх, в таймере обработки всех объектов, объект "пуля" с текущими координатами X,Y отнимает от Y ее скорость Speed, и постепенно "летит" по матрице карты, начисляя себе смещения и сменяя клетку, как только смещение упирается в конец. Таким образом, тот кто попадет в одну из клеток на пути перемещения пули будет поражен, это из условия (если в клетке есть объект, то травмировать его). Графика строится в конце цикла обработки объектов, ...перебираются клетки карты, и если там записаны объекты, то нарисовать их с их свойствами, где был, какое смещение, какая анимация, какой кадр и пр. пр. пр.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 21.03.2009, 09:30   #249
Алекс Ялта
Пользователь
 
Аватар для Алекс Ялта
 
Регистрация: 27.01.2009
Сообщений: 97
По умолчанию

Цитата:
Сообщение от DomiNick Посмотреть сообщение

Дополнение

Так... А что это за условие такое странное "((BulletX,BulletY)>=(Ex,Ey)) or ((BulletX+10,BulletY)>=(Ex+40,Ey))" ..?

Может лучше так:
Код:
If ((BulletX+60>Ex) And (Ex+60>BulletX)) And ((BulletY+60>Ey) And (Ey+60>BulletY)) Then
Там два битмапа 60х60...
Конечно же так лучше) Только Битмап пули я сделал 10х10 и хотел задать коллизию без построения поклеточного уровня. Как задать коллизию на карте, составленного из клеток, я понимаю. Я думал, что возможно просчитать столкновение по координатам т.н. вершин прямоугольников(или рамок), как это делается в DelphiX.
Алекс Ялта вне форума Ответить с цитированием
Старый 21.03.2009, 12:45   #250
Алекс Ялта
Пользователь
 
Аватар для Алекс Ялта
 
Регистрация: 27.01.2009
Сообщений: 97
По умолчанию

Извиняюсь перед всеми, кому задурил голову) И снова DomiNick был прав. Пока не начертил на бумаге эскиз с координатами, не понял сути. Мне нужна простая коллизия по оси Y. Поэтому код такой:
Код:
procedure collision();
begin
if (BulletX+10>=EnemyX) and (bulletX<=Enemyx+30)
and (BulletY<=EnemyY+30)
then begin
BulletDestroy;
EnemyDestroy;
end;
Алекс Ялта вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хорошие уроки Render Общие вопросы Delphi 9 15.09.2012 07:13
Акцесс вопросы новичков Yaga Помощь студентам 4 02.06.2008 00:16
Учебники для новичков в програмировании Рар Общие вопросы Delphi 6 08.01.2007 08:07