|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.05.2013, 00:04 | #1 |
Пользователь
Регистрация: 07.12.2011
Сообщений: 64
|
Дайте совет.TET.
Пишу платформер для своего телефона, эх идей много реализация страдает.
Начнем по порядку: Вообщем платформер как платформер. Все помнят марио? Массив карты мира я хряню в файле допустим map.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaa1111aaaaaaaaaaaaaaaaaaaaaa aa55aaaaa1111aaaaaaaaaaaaaaaaaaaaaa aa55aaaaa1111aaaaaaaaaaaaaaaaaaaaaa 11111111111111111111111111111111111 Допусти "1" это поверхность "5"наш игрок(его размер2х2), ну и "a"- пустота Как лучше обрабатывать прикосновения/взаимодействие игрока с миром? Просто я начал думать, что то пытался сделать, но все это приводило к тому что все удалял. Да и вообще следует ли хранить карту в таком виде? Я думал о том, а что если в файлике будут просто координаты кубических объектов(платформа на которой мы стоим, припятсвия в воздухе), ну а потом просто при каждой попытки двинуться или пригнуть, просчитывать точки на возможное касание со всеми объектами, но гуманно ли это? А что если карта будет очень и очень длинной,таких объектов будут 1000, то думаю что такой алгоритм будет влиять на скорость работы простенького телефона. Вообщем дайте совет. Очень жду. |
14.05.2013, 01:04 | #2 | |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
Цитата:
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
|
|
14.05.2013, 01:26 | #3 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Подход неверный. Персонажи не должны быть указаны в карте цифрами. Шаблон только для отрисовки задника аркады. Объекты прописаны отдельно с привязкой к месту, "живут" в отдельном массиве оперативного пространства (чтобы не затирать карту). Т.е. нужен массив в котором будут просчитываться движения объектов, а сверяться объекты будут по шаблону, что вы показали. Всё.
У меня есть исходник аркады, очень смахивающий на "Марио", условно то, что надо, но на Delphi, закачать?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
14.05.2013, 01:42 | #4 |
Пользователь
Регистрация: 07.12.2011
Сообщений: 64
|
С делфи не знаком на ты, но если можно хотелось бы посмотреть.
|
14.05.2013, 01:54 | #5 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Держи, только нужно переделать вывод задника, он тупо рисуется каждый такт заново. Задача - создать растровый буфер, куда будут отрисовываться задники по частям, т.е. при старте кусок, что на экране видно и затем при движении смещать изображение на экране дорисовывая вертикальные полосы карты, это снизит нагрузку на CPU. Сообразишь.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
14.05.2013, 02:26 | #6 |
Пользователь
Регистрация: 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%? пока не могу сообразить Сила идеи мыслей по истине самое прекрасное и невероятное на свете! |
14.05.2013, 06:38 | #7 |
Пользователь
Регистрация: 07.12.2011
Сообщений: 64
|
Уже не надо, разобрался. Новый вопрос:
Не могу понять эту чертову библиотеку на MP Lib_ukey. Народ, если кто шарит, то будьте добры, ПРОСТОЙ БЕЗХИТРОСТНЫЙ пример обработки нажатия одновременно нескольких клавиш. Ибо лазил по прасторам интернета, смотрел, что люди пишу.. там лес для меня. |
14.05.2013, 21:58 | #8 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Одновременно нажать клавиши физически невозможно.
Но даже если это и удастся, то опрашиваются клавиши все равно по очереди, так что с точки зрения как аппаратной клавиатуры, так и программы, в которую с этой клавиатуры будут передаваться данные, все нажатия и отпускания клавиш происходят строго последовательно. |
15.05.2013, 00:24 | #9 |
Пользователь
Регистрация: 07.12.2011
Сообщений: 64
|
|
15.05.2013, 06:19 | #10 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
http://programmersforum.ru/showthrea...tKeyboardState
Только там в примере оно задействуется в событии нажатия кнопки, а можно (и в какой-то мере логичнее) сделать в таймере |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дайте совет | 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 |