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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2011, 21:08   #11
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

Цитата:
НУ тогда такой вопрос: как карту представить в виде матрицы?
Ответ в вопросе.
Цитата:
Я использую спрайтовую карту. А в чём отличие?
Тайл и спрайт - одно и то же.
Цитата:
Дело в том что они огромные, а время у меня не так и много!
"Люди, которым всегда некогда, обыкновенно ничего не делают." Г. Лихтенберг
Asker13 вне форума Ответить с цитированием
Старый 15.04.2011, 21:09   #12
[BeNdeR]
Пользователь
 
Аватар для [BeNdeR]
 
Регистрация: 14.04.2011
Сообщений: 74
По умолчанию

Так мою карту нельзя загрузить значит.

Меня интересует какими процедурами и командами это создаётся!!! А не просто сырые слова!

А книгу скачал! Сейчас почитаю)))

Цитата:
Сообщение от [BeNdeR] Посмотреть сообщение
А книгу скачал! Сейчас почитаю)))
Пролистал... Она для C и C+! А есть такие книги но для Delphi?

Последний раз редактировалось Beermonza; 15.04.2011 в 22:51.
[BeNdeR] вне форума Ответить с цитированием
Старый 15.04.2011, 21:42   #13
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

Цитата:
Меня интересует какими процедурами и командами это создаётся!!! А не просто сырые слова!
Ага, тебе код на блюдечке подать что ли? Тебе сказали, где искать ответы на свои вопросы.

Beermonza писал как-то в одной похожей теме:
Цитата:
В тему "Уроки по созданию игр для новичков", бегом! ...читать все подряд от начала до конца. Пост #56 - ответ на ваш вопрос.
Пост 56.

P.S. Вместо создания 4 сообщений, редактируй только одно.
Asker13 вне форума Ответить с цитированием
Старый 15.04.2011, 21:51   #14
[BeNdeR]
Пользователь
 
Аватар для [BeNdeR]
 
Регистрация: 14.04.2011
Сообщений: 74
По умолчанию

Спасибо за ваши драгоценные советы!))) Я не прошу всё на блюдечке! Одна команда-это не код программы! А вобще вы в чём то правы!


Возник вопрос по поводу #56!

Type
TGameObject = object
TGOBitmap: TBitmap; // картинка объекта
TGOName: String; // название объекта в игре
TGODispX: Word; // смещение картинки по-X
TGODispY: Word; // смещение картинки по-Y
end;
Вот создал я тип. Так а потом мне что каждый спрайтик 32х32 описывать этим типом?

Или просто массив развернуть типо(карта 21х3 спрайта)
var
GameMapMas: array[1..21, 1..3] of tgameobject =
(
(1,1,2);
(4,1,0);
....
(1,3,1);
(0,1,3)
)
где каждый обьект какое-то число?

Последний раз редактировалось [BeNdeR]; 15.04.2011 в 22:51.
[BeNdeR] вне форума Ответить с цитированием
Старый 15.04.2011, 23:04   #15
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Лучше сделай вот так:
Код:
Type
TGameObject = record
  GOBitmap: TBitmap; // картинка объекта
  GOName: String; // название объекта в игре
  GODispX: Word; // смещение картинки по-X
  GODispY: Word; // смещение картинки по-Y
end;
создаёшь массив map: array[1..32, 1..32] of TGameObject;
потом
Код:
for i:=1 to 32 do
  for j:=1 to 32 do
  begin
    map[i, j].GOBitmap:=TBitmap.Create;
    map[i, j].GOBitmap.LoadFormFile('image.bmp'); // это самый распрастранёный тайл 
                //  в игре например трава
    map[i, j].GODispX:=(i-1)*map[1, 1].GOBitmap.Width;
    map[i, j].GODispY:=(j-1)*map[1, 1].GOBitmap.Height;
  end;
  // дальше выборочно расставляешь те тайлы которые тебе нужны
  map[4, 6].GOBitmap.LoadFromFile('image2.bmp');
  map[9, 4].GOBitmap.LoadFromFile('image2.bmp');
  // и так далее
Кстати тебе на код в книге Ламота смотреть и не надо там очень много полезной теории которую тебе и нужно понять.
Да чуть не забыл размеры всех картинок должны быть одинаковыми.
RomiKon вне форума Ответить с цитированием
Старый 15.04.2011, 23:05   #16
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

[BeNdeR], без обиды, но ты с места в карьер рвешься, не понимая ровным счетом ничего. В архиве учебник, прочти весь и поупражняйся, потом приступишь к игре. Тема "Уроки по созданию игр для новичков" предполагает, что материал по элементарным азам в Delphi уже пройден.
Вложения
Тип файла: zip Учебник_Delphi_для_начинающих.zip (5.02 Мб, 12 просмотров)
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 15.04.2011, 23:12   #17
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Подозреваю, что товарищ просто не умеет строить алгоритмы. Без обид но ты бы начал для начала с азов.
P.S. А что ты хоть делаешь? И в каких целях?

Последний раз редактировалось RomiKon; 15.04.2011 в 23:40.
RomiKon вне форума Ответить с цитированием
Старый 16.04.2011, 10:47   #18
[BeNdeR]
Пользователь
 
Аватар для [BeNdeR]
 
Регистрация: 14.04.2011
Сообщений: 74
По умолчанию

А я и не спорю что я мало что знаю! А игру создаю на курсовую! Поэтому и не имею возможности прочитать всё от корки до корки!
[BeNdeR] вне форума Ответить с цитированием
Старый 16.04.2011, 15:01   #19
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

На форуме самый первый раздел "Помощь студентам" http://www.programmersforum.ru/forumdisplay.php?f=31 ...если нет времени, то тебе туда.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 16.04.2011, 19:34   #20
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

Цитата:
for i:=1 to 32 do
for j:=1 to 32 do
begin
map[i, j].GOBitmap:=TBitmap.Create;
map[i, j].GOBitmap.LoadFormFile('image.bmp') ; // это самый распрастранёный тайл
// в игре например трава
map[i, j].GODispX:=(i-1)*map[1, 1].GOBitmap.Width;
map[i, j].GODispY:=(j-1)*map[1, 1].GOBitmap.Height;
end;
// дальше выборочно расставляешь те тайлы которые тебе нужны
map[4, 6].GOBitmap.LoadFromFile('image2.bmp' );
map[9, 4].GOBitmap.LoadFromFile('image2.bmp' );
// и так далее

RomiKon, а зачем в каждую ячейку карты загружать картинку??? Будут же повторно загружаться одни и те же изображения. Или я что-то не понимаю?

P.S. Мне кажется, что этот код:

Код:
Type
TGameObject = record
  GOBitmap: TBitmap; // картинка объекта
  GOName: String; // название объекта в игре
  GODispX: Word; // смещение картинки по-X
  GODispY: Word; // смещение картинки по-Y
end;
вообще написан для объектов, а не для текстур. Об этом говорит хотя бы поле 'GOName', потому что ячейкам не нужны имена.

Последний раз редактировалось ZotaC; 16.04.2011 в 19:37.
ZotaC вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Treiner для игры XreniX C# (си шарп) 3 22.02.2011 11:42
Навигация. Карта для игры. Abuhamed PHP 3 17.01.2011 20:16
Карта для стратегии sincemix Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 21.07.2010 23:54
Карта Карно для 2 и 3 переменных Nasik Помощь студентам 0 24.05.2010 11:54
Видео карта не выдерживает игры Altera Компьютерное железо 11 13.01.2009 21:53