Форум: "Игры";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
ВнизХочу написать игру лоде-рунер(с редактором карт)на движке DelphiX Найти похожие ветки
← →
Jus (2004-09-25 12:01) [40]Небольшая техническая проблема произошла! Вырубили свет на секунду какраз тогда, когда я нажал сохранить всё, Unit1.pas уцелел, а вот *.dpr пострадал. Придётся восстанавливать, а в DXImaeList загружать все картинки и переименовывать каждую как было, на это уйдёт не больше часа, а может быть получаса, это не проблема, но всё равно не приятно!:(
← →
Jus (2004-09-25 12:18) [41]
> cyborg © (25.09.04 10:44) [38]
> Кстати, разрешение экрана 1024х768 лучше сделай, чтобы много
> помещалось и красиво было.
Так то красивее будет, но игок чоторого я прорисовывал до каждого пикселя на этом разрешении будет маленький на 15"мониторе (у меня например 15"ЖК монитор), и не разглядеть мою старательную прорисовку объектов 32х32. Я год учился в художественной школе давно, потом бросил:) // это я так к слову)
Ну наверное так и будет - 1024х768.
← →
Servelat © (2004-09-25 12:30) [42]2 Jus [40]
Если тока .dpr пострадал, то нафига какие-то имейдж листы перегружать и т.п.? Если .dfm файл цел, то все картинки с именами уже там. Содержимое .dpr файла угадать очень легко, зная, что ты пишешь юзая DelphiX, там все по умолчанию. Так что в случае утери только .dpr файла все восстанавливается максимум за 3 минуты.
Давай пиши, интересно поглядеть, что выйдет. Успеха!
← →
cyborg © (2004-09-25 15:10) [43]
> [40] Jus (25.09.04 12:01)
Это всё тебе знаки свыше, бросай ты этот DelphiX!
А ты всё никак не поймёшь.
;)
← →
Jus (2004-09-25 16:33) [44]
> Это всё тебе знаки свыше, бросай ты этот DelphiX!
> А ты всё никак не поймёшь.
Всё равно его не брошу - потому что он хороший!:)
> Servelat © (25.09.04 12:30) [42]
> Если тока .dpr пострадал, то нафига какие-то имейдж листы
> перегружать и т.п.?
Уже всё восстановлено.
> Давай пиши, интересно поглядеть, что выйдет. Успеха!
Спасибо!)
← →
Jus (2004-09-28 16:09) [45]У меня в "Не лоде рунере"(не в редакторе:)) по массиву карту заполняли случайные объекты, ну чтобы мне для наглядности смотреть объекты. Сейчас почти закончил редактор карт(ошибок нету)!, остались мелочи( меню, новая карта, открыть карту, сохранить карту как...). Теперь сделаю карту и буду тестить плэера и объекты на взаимодействия "с окружающей средой".
Два дня потратил на отрисовку объектов (32х32) как надо, и их анимацию, потом незнаю где мне накачать звуков для игры :( , у меня их в наличии с дюжину:ходьба 1 плаера"топ-топ1";
, где достать?(
ходьба 2 плаера"топ-топ2";
по лестнице1, по лестнице2;
ходьба паука-мины,
взрыв,
удар кувалдой по кирпичу,
падает1,
падает2,
умер1,
умер2,
турель,
пресс,
подобрал жизнь+...
а надо ещё шотган, телепорт и т.д.
...и чтоб много не весили?)
/////////////////////////////////////////////////////////
P.S.
Кстати сделано из 60 задуманных объектов нарисовано 45 шт. "и из 88 возможных(т.к. редактор и его панель редактирования расчитана на 88 объектов)"
Всего картинок (объектов с анимацией + те которые не для редактирования, такие как взрыв и прочее) получилось 219шт. У одного только плеера 45шт, ито надо около 60 или чуть больше . Кто нибудь хочет помочь дорисовать остальные объекты? :)
← →
Jus (2004-09-28 22:03) [46]
> Jus (24.09.04 23:19) [35]
> Ждите к на следующей неделе новую супер игру (скорее демо)"Не
> лоде рунер", так она и будет называтся!
Извеняюсь за поспешные выводы. Дату выхода переношу на 15.10.04 примерно, т.к. по стечению обстоятельств я завтра уеду на неделю в Самару по делам, вернусь обратно 05.10.04!
:(
← →
Servelat © (2004-09-29 07:49) [47]
> Извеняюсь
извИняйся через букву "И" плиз ;).
← →
МЯУ (2004-09-29 11:36) [48]
> Jus (28.09.04 16:09) [45]
а зачем кувалдой по кирпичу бить?
я в "лоде рунер" не играл, можно кратко изложить суть игры.
зы: рисовать помог бы, но, блин, не умею :) сам мучаюсь.
← →
Jus (2004-09-29 13:15) [49]
> Jus (28.09.04 22:03) [46]
>
> > Jus (24.09.04 23:19) [35]
> > Ждите к на следующей неделе новую супер игру (скорее демо)"Не
>
> > лоде рунер", так она и будет называтся!
>
> Извеняюсь за поспешные выводы. Дату выхода переношу на 15.10.04
> примерно, т.к. по стечению обстоятельств я завтра уеду на
> неделю в Самару по делам, вернусь обратно 05.10.04!
> :(Поездка отменяется, блин, начальник не отпускает, хотел на машине туда и обратно, но придётся на самолёте на выходных (так быстрее). О блин, жизнь! Только уже не мне лететь, а другу.
> МЯУ (29.09.04 11:36) [48]
>
> > Jus (28.09.04 16:09) [45]
>
>
> а зачем кувалдой по кирпичу бить?
> я в "лоде рунер" не играл, можно кратко изложить суть игры.
>
> зы: рисовать помог бы, но, блин, не умею :) сам мучаюсь.
Ну, чтоб разбить кирпич:)
Объекты все у меня 32х32 как я уже писал, есть кирпичи, они могут быть как стенами, так и полом и потолком. К примеру тебя окружают со всех сторон монстры... быстро выбираеш кувалду, пробиваеш кирпичный пол, и сматываешся. Ну можно пристрелить их если ружьё и патроны есть:)
← →
Jus (2004-09-29 13:17) [50]Кстати могу уже показать скриншот:)
← →
cyborg © (2004-09-29 13:25) [51]покажи.
← →
cyborg © (2004-09-29 13:26) [52]Покажи.
← →
Jus (2004-09-29 13:55) [53]Уже второй раз пытаюсь отправить сообщение и в результате получаю:
Internal Server Error :(
> cyborg © (29.09.04 13:26) [52]
> Покажи.
Я не умею:)
Может я тебе скину на мыло, а ты его от моего имени в этой ветке опубликуеш?:) согласен?
← →
cyborg © (2004-09-29 14:55) [54]присылай
← →
Servelat © (2004-09-29 17:31) [55]Ну и где обещанный скрин?
← →
Jus (2004-09-29 19:59) [56]Была ошибка сервера, не мог в интернет залезть!(
Тока щас соединился нормально, ато "Невозможно отобразить страницу"(
> cyborg © (29.09.04 14:55) [54]
> присылай
Щас прям отправлю на cyborg@hotbox.ru, ок!
← →
Jus (2004-09-29 20:10) [57]Уже отправлено!
← →
Jus (2004-09-29 22:31) [58]Подскажите как мне лучше сохранить карту?
ScrMap:array[1..32,1..20] of string;
MapFile:TextFile;
Var MapFx,MapFy:integer;
Я делаю к примеру так(Решил в текстовом файле сохранить)if IsButton3 in Form1.DXInput.States then begin // кнопкой F12
AssignFile(MapFile,"Map0.nlr");
Rewrite(MapFile);
For MapFy:=1 to 20 do begin
For MapFx:=1 to 32 do begin
WriteLn(MapFile,ScrMap[MapFx,MapFy]);
end;
end;
CloseFile(MapFile);
end;
После чегоProject1 не отвечает
, и ничего не сохраняет.
(Это если нажать через делфи, а если просто запустить *.ехе из папки то нормально, и сохроняется всё)?!
← →
Servelat © (2004-09-29 23:06) [59]
> После чего Project1 не отвечает, и ничего не сохраняет.
Ты чего, вчера родился что ли? Ставишь брейкпоинт куда-нибудь на AssignFile(...), и дальше F8. Отладка - великая вещь.
> Подскажите как мне лучше сохранить карту?
> Решил в текстовом файле сохранить
Чего-то я не помню ни одной нормальной игры, которая бы свои карты в текстовых файлах построчно хранила. Во-первых - не удобно (IMHO это способ "через жопу"), во-вторых много места. Я бы предложил сделать так:const
C_NONE = 0; //пустая клетка
C_GROUND = 1; //земля
C_BLOCK = 2; //кирпич
//и так далее
...
var
ScrMap:array[0..31,0..19] of byte;
//почему byte? так как вряд ли у тебя больше 256 типов земли будет;
//если все же будет - поставь word вместо байта
MapFile: file of byte;
i,j: integer;
...
begin
AssignFile(MapFile,"Map0.nlr");
Rewrite(MapFile);
for i:=0 to 31 do
for j:=0 to 19 do
write(f, SrcMap[i,j]);
CloseFile(MapFile);
end;
i и j вместо твоих переменных я юзал для краткости. Кстати, в каком порядке сохранять значения в файл я большой разницы не вижу, поэтому у меня внешний цикл до 31, а внутренний до 19. Ну и массив я объявил с 0, как настоящий программист :) . На самом деле, так удобнее, но не принципиально.
В этом случае размер файла карты становится намного меньше (по 1 байту на каждую ячейку, у тебя было явно больше).
Но, видимо, строки хранящиеся в массиве служили как имена картинок для отображения карты? Это тоже не проблема:const
Names: array [0..9] of string=("none", "ground", "block", ...)
Тут предполагается, что у тебя 10 типов тайлов, причем первый (который в массиве хранится как C_NONE) занесен в ImageList под именем "none", второй под именем "ground" и т.д. Тогда отрисовка ячейки с координатами (x,y) будет такой:
DXImageList.Find(Names[SrcMap[x,y]]).Draw(//куды тебе надо...);
Разумеется, все вышесказанное всего лишь совет, не является обязательным к исполнению и единственно правильным решением.
ЗЫ Где скринщрт? :)
← →
Jus (2004-09-29 23:15) [60]
> ЗЫ Где скринщрт? :)
Я его отправил КИБОРГУ на Емайл, а он наверое спит:-) ну хош, тебе тоже отправлю?:)
← →
Jus (2004-09-29 23:23) [61]
> Чего-то я не помню ни одной нормальной игры, которая бы
> свои карты в текстовых файлах построчно хранила. Во-первых
> - не удобно (IMHO это способ "через жопу"), во-вторых много
> места. Я бы предложил сделать так:
я тоже не помню, ну по другому умею только через базы данных, но это лишняя волокита, давно не занимался с бд.
> begin
> AssignFile(MapFile,"Map0.nlr");
> Rewrite(MapFile);
> for i:=0 to 31 do
> for j:=0 to 19 do
> write(f, SrcMap[i,j]);
> CloseFile(MapFile);
> end;
А ОН КАК РАЗЛОЖИТ В ФАЙЛЕ, ПО ОДНОМУ СТОЛБУ КАК У МЕНЯ? И ВАЩЕ, ЧЕРЕЗ ТХТ ЕГО ПРОЧИТАТЬ ПОТОМ МОНЖНО?
А КАК ЗАГРУЖАТЬ? ТАКЖЕ?AssignFile(MapFile,"Map0.nlr");
Reset(MapFile);
for i:=0 to 31 do
for j:=0 to 19 do
read(f, SrcMap[i,j]);
CloseFile(MapFile);
end;
← →
Jus (2004-09-29 23:25) [62]
> ЗЫ Где скринщрт? :)
на какой адрес скинуть?)
← →
Jus (2004-09-30 00:00) [63]
> Тут предполагается, что у тебя 10 типов тайлов, причем первый
> (который в массиве хранится как C_NONE) занесен в ImageList
> под именем "none", второй под именем "ground" и т.д.
Почти, тока "none" в ImageList не занесён, и в массиве(String) у меня было: ""- пропускает(0 нету), дальше идёт с 1,2,3 ... ну так пошло, что изначально у меня массив string, а не integer и не byte к тому же, буду исправлять как ты посоветовал в [59] !
Спасибо за помощь!
← →
Jus (2004-09-30 00:38) [64]
> А ОН КАК РАЗЛОЖИТ В ФАЙЛЕ, ПО ОДНОМУ СТОЛБУ КАК У МЕНЯ?
> И ВАЩЕ, ЧЕРЕЗ ТХТ ЕГО ПРОЧИТАТЬ ПОТОМ МОНЖНО?
>
> А КАК ЗАГРУЖАТЬ? ТАКЖЕ?
щас прочитал, и понял что глупость сморозил:) (write/writeln)
← →
ASoft (2004-09-30 03:43) [65]> потом незнаю где мне накачать звуков для игры [45]
Накачай из Half-Life или Контеров пока, для демки сойдет.
← →
Servelat © (2004-09-30 07:59) [66]
> А ОН КАК РАЗЛОЖИТ В ФАЙЛЕ, ПО ОДНОМУ СТОЛБУ КАК У МЕНЯ?
> И ВАЩЕ, ЧЕРЕЗ ТХТ ЕГО ПРОЧИТАТЬ ПОТОМ МОНЖНО?
Нет, он будет писать по байтам. Такого понятия как столбец в файле нету, Блокнот просто интерпретирует символ #13 (Enter) как переход на новую строку. Соответственно, Блокнотом открыв этот файл ты ничего интересного не увидишь, там же не символы записаны "1", "2", "0", а байты (Например ячейку с кодовым номером 13 (C_BIGBLOCK=13) блокнот примет за команду перехода на новую строку). Если очень захочется посмотреть, что же там внутри файла, то открой его hex-редактором. Но если будет редактор карт, то вручную поправлять ничего не придется.
Загружать действительно так, как ты написал в [61].
> на какой адрес скинуть?)
А ты много моих адресов знаешь? :) Кидай на тот, что у меня тут прописан, просто по моему имени в любом посте щелкаешь :) .
← →
Omar2002 (2004-09-30 09:43) [67]Мне тоже скриншотик бы не помешало посмотреть. Omar2002@front.ru
← →
NikeOLD © (2004-09-30 09:59) [68]Mister Jus, have you ever read any books about Delphi?
There are many possibilities to save your map, e.g. file stream.
Buy or surf internet to look for a good Delphi book.
Send a screenshot please.
← →
Jus (2004-09-30 10:31) [69]Только что отправил всем, кто просил. Кто его может разместить теперь в и-нете(на этой ветке ссылку)?|:(
← →
cyborg © (2004-09-30 10:53) [70]Снимки тут ftp://cyborghome.ru/ScreenShots/
Я ожидал увидеть хуже ;)
← →
cyborg © (2004-09-30 11:01) [71]Расскажу вкратце как сделать чтобы быстро работало ;)
Делаешь процедуру рисующую одну ячейку карты, например:
Procedure ShowMapXY(X,Y : Lonhint);
begin
//тут рисуешь на большую поверхность одну клетку по координатам XY
//Смотришь в массиве карты, что у тебя за ячейка такая и рисуешь
//соответственный спрайт в соответствующем месте
end;
Далее, при инициализации сцены рисуешь всю карту вызывая вышеуказаную процедуру.
Затем, в процессе игры при изменении какой-то клетки, меняешь в массиве карты тип клетки и вызываешь вышеуказанную процедуру.
А в процессе игры отображаешь только одну большую поверхность карты, затем сверху неё выводи движущиеся объекты - человечки, пули, эффекты и пр.
← →
Jus (2004-09-30 12:06) [72]но у меня разве медленно? там на screene видно(написано):
FPS 16
DXTimer.interval:=50
а если интервал сделать 0, то фпс будет 70.(ну это на моей машине).
← →
Jus (2004-09-30 12:09) [73]
> Я ожидал увидеть хуже ;)
почему?:)
← →
Jus (2004-09-30 12:13) [74]Хочу добавить, там все объекты(почти) анимированные, всё крутится, вертится, шевелится, короче как положено!:)
← →
Jus (2004-09-30 15:26) [75]
> Servelat © (29.09.04 23:06) [59]
Всё сделал как ты посоветовал, карта сохраняется в byte и загружается, долго ковырялся с загрузкой, но сделал, работает как часы:Удаляет объекты по массиву;
Стирает массив;
Загружает из файла новый массив;
Строит объекты по массиву.
Теперь можно наконец заняться игровой частью:)
Зы: уходил из дома на час, пришёл, решил позвонить по телефону и ... понял, что забыл отключиться от интернета:)))
Кстати, как скриншоты? все посмотели и молчат...(
← →
Servelat © (2004-09-30 16:09) [76]
> Кстати, как скриншоты? все посмотели и молчат...(
Все ждут .exe :) . По скриншотам можно тока графику оценить; IMHO графика для такого типа игры очень даже ничего, особенно если еще и анимировано многое из этого. Но графика (для этой конференции) не главное, вот на играбельность посмотрим, тогда и будут похвалы/разносы.
> Удаляет объекты по массиву;
Неплохо было бы сделать как описал cyborg, то есть без объектов. Ну сам посуди, нафига они тебе (в карте)? Я так понимаю, каждая ячейка карты у тебя TImageSprite. Но ведь можно при загрузке карты всю отрисовать на отдельный TDXImageItem, и потом его копировать на экран. Но это опять же к сведению, все-таки лучшее - враг хорошего :) .
> FPS 16
По идее,FPS должен быть больше 25.
> а если интервал сделать 0, то фпс будет 70.(ну это на моей
> машине).
А какая у тя машина? Дело в том, что раз эта игра - не 3D шутер с кучей эффектов, то хотелось бы, чтобы она и на первых пнях шла с FPS>25.
← →
NikeOLD © (2004-09-30 17:02) [77]
> Зы: уходил из дома на час, пришёл, решил позвонить по телефону
> и ... понял, что забыл отключиться от интернета:)))
Надо дисконнект устанавливать по таймауту бездействия.
← →
NikeOLD © (2004-09-30 17:05) [78]Графику я хуже ожидал, но ты же вроде в артшколе учился?
Посмотрим на демку, тогда и оценим.
← →
Jus (2004-09-30 19:31) [79]
> Все ждут .exe :)
есть уже доделанный EditorMap.exe:)
> Неплохо было бы сделать как описал cyborg, то есть без объектов.
> Ну сам посуди, нафига они тебе (в карте)? Я так понимаю,
> каждая ячейка карты у тебя TImageSprite. Но ведь можно при
> загрузке карты всю отрисовать на отдельный TDXImageItem,
> и потом его копировать на экран. Но это опять же к сведению,
> все-таки лучшее - враг хорошего :) .
Ну да, так оно и есть, я неправильно написал, не объекты загружаюся, а спрайты.
> А какая у тя машина? Дело в том, что раз эта игра - не 3D
> шутер с кучей эффектов, то хотелось бы, чтобы она и на первых
> пнях шла с FPS>25.
Машина P-IVC/2600, 512Ram, GeForce4 128MB(пилот, колонки, коврик для мыши:))
> Jus (21.09.04 08:02) [5]
> На моей машине
> Pentium4C/2600, 512Ram, geForce4 128mb.
Я писал.:)
> Дело в том, что раз эта игра - не 3D шутер с кучей эффектов,
> то хотелось бы, чтобы она и на первых пнях шла с FPS>25.
Она итак будет>25.
← →
Servelat © (2004-09-30 20:35) [80]
> Она итак будет>25.
Откуда такая уверенность? Ты же не мог тестировать игру на слабых машинах (так как сама игра еще не готова :) ). И почему FPS - она :) ?
Страницы: 1 2 3 4 вся ветка
Форум: "Игры";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
Память: 0.64 MB
Время: 0.047 c