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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2009, 05:43   #601
Pyton
Пользователь
 
Аватар для Pyton
 
Регистрация: 18.12.2008
Сообщений: 47
По умолчанию По игре

Прочитал выборочно половину всей темы.
В данный момент тоже занимаюсь разработкой небольшой игры-гоночек на делфи 7. Счас мучаюсь с проблемой поиска пути . В основном все понятно, ток не понимаю как комп должен определять препятствие . Счас пробую решить проблему с помощью цвета. Отвлекаясь от моего, вы уже придумали сценарий игры ? и выложите плз последние скрины.
Pyton вне форума Ответить с цитированием
Старый 08.01.2009, 06:20   #602
Pyton
Пользователь
 
Аватар для Pyton
 
Регистрация: 18.12.2008
Сообщений: 47
По умолчанию Еще вопрос

Дан массив TPoint. a: array[1..M, 1..N] of TPoint. const M=480, N=640.
Как присвоить a[1,1] (0,0) по x и по y. Есть конечно вариант a[1,1]:=Point(0,0), но не знаю, присвоится ли каждому елементу массива 0 и по x и по y ? Кто знает, подскажи плз =)
Pyton вне форума Ответить с цитированием
Старый 08.01.2009, 20:50   #603
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Pyton Посмотреть сообщение
... Счас мучаюсь с проблемой поиска пути . В основном все понятно, ток не понимаю как комп должен определять препятствие . Счас пробую решить проблему с помощью цвета. Отвлекаясь от моего, вы уже придумали сценарий игры ? и выложите плз последние скрины.
Последний скрин на предыдущей странице, ...это MMO идея расписана, остальное вершится игроками, никаких прямых указаний что делать, это мир, где отыгрывается персонаж.

По поводу поиска пути. Искать препятствия по цвету - это извините, ерунда. Должен быть скелет карты, там все объекты отмечены, все разбито на сектора, клетки, ...куда можно ехать а куда нет - это только кодировка ячеек двумерного массива. Полистайте эту тему подробнее, и еще "Уроки по созданию игр для новичков". Поиск пути работает с массивом, определяет препятствия по коду и строит путь в другом массиве, уже одномерном, как последовательность смещений.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 09.01.2009, 00:42   #604
Pyton
Пользователь
 
Аватар для Pyton
 
Регистрация: 18.12.2008
Сообщений: 47
По умолчанию

Можешь называть меня на ты. Тебя, я думаю, тоже можно?
А теперь к поиску пути. То есть при сканировании элементов массива в цикле необходимо заполнять его преградами?
А насчет цвета я объясню на примере: Тебя дан форма зеленого цвета(640x480).Снизу экрана к центру проведены две параллельные линии желтого цвета(1 линия идет выше центра на 50пикс.).Потом линии заворачивают направо и идут до конца экрана.Расстояние между линиями везде 50пикс.(например). Начало старта снизу и весь путь идет вдоль этих линий. С помощью 2 циклов я определяю цвет каждой точки экрана и "желтые" точки кидаю в еще 1 массив.И создаю 3-ий массив с оставшимися точками.
Pyton вне форума Ответить с цитированием
Старый 09.01.2009, 01:04   #605
Pyton
Пользователь
 
Аватар для Pyton
 
Регистрация: 18.12.2008
Сообщений: 47
По умолчанию Массив экрана

Правда, возникает проблема с координатами экрана, а именно в цикле несовместимые типы: Array и Integer? Что делать? Вот код:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure FormPaint(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

const M=480; N=640;
var
Form1: TForm1;
xs,ys,xf,yf: integer; //координаты старта и финиша
c: array[1..N, 1..M] of TPoint; //массив для хранения оставшихся точек
countc1,countc2: integer;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);

const N=480; M=640; E=640;
var i,j,k,l,x,y: integer;
countx,county: integer;
a: array[1..M, 1..N] of TPoint; //массив точек экрана
b: array[1..E, 1..E] of TPoint; // для хранения точек цвета, не совпадающего с цветом формы


begin
countx:=1;
county:=1;
form1.Color:=clgreen;
For i:=1 to M do begin
For j:=1 to N do begin
If a[i,j]<>form1.Color // проверка всех точек экрана
then begin
b[countx,county]:=a[i,j];
c[countc1,countc2]:=a[i,j]-b[countx,county];
countx:=countx+1;
county:=county+1;
countc1:=countc1+1;
countc2:=countc2+1;
end;
end;
end;

For k:=1 to countx do begin // это для проверки не находятся ли
For l:=1 to county do begin // точка старта внутри препятствия
If (xs=b[k]) and (xy=b[l])
then begin
break;
ShowMessage('Not right start point!');
end;
end;
end;
end;

end.
Pyton вне форума Ответить с цитированием
Старый 09.01.2009, 18:46   #606
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию Модель представления игрового пространства

Подумай сам, ...сколько тебе нужно обрабатывать пикселей, и какие габариты у одного объекта, в данном случае - гоночного автомобиля. Практика показывает, что для реального перемещения автомобиля достаточно секторов с половинными размерами от самого объекта, а то и больше, ...значит сами массивы модели пространства в разы уменьшаются, быстрее обрабатываются, и поиск пути с легкостью собирает пункты перемещения, указывая лишь контрольные из них, от одного из которых до другого нет препятствий, или же все по порядку, это не имеет значения при столь малых массивах.
На рисунке я показал массив поверхности, но вместо числового кода сразу поставил возможные спрайты, для наглядности. В реале же, там происходит определение по коду типа поверхности, а система передвижения автомобиля при каждом изменении сектора местоположения управляет скоростью, эффектами и звуками если хотите.
Вся фишка в том, что на одном и том же секторе не может быть сразу двух автомобилей, его размер не позволяет поместить туда более одного автомобиля и сразу же упрощается система столкновений объектов. В основе проверка соседних секторов по периметру от текущего.
Думаю все понятно, если нет, то спрашивай, по ходу разберемся.
Изображения
Тип файла: jpg Cargame-model.jpg (48.8 Кб, 203 просмотров)
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 09.01.2009, 19:34   #607
Pyton
Пользователь
 
Аватар для Pyton
 
Регистрация: 18.12.2008
Сообщений: 47
По умолчанию Продолжение поиска пути

Здравствуй, уважаемый товарищ!
О методе поиска пути с помощью цвета понимаю, что это будет тормозить,
но все же этот метод более гибкий для неизвестных карт, что ты по этому поводу думаешь?
У меня к тебе глобальный вопрос по поиску путей(прямо относится к 1-ому вопросу):
Редактор уровней или программист обязательно обозначает точки-координаты препятствий или вершины графа при создании уровня или он может их не обозначать(То есть алгоритм поиска пути сам может найти препятствия)? Или все же как в уроке 11 "создание игр для новичков" по мере сканирования массива ты сам расставляешь элементы массива как препятствия, малопроходимые области? Тогда вопрос следующий: как связать твою карту местности(массив) с экраном?


P.S. Можешь плз ответить на все поставленные мною вопросы.
Сразу извиняюсь за отобранное время(если время вообще есть).
Сейчас покидаю форум и появлюсь где-то через час(но вы пишите).
Заранее спасибо.
Pyton вне форума Ответить с цитированием
Старый 09.01.2009, 21:08   #608
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию Подробно...

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

Цитата:
Сообщение от Pyton
О методе поиска пути с помощью цвета понимаю, что это будет тормозить, но все же этот метод более гибкий для неизвестных карт, что ты по этому поводу думаешь?
Кто тебе сказал, что есть неизвестные карты? ) ...комп все всегда знает, он и генерирует карту и расставляет препятствия, т.е. заполняет массивы. Хочешь сам делай карту, только ставь тип препятствия/покрытия, а там код запишется сам куда нужно.

Цитата:
Сообщение от Pyton
Редактор уровней или программист обязательно обозначает точки-координаты препятствий или вершины графа при создании уровня или он может их не обозначать(То есть алгоритм поиска пути сам может найти препятствия)? Или все же как в уроке 11 "создание игр для новичков" по мере сканирования массива ты сам расставляешь элементы массива как препятствия, малопроходимые области?
Редактор - комбинированная система, визуализатор показывает на кончике курсора картинку покрытия, нужно только ткнуть на сетке карты куда поставить это, ...после клика, обработчик определит тип покрытия, запишет в массив код, определив от экрана в какую ячейку нужно было записать. Т.е. как на бумаге ты рисуешь карту, только редактор тебе не показывает координат, да они тебе и не нужны, тебе нужно видеть только карту перед глазами, что собственно и происходит.

Если играл в игры типа Героев вторых, Империи, Варкрафт, Старкрафт да и в принципе подобные стратегии с редакторами, ...аналогичное там происходит, ...видно карту и все объекты, ...остальное - скелет, тебе не показывают, ...можно сделать координаты если нужно.

В таком духе.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 09.01.2009, 22:40   #609
SVSD_VAL
 
Аватар для SVSD_VAL
 
Регистрация: 13.10.2008
Сообщений: 3
Восклицание

Попробуй алгоритм поиска пути A*
http://www.delphigfx.mirgames.ru/dat.../find_path.rar
http://www.delphigfx.mirgames.ru/dat...ind_path_2.rar
SVSD_VAL вне форума Ответить с цитированием
Старый 10.01.2009, 00:13   #610
Pyton
Пользователь
 
Аватар для Pyton
 
Регистрация: 18.12.2008
Сообщений: 47
По умолчанию

Попробуй алгоритм поиска пути A*

Спасибо большое, мне очень поможет!
Pyton вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уроки по созданию игр для новичков... -=DeS=- Gamedev - cоздание игр: Unity, OpenGL, DirectX 750 14.11.2017 20:26
Музыка программистов - как вы относитесь к АРИИ? Весёлый Жека Свободное общение 46 10.10.2008 22:32
Конкурсы по созданию игр на Delphi mutabor Свободное общение 0 15.06.2007 12:40
Работа по созданию ПО remix Фриланс 3 22.04.2007 11:00