forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Delphi (http://forum.boolean.name/forumdisplay.php?f=66)
-   -   Нужна помошь) (http://forum.boolean.name/showthread.php?t=11786)

im_zorg 24.01.2010 17:08

Нужна помошь)
 
Нужно создать простенькое приложение которое создавала файлы типа map.txt примерно с таким содержанием
111111
122221
132221
133311
111111
интерфейс желательно чтобы был схож с тык.

WaReZ_MEN 24.01.2010 17:50

Ответ: Нужна помошь)
 
Это не фриланс форум задавай конкретный вопрос...

im_zorg 24.01.2010 17:52

Вложений: 1
с чего начать?

вот у меня есть редактор но я хочу делать карты визуально как bounce redactor

WaReZ_MEN 24.01.2010 18:18

Ответ: Нужна помошь)
 
Суда по тому что делает эта прога все делается элементарно буквально в 4-8 строк кода...
Первое что делаешь узнаешь размер картинки в pixel потом перебираешь каждый pixel если он черный пишем в файл 0 если другой то 1 все это в цикле...

im_zorg 24.01.2010 18:27

Ответ: Нужна помошь)
 
дело в том что я хочу делать это визуально то есть появляться прога там допустим слева тайлы выбираешь ставишь и тд потом нажимаешь создать скажем map.txt и она этот массив должна преобразовать в map.txt примерно
111111
122221
132221
133311
111111

jimon 24.01.2010 18:43

Ответ: Нужна помошь)
 
im_zorg
вариантов тут не много, ты или сам пиши или деньги плати

WaReZ_MEN 24.01.2010 18:48

Ответ: Нужна помошь)
 
Ну да все верно.
Береш масив скажем 10х10 каждый тамл пусть будет 20 пикселеи и того получаем карту в пикселях 200х200 масив (map.txt) будеи иметь 10 на 10 цифр... как тока в графическом режиме ставишь тайл смотри его координаты делишь на 20 по X и Y получаешь координаты в массиве в эту ячейку пишешь какойто номер соответствующий этому тайлу затем тупо пишешь в файл.

ViNT 24.01.2010 22:36

Ответ: Нужна помошь)
 
Набор тайлов - один TDrawGrid, поле редактора - второй TDrawGrid.
Плюс TStringList для хранения данных карты.
При задании размера карты добавляем в пустой TStringList H строк длиной W, состоящих из нулей, где H и W - высота и ширина поля.
-Загружаем в первый грид тайлы.
-OnClick второго - копируем в текущую клетку второго изображение из выбранной клетки первого + пишем номер тайла в TStringlist по аресу Items[x][y], где x и y - выбранная клетка на поле.
-StringList.SaveToFile('map.txt'); - сохраняем готовую карту.
Все.

im_zorg 28.01.2010 18:26

Ответ: Нужна помошь)
 
а можно код я уж разберусь

ViNT 28.01.2010 19:19

Ответ: Нужна помошь)
 
Вложений: 1
Вот, кусок одного незавершенного проекта.
Писал давно, приводить в порядок времени нет.
Собственно редактор карт находится в модуле uLvlEditor.pas.
Данные о карте заносятся в TStringGrid, поскольку планировалось хранить много данных о каждой клетке. Вообще, там все слишком сложно сделано - писалось с расчетом на возможное расширение функционала, можно сделать гораздо проще и лучше.

im_zorg 28.01.2010 20:02

Ответ: Нужна помошь)
 
а где pngimage скачать?

im_zorg 28.01.2010 20:12

Ответ: Нужна помошь)
 
у меня нехрена не робит((( даже не комплитса

im_zorg 28.01.2010 20:30

Ответ: Нужна помошь)
 
Вложений: 1
Мож кто перегнать на дельфи с free pascal?

ViNT 28.01.2010 23:02

Ответ: Нужна помошь)
 
Вложений: 1
Цитата:

Сообщение от im_zorg (Сообщение 135047)
а где pngimage скачать?

Вот.

im_zorg 29.01.2010 17:36

Ответ: Нужна помошь)
 
Цитата:

Сообщение от ViNT (Сообщение 135103)
Вот.

а вот это что? Вчера 16:12
im_zorg
Цитата:

Сообщение от im_zorg (Сообщение 135103)
у меня нехрена не робит((( даже не комплитса


ViNT 29.01.2010 17:54

Ответ: Нужна помошь)
 
Цитата:

Сообщение от im_zorg (Сообщение 135210)
а вот это что? Вчера 16:12
im_zorg

Ну как обычно - что значит "не компилится"?
Какие ошибки, в каких модулях?

im_zorg 29.01.2010 18:01

Ответ: Нужна помошь)
 
в pngimahge gonit 4to-to

ViNT 29.01.2010 19:14

Ответ: Нужна помошь)
 
Цитата:

Сообщение от im_zorg (Сообщение 135215)
в pngimahge gonit 4to-to

Вообще надо распаковать весь архив в папку Lib, должно работать.

WaReZ_MEN 29.01.2010 19:36

Ответ: Нужна помошь)
 
Цитата:

Сообщение от im_zorg (Сообщение 135215)
в pngimahge gonit 4to-to

компилятор прям так и пишет????
А пути прописали в настройках?
вообще хочешь помощи проси как положено а не короткими фразами... тут телепатов нет...

im_zorg 29.01.2010 20:26

Ответ: Нужна помошь)
 
Цитата:

Сообщение от WaReZ_MEN (Сообщение 135229)
компилятор прям так и пишет????

ага)))

im_zorg 29.01.2010 20:27

Ответ: Нужна помошь)
 
Цитата:

Сообщение от ViNT (Сообщение 135226)
Вообще надо распаковать весь архив в папку Lib, должно работать.

а я блин через components заливал((((

im_zorg 18.02.2010 16:14

Ответ: Нужна помошь)
 
Вложений: 1
написал я свой редактор только он пишет что resourse TForm1 not found.
Вот исходник помогите пожалуйста он всё комлит это появляется когда программа runing.

ViNT 18.02.2010 20:34

Ответ: Нужна помошь)
 
Конечно будет ругаться на отсутствие формы.
Ее нужно прилинковать к Unit1 директивой {$R *.dfm}

im_zorg 26.03.2010 20:21

Ответ: Нужна помошь)
 
Вложений: 2
Помогите ещё раз. Тот редактор что я сделал при картинке(карты) 500х500 он делает в map.txt всего 256х500 почему так???
Выложил Исходник плюс Результат работы мидлета.

WaReZ_MEN 28.03.2010 10:46

Ответ: Нужна помошь)
 
im_zorg, ты жешь нафига использовать переменную типа
Код:

map: shortstring;
shortstring имеет максимально доступную длину 255 символов. а так как ты в переменную пытался всунуть 500 существенно они не лезли...
Использовал бы вообще число (Integer)


Код:

procedure TForm1.Button1Click(Sender: TObject);
begin
    bmp:=TBitmap.Create;
    bmp.LoadFromFile('map.bmp');
    if (bmp.Width>1000) or (bmp.Height>1000) then MessageBox(0,'Bitmap is too big!', nil, MB_OK or MB_ICONEXCLAMATION);
    AssignFile(f,'map.txt');
    Rewrite(f);
    for j:=0 to bmp.Height-1 do
    begin
      map:='';
      for i:=0 to bmp.Width -1 do
      begin
        c:=bmp.Canvas.Pixels[i,j];
        case c of
        $000000: map:='0';  // черный
        $0000FF: map:='1';  // красный
        $00FF00: map:='2';  // зеленый
        $00FFFF: map:='3';  // желтый
        $FF0000: map:='4';  // синий
        $FF00FF: map:='5';  // фиолетовый
        $FFFF00: map:='6';  // бирюзовый
        $FFFFFF: map:='7';  // белый
        end;
    WriteLn(f,map);
      end;
     
    end;
    CloseFile(f);
    halt;
end;

P.S. Дельфи у меня щас не установлена писал в блокноте но все должно работать.

im_zorg 30.03.2010 20:23

Ответ: Нужна помошь)
 
пасяб только я map: shortstring; зделал в map: string;
и ещё забыл что это не висуалбейсик день не мог сделать((А надо было всего onclick поставить ту процедуру))

WaReZ_MEN 31.03.2010 10:31

Ответ: Нужна помошь)
 
Цитата:

Сообщение от im_zorg (Сообщение 143672)
пасяб только я map: shortstring; зделал в map: string;
и ещё забыл что это не висуалбейсик день не мог сделать((А надо было всего onclick поставить ту процедуру))

Для "пасяб" есть кнопочка специальная ;)
Если что обращайся :)

im_zorg 31.03.2010 12:07

Ответ: Нужна помошь)
 
Лови два +


Часовой пояс GMT +4, время: 05:16.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot