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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2013, 00:04   #1
O m n i s
Пользователь
 
Регистрация: 07.12.2011
Сообщений: 64
Восклицание Дайте совет.TET.

Пишу платформер для своего телефона, эх идей много реализация страдает.
Начнем по порядку:
Вообщем платформер как платформер. Все помнят марио?
Массив карты мира я хряню в файле допустим map.txt
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaa1111aaaaaaaaaaaaaaaaaaaaaa
aa55aaaaa1111aaaaaaaaaaaaaaaaaaaaaa
aa55aaaaa1111aaaaaaaaaaaaaaaaaaaaaa
11111111111111111111111111111111111

Допусти "1" это поверхность
"5"наш игрок(его размер2х2), ну и "a"- пустота
Как лучше обрабатывать прикосновения/взаимодействие игрока с миром?
Просто я начал думать, что то пытался сделать, но все это приводило к тому что все удалял.
Да и вообще следует ли хранить карту в таком виде?
Я думал о том, а что если в файлике будут просто координаты кубических объектов(платформа на которой мы стоим, припятсвия в воздухе), ну а потом просто при каждой попытки двинуться или пригнуть, просчитывать точки на возможное касание со всеми объектами, но гуманно ли это? А что если карта будет очень и очень длинной,таких объектов будут 1000, то думаю что такой алгоритм будет влиять на скорость работы простенького телефона.
Вообщем дайте совет. Очень жду.
O m n i s вне форума Ответить с цитированием
Старый 14.05.2013, 01:04   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Цитата:
Я думал о том, а что если в файлике будут просто координаты кубических объектов
Я б так и сделала. Я даже не представляю, как можно сделать взаимодействие предметов на карте, которую вы предоставили. Вам все равно придется просчитывать на касание.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 14.05.2013, 01:26   #3
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Подход неверный. Персонажи не должны быть указаны в карте цифрами. Шаблон только для отрисовки задника аркады. Объекты прописаны отдельно с привязкой к месту, "живут" в отдельном массиве оперативного пространства (чтобы не затирать карту). Т.е. нужен массив в котором будут просчитываться движения объектов, а сверяться объекты будут по шаблону, что вы показали. Всё.

У меня есть исходник аркады, очень смахивающий на "Марио", условно то, что надо, но на Delphi, закачать?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 14.05.2013, 01:42   #4
O m n i s
Пользователь
 
Регистрация: 07.12.2011
Сообщений: 64
По умолчанию

С делфи не знаком на ты, но если можно хотелось бы посмотреть.
O m n i s вне форума Ответить с цитированием
Старый 14.05.2013, 01:54   #5
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Держи, только нужно переделать вывод задника, он тупо рисуется каждый такт заново. Задача - создать растровый буфер, куда будут отрисовываться задники по частям, т.е. при старте кусок, что на экране видно и затем при движении смещать изображение на экране дорисовывая вертикальные полосы карты, это снизит нагрузку на CPU. Сообразишь.
Вложения
Тип файла: zip Аркада с длинной картой.zip (198.6 Кб, 16 просмотров)
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 14.05.2013, 02:26   #6
O m n i s
Пользователь
 
Регистрация: 07.12.2011
Сообщений: 64
По умолчанию

Ммм понравилось,Beermonza. Я понял что вы имели в виду на счет его доработки, но все же трогать я его не собираюсь, пусть останется таким каким он есть - примером.
Пока ждал ответов, я даже немного разобрался со своим многостадальным платформером.
Все же решил остановился на обработке соприкосновений в массиве, запускал на телефоне, работает и быстро и даже на большом Delay-е в движке.
А 5-ку(теперь она одна в массиве), я использую как точку старта игрока, и потом ее затираю что бы не воспринималось как припятсвие.
Пока все это творил родилась идея, своегообразного марио, хочу вертеть карту на 90% градусов при нажатие соответсвующей клавиши, нарисовал пару уровней, и получается некий платформер-квест, и это здорово, потому что час назад этого даже и в задумках небыло.
правда карта вертится не так как хотелось бы:
массив1[X, Y] и есть массив2[X, Y]
for X:=0 do 5 to
for Y:=0 do 5 tо
массив2[X, Y]:=массив1[Y, x];
for X:=0 do 5 to
for Y:=0 do 5 tо
массив1[X, Y]:=массив2[X,Y];
Но так карта поворачивается на 180% и зеркально, вопрос: Как сделать алгоритм поворота карты всегда на 90%? пока не могу сообразить
Сила идеи мыслей по истине самое прекрасное и невероятное на свете!
O m n i s вне форума Ответить с цитированием
Старый 14.05.2013, 06:38   #7
O m n i s
Пользователь
 
Регистрация: 07.12.2011
Сообщений: 64
Восклицание

Уже не надо, разобрался. Новый вопрос:
Не могу понять эту чертову библиотеку на MP Lib_ukey. Народ, если кто шарит, то будьте добры, ПРОСТОЙ БЕЗХИТРОСТНЫЙ пример обработки нажатия одновременно нескольких клавиш. Ибо лазил по прасторам интернета, смотрел, что люди пишу.. там лес для меня.
O m n i s вне форума Ответить с цитированием
Старый 14.05.2013, 21:58   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Одновременно нажать клавиши физически невозможно.
Но даже если это и удастся, то опрашиваются клавиши все равно по очереди, так что с точки зрения как аппаратной клавиатуры, так и программы, в которую с этой клавиатуры будут передаваться данные, все нажатия и отпускания клавиш происходят строго последовательно.
s-andriano вне форума Ответить с цитированием
Старый 15.05.2013, 00:24   #9
O m n i s
Пользователь
 
Регистрация: 07.12.2011
Сообщений: 64
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Одновременно нажать клавиши физически невозможно...
Да, ладно, умные все. Но все же я просил пример
O m n i s вне форума Ответить с цитированием
Старый 15.05.2013, 06:19   #10
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

http://programmersforum.ru/showthrea...tKeyboardState
Только там в примере оно задействуется в событии нажатия кнопки, а можно (и в какой-то мере логичнее) сделать в таймере
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дайте совет digital-stream HTML и CSS 3 09.07.2012 11:59
дайте совет! Cassius Общие вопросы Delphi 6 10.12.2011 02:43
Дайте совет Михаил70 Свободное общение 17 14.09.2009 20:52
Дайте совет! Arch100 Помощь студентам 2 11.10.2008 01:40