Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 04.08.2009, 13:56   #1
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
Репутация: 40
По умолчанию Реализация РПГ...

У меня есть несколько вопросов по РПГ во всяком случае пока по выводу графики. В общем так. Я реализовал перемещение персонажей. Чтобы игровые обьекты прикрывали персонажа если он сзди них и наоборот я представил все обьекты в двумерный массив обьекттов куда записываю и персонажей. При создании уровня создается первый фон(тоесть трава и т.д.), затем поверх него второй фон где представлены все игровые обьекты. Это прорисовывается один раз. Затем при перемещении персонажа просматриваются нет ли на пути обьектов. Если нет то он идет в ту клетку и той клетке присваивается значение персонажа. А можно ли реализовать при этом плавное перемещение и чтобы обьекты накрывали друг друга также?

Зы Код покажу если надо.
Shadow_1329 вне форума   Ответить с цитированием
Старый 04.08.2009, 17:04   #2
DeKot
Профессионал
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Адрес: Молдова
Сообщений: 1,977
Репутация: 898
По умолчанию

Производи перемещение в цикле.Допустим шаг клеток 50 пикселей. Тогда , если скажем, приращение dx := 2 ;
используем
Код:
for i:= 1 to 25 do
           begin
              //<процедура движения к примеру по Х>
             x:= x + dx;
           end;
Получится плавность движения . Ну и, само собой, прорисовка всех фонов, персонажей и планов должна находиться в цикле.
__________________
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума   Ответить с цитированием
Старый 04.08.2009, 17:43   #3
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
Репутация: 40
По умолчанию

Мне нужно чтобы он двигался как хотел всавао хоть на конце клетки коть вначале хоть в середине. А он у меня прыгает щас из клетки в клетку. А если так то он будет плавно переходитьиз клетки в клетку. А нужно чтобы свободно перемецался хоть по самой клетке.
Shadow_1329 вне форума   Ответить с цитированием
Старый 04.08.2009, 17:59   #4
DeKot
Профессионал
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Адрес: Молдова
Сообщений: 1,977
Репутация: 898
По умолчанию

Так шаг перемещения то Вы все равно должны задать сами - программно.Это можно делать в цикле, по таймеру, по обработчику клавиш или любого другого события, возникакющего по ходу кода.Вот при организации каждого такого шага следует прорисовывать все выше приведенные Вами шаги.
__________________
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума   Ответить с цитированием
Старый 06.08.2009, 13:13   #5
Wicort
Участник клуба
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Адрес: Россия-матушка
Сообщений: 684
Репутация: 228

skype: Wicort
По умолчанию

Смотря как ты производишь перемещение, вернее точку назначения. Если ты мышкой кликаешь по карте и туда перемещается персонаж, то не вижу проблем: прибавляй приращения координат dx и dy (чтоб плавно шёл), пока не достигнешь нужной точки, обходя препятствия.
Если же стрелками или wasd, то ещё проще: если следующее положение в той же клетке, то делаем шаг; если пытается перейти в другую клетку, то проверить, нет ли в ней препятствий. если есть - стоим на месте, нет - делаем шаг.

ну это если я конечно правильно понял суть проблемы.
Wicort вне форума   Ответить с цитированием
Старый 06.08.2009, 18:27   #6
Beermonza
Инженер ИС
Профессионал
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
Репутация: 746
По умолчанию

"Уроки по созданию игр для новичков" пост 155, и вот конкретно там же http://programmersforum.ru/showpost....&postcount=176, ...вообще читаем тему "Уроки по созданию игр для новичков" внимательно, много людей говорят много умных вещей.
__________________
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума   Ответить с цитированием
Старый 06.08.2009, 18:45   #7
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
Репутация: 40
По умолчанию

Там немного не то. Мне вообще не нужно чтобы он ИЗ КЛЕТКИ В КЛЕТКУ ходил. Мне нужно чтобы он свободно перемещался не по тайлам.
Shadow_1329 вне форума   Ответить с цитированием
Старый 06.08.2009, 19:22   #8
Beermonza
Инженер ИС
Профессионал
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
Репутация: 746
По умолчанию

С клавиатуры, пока держишь перс топает? ...это аналогично, просто идет подмена автоматического смещения, условием на "нажата ли клавиша", ...если не к спеху, постараюсь помочь, ...естественно переделав именно тот пример, что уже показал, а перенести алгоритм на свою "платформу" придется самому.

Даже вот он. Только проверок на движение по диагонали нет, выполнишь сам.
Вложения
Тип файла: zip RPG_keyboard.zip (209.1 Кб, 33 просмотров)
__________________
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его

Последний раз редактировалось Beermonza; 06.08.2009 в 19:59.
Beermonza вне форума   Ответить с цитированием
Старый 06.08.2009, 20:29   #9
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
Репутация: 40
По умолчанию

И при том он будет закрываться обьектами если перс сзади них?
Shadow_1329 вне форума   Ответить с цитированием
Старый 06.08.2009, 22:50   #10
Beermonza
Инженер ИС
Профессионал
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
Репутация: 746
По умолчанию

Конечно. В примитиве, у нас массив карты - Map, делаем цикл по его ячейкам, сопоставляем с координатами перса, если собпадает, рисуем в месте по формуле, что есть уже в примере. Все объекты будут на своих местах, и прикрывать друг друга как надо.

Код:
Цикл i по-Y
  Цикл j по-X
    Перебор списка объектов
      Если в этих координатах, то рисовать тут

    Перебор списка юнитов
      Если в этих координатах, то рисовать тут
  конец j
конец i
__________________
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание игры РПГ (RPG) vzov Qt и кроссплатформенное программирование С/С++ 18 13.05.2009 03:12
Помогите в создании броузерной РПГ emogot Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 06.02.2009 10:17
Магический квадрат v 0.01 (РПГ демо) Phoenix77 Gamedev - cоздание игр: Unity, OpenGL, DirectX 23 03.09.2008 02:20
Доработка Онлайн игры в стиле РПГ Splo1teR Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 31.07.2008 19:19
РПГ игра Принц Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 10.06.2008 15:57


16:32.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.