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

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

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


Ответ
 
Опции темы
Старый 13.02.2015, 18:24   #1
NIKOLAYY2
Форумчанин
 
Регистрация: 24.12.2014
Сообщений: 220
По умолчанию Массив трубы

Есть массив 24 х 16 такого вида:

--ss----ss----ss----ss--
--ss----ss----ss----ss--
--ss----ss----ss----ss--
--ss----ss----ss----ss--
--ss----ss----------ss--
--------ss----------ss--
--------ss----------ss--
--------ss----ss----ss--
--ss----ss----ss----ss--
--ss----------ss--------
--ss----------ss--------
--ss----------ss--------
--ss----ss----ss----ss--
--ss----ss----ss----ss--
--ss----ss----ss----ss--
--ss----ss----ss----ss--

Загружаю его из файла получаю на форме вот такую картину: зеленые трубы, черный фон.
Карта получает сдвиг скроллится влево. То есть птица у меня в проэкте не летит!
Она влево- вправо находится постоянно на одной координате X а вот по координате Y птица подлетает на определенный промежуток пискелей, затем падает, пока снова не сделает "взмах крыльями".

Вот в чем вопрос, я не хочу обрабатывать много данных, иначе я бы сделал массив 480 на 16 например.
"Новая труба" должна генерироваться автоматически по мере сдвига экрана, то есть массив справа должен дописаться какими то значениями через определенный промежуток времени.

Какой алгоритм можно придумать? У меня даже пока идей нету..

Если что-то непонятно сказал можно Flappy Bird в гугле набрать.
Изображения
Тип файла: jpg 1111.jpg (24.2 Кб, 124 просмотров)
Тип файла: jpg 2222.jpg (67.1 Кб, 147 просмотров)

Последний раз редактировалось NIKOLAYY2; 13.02.2015 в 18:29.
NIKOLAYY2 вне форума Ответить с цитированием
Старый 13.02.2015, 18:38   #2
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 302
По умолчанию

У тебя птица под спайсом)))
ДралсяСошибками вне форума Ответить с цитированием
Старый 13.02.2015, 19:16   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,260
По умолчанию

не надо массивов. делай список
Sibedir вне форума Ответить с цитированием
Старый 13.02.2015, 19:22   #4
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Трубы идут парами. Соответственно нужно описать каждый зазор. Чтоб описать зазор, нужно знать только его начало, и его длину. Хватит одного байта, если разложить на полубайты. А Вы под эти данные аж 16 символов отвели.
WinCoder вне форума Ответить с цитированием
Старый 13.02.2015, 19:22   #5
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,260
По умолчанию

и еще, хранить нужно в повернутом виде. т.е. в строке Y, а следующая строка - это следующий X.
а вообще поддерживаю WinCoder'а.

Последний раз редактировалось Sibedir; 13.02.2015 в 19:25.
Sibedir вне форума Ответить с цитированием
Старый 13.02.2015, 19:35   #6
NIKOLAYY2
Форумчанин
 
Регистрация: 24.12.2014
Сообщений: 220
По умолчанию

ДралсяСошибками
Птица- это просто имага там

Sibedir
Цитата:
и еще, хранить нужно в повернутом виде. т.е. в строке Y, а следующая строка - это следующий X.
То есть я понял мне нужно развернуть записи в блокноте на 90 градусов?
А зачем так же неудобно наверно будет?

WinCoder
Вы имели ввиду добавлять трубы поштучно? Как на картинке типа сделать разные массивы под трубы с перемычками в разных местах и случайным образом из подгужать нужное количество в нужное время?

Цитата:
Трубы идут парами. Соответственно нужно описать каждый зазор.
Как зазор описать? в отдельных массивах или еще как?
Изображения
Тип файла: jpg 3333.jpg (98.3 Кб, 153 просмотров)

Последний раз редактировалось NIKOLAYY2; 13.02.2015 в 19:39.
NIKOLAYY2 вне форума Ответить с цитированием
Старый 13.02.2015, 19:46   #7
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,260
По умолчанию

Цитата:
Сообщение от NIKOLAYY2 Посмотреть сообщение
Sibedir

То есть я понял мне нужно развернуть записи в блокноте на 90 градусов?
А зачем так же неудобно наверно будет?
куда удобнее. можно в один файл весь лабиринт записать. прочитал строчку - нарисовал столбик.
Цитата:
WinCoder
Вы имели ввиду добавлять трубы поштучно? Как на картинке типа сделать разные массивы под трубы с перемычками в разных местах и случайным образом из подгужать нужное количество в нужное время?
нет. wincoder имел в виду, что то, что можно хранить в одном байте, вы храните в куче байт.
Sibedir вне форума Ответить с цитированием
Старый 13.02.2015, 19:50   #8
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Цитата:
Вы имели ввиду добавлять трубы поштучно? Как на картинке типа сделать разные массивы под трубы с перемычками в разных местах и случайным образом из подгужать нужное количество в нужное время?
Я имел в виду методику описания длины каждой трубы. Каждый промежуток времени в зависимости от скорости движения птицы программа получает один байт из массива, раскладывает его на полубайты, и рассчитывает характеристики новой пары труб. Первая пара труб удаляется, остальные пары смещаются влево на одну клетку, свежая пара отрисовывается согласно расчётам. Задача выполнена?
WinCoder вне форума Ответить с цитированием
Старый 13.02.2015, 20:08   #9
NIKOLAYY2
Форумчанин
 
Регистрация: 24.12.2014
Сообщений: 220
По умолчанию

Не сложновато че-то непонял.. (
NIKOLAYY2 вне форума Ответить с цитированием
Старый 13.02.2015, 20:11   #10
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,260
По умолчанию

сам же писал
Цитата:
я не хочу обрабатывать много данных,
иначе я бы сделал массив 480 на 16 наприме
Sibedir вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нарисовать движущийся автомобиль: колеса при этом должны вращаться, и должен идти дым из выхлопной трубы. killere0 Паскаль, Turbo Pascal, PascalABC.NET 2 18.06.2012 15:36
Нарисовать домик из трубы идёт дым!!! (Турбо Си) ADATAS Помощь студентам 0 06.06.2012 13:01
завтра зачет трубы горят madelion74 Помощь студентам 1 27.12.2011 20:45
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны Koksa Помощь студентам 0 10.10.2011 11:26