![]() |
|
|
![]()
|
|
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
подскажите, как организовать игровое поле размером 10 на 10?
|
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 5 Всего: 23 |
Легче всего пользоваться компонентом типа TDrawGrid: RowCount=10, ColCount=10.
Также можно свой компонент написать, можно вручную рисовать в канве, можно воспользоваться OpenGL/DirectX, ... |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
помогите преобразовать код с паскаля в билдер
|
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Примерно так:
Честно говоря, я подзабыл уже как организуются циклы в паскале, поэтому возможно надо вместо "<=" поставить "<" здесь i1<=max_i и здесь j1<=max_j -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 5 Всего: 23 |
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Спасибо!
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Помогите заставить двигаться крота и ящики! вот прога:
http://rapidshare.com/files/295030201/____...______.rar.html или подскажите как всеже сделать игровое поле, а то я тупо изображениями его построил. |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
подскажите как выполнить данный код:
for (int i=100;i<107;i++) { Imagei->Visible=false; } Надо чтоб все Image с 100 по 107 стали невидимыми |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
|
||||
|
|||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Огромное спасибо!!!!
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Подскажите, как сделать чтобы не вручную для Image1 загружать картинку?
Должно по моему быть вот так, но почему то не работает:
хотя так у меня на OpnDlg ругается. Например у меня картинка называется 'Крот' подскажите как написать. |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Вроде правильно
|
||||||
|
|||||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Еще раз скажу что надо: например у меня есть Image1. Если Image2->Top==80, то надо чтобы Image1 автоматически загрузила картинку например с такого пути C:\Users\Ratgunter\Desktoр
Это сообщение отредактировал(а) ratgunter - 31.10.2009, 18:18 |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
|
||||
|
|||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Выдает такую ошибку:
http://pixs.ru/showimage/1jpg_9070974_337452.jpg Правильно ли я все делаю?
Рисунок надо в формате jpeg или bmp? |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Правильно, но рисунок должен быть в формате, который поддерживает VCL (в разных версиях это разный набор форматов, но bmp поддерживают все). Кроме того у файла должно быть правильное расширение - VCL распознает формат файла по расширению |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Спасибо большое
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Еще вопросик: как сделать такую запись
Пишет, что Picture не является компонентом Control, ну или типа того. |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Надо привести типы более точно -
|
||||||
|
|||||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Еще раз огромнейшее спасибо за помощь!!!
|
|||
|
||||
| ratgunter |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Простите за кучу вопросов, но как сделать:
1) если я нажал на Image60, то поменять картинку.
После данного кода независимо от того, нажал я Image60 или нет, сразу загружается Крот2. 2) Как сравнить, чтобы не двигалось, если стена рядом:
HELP!!! Это сообщение отредактировал(а) ratgunter - 2.11.2009, 18:14 |
||||
|
|||||
| xvr |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
разумеется. OnClick - это event (т.е. указатель на процедуру). Если он присвоен, то if (Image60->OnClick) будет всегда выполняться. Что бы что то сделать при нажатии, это что-то надо поместить в функцию обработки события Click
|
||||||||
|
|||||||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Насчет первого вопроса сам разобрался, намудрил много
Насчет второго-просто хотел упростить алгоритм движения... |
|||
|
||||
| Platov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 23.7.2009 Репутация: 2 Всего: 2 |
Мне кажется проще поле хранить в массиве например int где на каждый тип клетки своё число. Все операции выполнять с этим массивом. А потом по массиву отрисовывать поле в специальной функции.
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Подскажите, как можно сделать таблицу рекордов. Счетчики у меня есть, мне надо результаты как то записать в файл. Помогите!
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
fprintf уже отменили? |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Да просто никогда в билдере ничеог в файл не записывал..
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Ну тогда по порядку:
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
подскажите идейки, как можно сделать редактор уровней.
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Вопрос такой:
Я делаю уровень в редакторе уровней. Сам редактор работает так: на панель закидываю много Image и им программно задаю картинки. Но как мне сохранить панель и открыть ее с моими Image' ами? Диалог SaveDialog сохраняет только Image, а хотелось бы чтоб полностью мою панель... Помогите!!! надо до 10 декабря доделать! |
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
вообще не правльный какой то подход.
1. игра это массив int - где каждая цифра отвечается свою ячейку и все 2. есть функция конторая рисует этот массив. и вот мой пример, даже не помню на чем написан. вроде C++ GDI+ VS2008 Это сообщение отредактировал(а) DenWPF - 20.11.2009, 18:49 Присоединённый файл ( Кол-во скачиваний: 10 )
_______.rar 31,24 Kb |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Ну а я может так хочу сделать) Ладно, буду думать сам...
|
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
ну мучайся)
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Подскажите как сделать таблицу рекордов.
У меня есть 10 уровней, для каждого уровня есть свой Label, для каждого уровня считаю количество сделанных шагов и для каждого Label в свойство Caption присваиваю значение. Как теперь эти значения сохранить, куда сохранить? Например на форме их сохранять в StringGrid? А подмкажите как эти значения сохранить в файле, а потом эти значения загружать в StringGrid. |
|||
|
||||
| xvr |
|
||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Мсье не ищет легких путей
|
||||||||||
|
|||||||||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
так стоп, а как же ты хранишь карты????точнеее где??
скажу что самое простое..хранить их в файле текстовом с своим расширением. очень удобно. |
|||
|
||||
| Platov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 23.7.2009 Репутация: 2 Всего: 2 |
Уже 2 человека говорят что подход не верен изначально. Если работать с массивом то всё это делается ОЧЕНЬ просто и редактор уровней тоже! Если начать сначала то можно и до 1 декабря успеть.
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Ну а где на форме этим массивом рисовать?
|
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 вот массив 4 на 4 проходишь по нему где 0 там рисуешь элемент соотвествующий 0. |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Да я понял, на форме то как этот массив сделать?
|
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
в плане на форме?
ты GDI+ знаешь что такое? |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Нет
|
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
а как ты рисуешь что то ?
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Через Image
|
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
ну вот и рисуй, тольо в нужных кординатах.
кордината картинки = размер * (х + y) вроде |
|||
|
||||
| Platov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 23.7.2009 Репутация: 2 Всего: 2 |
Лови мега пример рисования image с нужной картинкой в нужном месте.
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Подскажите, как сделать так, чтобы текстовый файл file.txt был всегда привязан к папке Sokoban. И как задать путь Sokoban\file.txt чтобы программа сама его находила, а не пришлось самому его прописывать.
|
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
Directory.GetCurrentDirectory - но это Сшарп =)) что то подобное и у тебя должно быть=)
|
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
|
||||
|
|||||
| Platov |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 23.7.2009 Репутация: 2 Всего: 2 |
Этот вариант лучше. Поверьте мне.
Как бы вы не запустили прогу, а её место на венике неизменно. А вот все остальные методы не дают 100% гарантии. хотя
скорее всего равноценен. Это сообщение отредактировал(а) Platov - 27.11.2009, 17:47 |
||||
|
|||||
| xvr |
|
||||||||||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Очень распространенное заблуждение. Пример:
|
||||||||||||||||||
|
|||||||||||||||||||
| Platov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 23.7.2009 Репутация: 2 Всего: 2 |
xvr, |
|||
|
||||
| ratgunter |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Ой как много всего, спасибо. Но что-то я немножко не понял. Я хочу написать НЕ
А вот так хочу написать, просто название папки, чтобы прога сама ее нашла и записала в нее:
|
||||
|
|||||
| xvr |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
|
||||||||
|
|||||||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Ругается на
AnsiString file_name(AnsiString n) Пишет: [C++ Error] Unit1.cpp(1085): E2108 Improper use of typedef 'AnsiString' |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Эта часть
Добавлено через 3 минуты и 22 секунды PS. Советы в конференции не надо трактовать как книгу по черной магии, которую надо вызубрить назубок, и не приведи господь ошибиться хоть в звуке Тут дают советы, и предполагается, что спрашивающий в состоянии их понять и применить, а не тупо скопировать к себе в код куда попало |
||||
|
|||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
прям блин в описание разделов "Тут дают советы, и предполагается, что спрашивающий в состоянии их понять и применить, а не тупо скопировать к себе в код куда попало "
сори за флуд |
|||
|
||||
| ratgunter |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Как говорится:"Не стыдно не знать - стыдно не учиться".
Еще один вопрос: Так работает все правильно
А можно ли сохранить не ряд целиком, а только один фрагмент, например
|
||||
|
|||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Нет. RecordTable->Cells[2][1] - это AnsiString, у него нет метода SaveToFile. Открывай файл обычным методом (fopen или ofstream), и printf (или <<) туда. |
||||
|
|||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Блин, подскажите пожалуйста без всяких насмешек:
У меня есть Label1 и у него в Caption записано число 7. Напишите плиз подробно, как это число записать в файл, а потом как его считать и загрузить например в Label2->Caption, при этом сделав все преобразования типов. Помогите пожалуйста!!!! |
|||
|
||||
| xvr |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
|
||||||||
|
|||||||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Спасибо.
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Простите за тупой вопрос:
А перед написанием этих строк, где и что надо прописать(например прога ругается на FILE и f) Блин ступил, надо добавить stdio.h да? Это сообщение отредактировал(а) ratgunter - 2.12.2009, 15:25 |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
У меня Label1->Caption==91;
А когда я открываю свой текстовый файл, то в нем не 91, а 17070136 Что это за цифры? |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Это адрес строки
|
||||
|
|||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Спасибо! Сохраняет нормально!
Добавлено через 4 минуты и 47 секунд Но теперь загружает из фала неправильно) как загрузить например цифру 7 и как загрузить например Имя игрока |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Читать тоже строкой в массив
|
||||
|
|||||
| ratgunter |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Т.е. вот этот код
надо написать вместо вот этого
Или как? Это сообщение отредактировал(а) ratgunter - 2.12.2009, 20:54 |
||||
|
|||||
| Platov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 23.7.2009 Репутация: 2 Всего: 2 |
может так легче будет...
и число и имя будут жить в одном файле (это намёк на то что не следует каждый Label сохранять в отдельном файле... сохрани всё что надо в один конфигурационный файл) Это сообщение отредактировал(а) Platov - 2.12.2009, 22:14 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Угу PS. Platov абсолютно прав по поводу сохранения всего в один файл (с помощью TStringList) |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Спасибо xvr и Platov!!!!
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Хочу сказать спасибо всем кто помогал. В игре у меня щас все работает. Осталось самое ужасное- редактор уровней.
Вообще что мне надо сделать: 1) Редактор уровней 2) Возможность сохранять созданные уровни, а потом их загружать. 3) К названию уровня добавлять имя создателя. Прошу всех помочь в создании. Сперва хочу понять как, на чем и где его размещать в билдере и сам алгоритм: 1) Создать txt файл, в котором будет 10 рядов по 10 столбцов. Пусть 1-ящик 2-стена 3-место для ящика 4-крот. Вопросы: Как этот txt файл загрузить на форму, как для каждой цифры загрузить картинку(например "Крот.jpg") Как потом это все двигать ну т.д. Прошу помочь, надо сдавать 13 декабря. |
|||
|
||||
| xvr |
|
||||||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Собственно сам уровень внутри редактора (и игры) лучше хранить в виде массива (2х мерного)
Запись в файл (параметр - имя создателя уровня):
|
||||||||||||||
|
|||||||||||||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Вопрос: я все же не пойму, ну запустил я билдер, у меня появилась пустая форма. И мне прям на ней создавать уровень?
|
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Что значит прям здесь? Вам нужно написать еще одну небольшую программу, или встроить в игру, редактор уровней. Для этого нужно найти подходящий компонент для реализации массива 10х10 и на его базе и писать всю визуализацию..... Для этого можно ,попробовать, динамически построить сетку из TImage. Тем самым Вы сможете графически отображать что будет находиться в каждой клетке , ну а выбор, что может быть в определенной ячейке, можно сделать через PopupMenu. -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Да я уже голову сломал, никак не могу редактор сделать, мож у кого-нибудь есть готовый пример....?
|
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
сек
Добавлено через 7 минут ни у кого под тебя готового редактора не будет -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Я думаю, что должно быть примерно так!
![]() Вот код кнопки заполнения Image:
Ну и не нужно забывать очищать массив, который создали при помощи new Это сообщение отредактировал(а) vikaz - 5.12.2009, 23:23 -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Ну вот просто нечеловеческое спасибо!!! Ща буду пробовать. кстати дизайн у меня похожий, а крот такойже(из польского мультика), только он в позе другой
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Значит я пока сделал возможность создавать уровень
http://pixs.ru/showimage/eskizjpg_7439707_372125.jpg теперь мне надо как-то прочитать мой массив из Image'ов и при нажатии на кнопку сохранить он должен записаться в файл вот в таком виде 1111111111 1000000001 1000020201 1001111001 1003111201 1000331001 1000000001 1000000001 1400000001 1111111111 где 0-пустота 1-стена 2-ящик 3-место для ящика 4-крот Вопрос: а как это сделать то??? |
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Если честно, я почему-то был уверен, что в Image сохраняется название загруженного изображения, но вроде это не так, в общем не нашел..... Наверное надо вводить еще один строковой массив в который параллельно будешь писать все изменения при построении уровня. Других предложений пока нет!
Добавлено через 1 минуту и 20 секунд ЗЫ. Фон у всех картинок сделай одинаковым, очень сильно бросается в глаза..... Добавлено через 5 минут и 34 секунды зы. зы А почему ты сразу не отображаешь в массиве изменения? Вот сразу как устанавливаешь картинку и пока ты знаешь, что и где ты размещаешь, сразу же и массиве отмечай, в чем сложность? -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Действительно, надо сразу записывать в массив
|
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Конечно int [i][j]; Автоматически ничего не бывает, пока не напишешь или кто-то не напишет! Тебе надо сохранять не только сам массив, но и доп. информацию: Имя создателя (автора), и название уровня. Я бы порекомендовал создать структуру, в ней описать все типы и сохранять саму структуру. Ну а при чтении уровня, все записываем в структуру, а потом уже и визуализируем на форме, все что было в файле! Извини, весь механизм описать не могу, нет у меня этого под рукой, а так не помню.
Вроде как-то так! После чего открываешь файл на запись как двоичный и записываешь всю структуру целиком. ЗЫ. Делал такое очень давно, и не все помню... Только идея! -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Дело в том что структуры я не знаю((((
|
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
А там нет ничего сложного. ИМХО так будет правильнее... Ну тогда через printf выводи посимвольно в файл.
Добавлено через 1 минуту и 23 секунды ЗЫ. Как в мультфильме: "...Лучше день потерять, а потом за 5 минут долететь....." -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Я тебе уже писал как, вплоть до функций чтения и записи - http://forum.vingrad.ru/index.php?showtopi...t&p=2038552 |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Да я это помню, а как массив то записать?
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Функция SaveLevelToFile в моем посте |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
а можно показать пример как массив через printf записать в файл, а тоя делаю а у меня только одна цифра записывается(((
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Массив - только поэлементно, в цикле. Сразу весь можно ТОЛЬКО в том случае, если этот массив есть символьная строка (т.е. массив char'ов, содержащий только печатаемые символы и завершенный кодом 0) |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Типа вот этого?
Я говорю, не умею работать с файлами(((( |
|||
|
||||
| xvr |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Не совсем, типа вот этого
|
||||||||
|
|||||||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
спасибо
|
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Не судите строго, но я записал массив в файл
|
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
|
||||
|
|||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Вот код:
Когда я жму клавишу D (Key==68) у меня Image сразу передвигается к правому краю, хотя по идее еге координаты должны увеличиться лишь на 40. Такая же ситуация с S(Key==83). Другие клавиши A и W работают нормально. Ничего не понимаю |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Твой if (level[i][j+1]==0) внутри if (Key==68) будет срабатывать на каждой итерации цикла по j |
|||
|
||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
У меня по краям карты стоят стены и за них он не выходит, так что память в порядке
Просто влево идет нормально : на одно нажатие клавиши Image смещается на 40 влево, а когда иду вправо, то Image сразу уходит до стены вправо(((( А вообще уровень я сохранил в файл успешно, загрузил из него тоже успешно. Вот теперь пытаюсь сделать, чтобы уровень был рабочим. Но что-то не могу понять как это сделать без огромных циклов Это сообщение отредактировал(а) ratgunter - 10.12.2009, 18:40 |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Он не по стенам, а по памяти фигачит
|
||||||
|
|||||||
| ratgunter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 17.11.2008 Репутация: нет Всего: нет |
Нужно хранить (в отдельных переменных) координаты крота (0-10 по х и у). При нажатии клавишь вычислять новые координаты и смотреть в массиве с уровнем, можно ли туда перейти. Если можно - перемещать Image и обновлять координаты
Я так и делаю |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Тот кусок кода, который ты приводил, делает явно не так
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |