[ Сообщений: 1386 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14, 15 ... 47  След.
3DO Doom sources released 
Автор Сообщение
Аватара пользователя
Специалист
Специалист

Группа: Администраторы
Сообщения: 11160
Регистрация: 03 дек 2009, 22:32
Откуда: MO/DK
Модель 3DO: Panasonic FZ-1 NTSC-U

Win XP SP3 - тоже самое.
Изображение
(Я не в теме, просто попробовал).


11 май 2015, 13:47
Аватара пользователя
Специалист
Специалист

Группа: Разработчики
Сообщения: 1298
Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет

Это проблема студии 2012 - 2013. Они заточены под 7-8 винды. Решить проблему можно, но надо искать как. Вроде бы нашёл в настройках кое-что со словами "Visual Studio 2013 - Windows XP (v120_xp)", пересобрал, проверьте теперь.
https://yadi.sk/d/I3eUORaAgYuBy


11 май 2015, 14:48
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

aliast
Теперь работает! :co_ol:

Добавлено спустя 2 часа 44 минуты 24 секунды:
aliast
Пробежал несколько уровней с новособранным REZFILE, никаких проблем не заметил. :co_ol:

Добавлено спустя 48 минут 13 секунд:
aliast писал(а):
Наша задача найти одинаковые цепочки и удалить их все, кроме самой первой.

Одинаковая цепочка это
0000 AAA BBB FFFF
и
0000 AAA BBB FFFF?
Или одинаковая цепочка это любая 0000 ... FFFF, где ... любые байты.


11 май 2015, 14:50
Аватара пользователя
Специалист
Специалист

Группа: Разработчики
Сообщения: 1298
Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет

Versus писал(а):
Или одинаковая цепочка это любая 0000 ... FFFF, где ... любые байты.

Я тебя не понял :nez-nayu: Ну во первых не AAA BBB, а AAAA BBBB (каждый linedef имеет ID 2-байтовый. А дальше не понял. Одинаковые это
1) Пара
00 00 FF FF
и
00 00 FF FF

2) Пара
00 00 19 01 A2 01 FF FF
и
00 00 19 01 A2 01 FF FF

Но, допустим пара
00 00 19 01 A3 01 FF FF
и
00 00 19 01 A2 01 FF FF
уже не идентичны. У них начало совпадает 00 00 19 01, но дальше идут разные байты A3 01 и A2 01. Сравнивать нужно вплость до FFFF


11 май 2015, 18:33
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

aliast
Все, понятно теперь. :-ok-:


11 май 2015, 19:00
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

Правильно ли я понял, что теперь можно модить 3DO версию Doom? Т.е. создавать свои карты и подпихивать в игру?


12 май 2015, 09:50
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Author
Не, пока до этого далеко. У нас есть распаковка REZFILE по кускам, редактирование их на предмет новых текстур и сшивка обратно. Кстати, у новых текстур нужно будет еще поубирать заголовки и прочее, что мы добавляли при распаковке существующих. Уровни пока не поддались, спрайты тоже.


12 май 2015, 10:06
Аватара пользователя
Специалист
Специалист

Группа: Разработчики
Сообщения: 1298
Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет

Блин, весь мозг сломал. Сделал сверку соседних цепочек, вроде работает, обрадовался. Потом дошло что сверять нужно не только соседние цепочки, а вообще все цепочки до самого конца файла :( т.е. подряд идущие 0000 FFFF 0000 FFFF (или любую другую) он находит, но цепочку вида 0000 FFFF 0000 0123 FFFF 0000 FFFF он уже не распознает.
В качестве примера в файле blockmap_map01 (ссылка ниже) должны находиться две цепочки по смещению 0x910 и 0x9B0. Это цепочка 00 00 19 01 FF FF
У меня она не находится :(
https://yadi.sk/d/Ft_bgElYgz7NE


01 июн 2015, 06:40
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

aliast
Я когда раздумывал, как это можно сделать, пришел к выводу, что не нужно сверять соседние. Нужно во время чтения отслеживать 0000 и FFFF. Если выполняется условие, когда 0000 идет впереди FFFF, то это первая строка.
Далее фиксируем каждые 0000. Опять же, если после 0000 находим FFFF, то эти 0000 (возвращаемся на этот адрес) являются началом строки.

В процессе чтения пишем каждые 2 байта в массив. После того, как определили первую строку, алгоритм сменяется:

Читаем и пишем в массив. Также находим 0000 и проверяем FFFF. Если есть FFFF, то удаляем из массива вплоть до найденного перед этим 0000. Для этих операций нужны 2 вспомогательные переменные. Одна отвечает за чтение всего файла, другая - номер элемента массива. Здесь фактически мы не удаляем байты, а откатываем номер элемента массива на длину найденной строки и как бы перезаписываем уже записанные элементы массива другими значениями.

Читаем дальше. Каждую найденную строку "выбрасываем" таким же образом.

Как-то так. Может, глупость написал. :nez-nayu:


01 июн 2015, 10:23
Аватара пользователя
Специалист
Специалист

Группа: Разработчики
Сообщения: 1298
Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет

Versus писал(а):
Можешь дать свой скомпиленный makerez для 3DO? Хочу попробовать помучить MPW.

Бинарник Makerez для 3DO - https://yadi.sk/d/e0J23348h3g7E


03 июн 2015, 05:37
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Попробовал отключить отрисовку пола и потолка. Проверял на эмуляторе, но забегало гораздо быстрее. Надо будет проверить на приставке.
Попробовал также отключать музыку. Опять же, на эмуле не видно, продолжает ли читаться диск. Тоже надо будет проверить на железе.


09 июн 2015, 00:25
Аватара пользователя
Специалист
Специалист

Группа: Администраторы
Сообщения: 11160
Регистрация: 03 дек 2009, 22:32
Откуда: MO/DK
Модель 3DO: Panasonic FZ-1 NTSC-U

О-оо. :co_ol: А как отключал? Просто убрал текстуры, или код нашел?
Переписать под CEL Engine не реально? Из другой игры слизать метод не реально (KT, например)?

А то, действительно, пол и потолок текстурировать ARM, а стены CEL - невыносимый косяк разработчиков. С учетом того, что CEL и ARM - "последовательно", а не параллельно работают, ну по банальному тактированию CPU это уже понятно, что архитектура своеобразная, надо было учитывать: [3DO] Разгон CPU (ARM60)

(А вот, CEL-engine в приставке крут :co_ol: ).


09 июн 2015, 08:15
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

aspyd
В коде строчки закомментировал. Взять и КТ вряд ли можно, т.к. исходников нет. Нужно самим выдумывать. :-(

Добавлено спустя 36 минут 14 секунд:
Чтобы отключить отрисовку пола и потолка, нужно в файле phase7.c удалить или закомментировать строку
DrawFloorColumn(y,x1,x2-x1,xfrac,yfrac,xstep,ystep);

Чтобы отключить музыку, нужно в файле sound.c удалить или закомментировать строки
PlaySong(SongLookup[music_id]);

PlaySong(0);


Добавлено спустя 3 часа 10 минут 30 секунд:
Если я понимаю правильно, то отрисовка пола и потолка (основа) прописана на ассемблере (единственный файл этого типа)
;
;void DrawASpan(Word Count,LongWord xfrac,LongWord yfrac,Fixed ds_xstep,
;   Fixed ds_ystep,Byte *Dest)
;

   AREA   |C$$code|,CODE,READONLY
|x$codeseg|

   EXPORT DrawASpan
   IMPORT PlaneSource

   MACRO
   Filler
   LCLA   Foo
Foo   SETA   280/4
   WHILE   Foo/=0
   AND      v4,v1,a3,LSR #20      ;v4 = first y index
   ORR      v4,v4,a2,LSR #26      ;V4 = first x,y index
   ADD      a2,a2,a4
   ADD      a3,a3,v2

   AND      v5,v1,a3,LSR #20
   ORR      v5,v5,a2,LSR #26
   ADD      a2,a2,a4
   ADD      a3,a3,v2

   AND      ip,v1,a3,LSR #20
   ORR      ip,ip,a2,LSR #26
   ADD      a2,a2,a4
   ADD      a3,a3,v2

   AND      a1,v1,a3,LSR #20
   ORR      a1,a1,a2,LSR #26
   ADD      a2,a2,a4
   ADD      a3,a3,v2      ;16 longs
   
   LDRB   v4,[v3,v4]
   LDRB   v5,[v3,v5]
   LDRB   ip,[v3,ip]
   LDRB   a1,[v3,a1]      ;20 longs
   ORR      v4,v5,v4,LSL #8
   ORR      ip,a1,ip,LSL #8
   ORR      ip,ip,v4,LSL #16
   STR      ip,[lr],#4      ;24 longs
   
Foo   SETA   Foo-1
   WEND
   MEND
   
;
; Main entry point for the span code
;


SrcP DCD   PlaneSource   ;Pointer to the source image

DrawASpan
   STMDB    sp!,{v1-v5,lr}
   MOV      a2,a2,LSL #10      ;XFrac
    MOV      a4,a4,LSL #10      ;YFrac
    MOV      a3,a3,LSL #10      ;XStep
    ADD      lr,sp,#&18
    LDR      v3,SrcP
    LDR      v3,[v3]      ;v3 = Src
    ADD      v3,v3,#64         ;Adjust past the PLUT
    LDMIA   lr,{v2,lr}      ;v2 = YStep, lr = Dest
    MOV      v2,v2,LSL #10   ;YStep
    MOV      v1,#&fc0      ;YMask
   RSB      ip,a1,#280      ;Negate the index
   MOV      ip,ip,LSR #2   ;Long word index
   ADD      ip,ip,ip,LSL #1   ;Mul by 3
   ADD      pc,pc,ip,LSL #5   ;Mul by 96
   NOP                  ;Not needed for pipeline

   Filler            ;Perform the runfill

   LDMIA    sp!,{v1-v5,pc}

   END

Как назло. Тут вообще ничего не понимаю...


09 июн 2015, 08:49
Аватара пользователя
Специалист
Специалист

Группа: Разработчики
Сообщения: 1298
Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет

Дак оно потому и на асме чтоб быстрее работало :) Разбираться долго придётся... чем вообще стены от пола отличаются? У них разный формат данных, даже на PC. Но с чем это связано пока не понимаю. При этом полы в исходниках представлены в виде cel картинок, а вот формат стен специфичен. По логике должно бысть всё наоборот - пол Cel Engine, а стены процем :du_ma_et:


09 июн 2015, 15:09
Аватара пользователя
Специалист
Специалист

Группа: Разработчики
Сообщения: 1298
Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет

Цитата:
To convert these RAW image files for use for the 3DO version of DOOM.
Make a script in DEBABELIZER that does this...

Где взять этот DEBABELIZER для MacOS 7-8 ? Гугл находит только для OS X. Может кто найдет? (нашли же фотошоп где-то)


10 июн 2015, 06:02
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

aliast
Я искал его, когда разбирался с SDK. Не преуспел... Попробую ещё раз.

Добавлено спустя 1 час 37 минут 1 секунду:
Обратился к Ребекке. Обещала завтра выложить дистрибутив.


10 июн 2015, 09:27
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Проверил болванки с отключенной музыкой и отключенными полами и потолком.
Музыка, как и полагается, не читается с диска, уровень грузится чуть быстрее и тише. Прогрузы с диска не настолько "взахлёб".
А вот с потолками и полами не совсем понятно. Вроде и быстрее бегает перс, но подтормаживания есть все равно. Особенно заметно во время открытия дверей.

Добавлено спустя 5 часов 31 минуту 30 секунд:
Если вы обращали внимание, то даже если полностью убрать ползунок громкости музыки на ноль, музыки хоть и не слышно, но она продолжает считываться с диска. Иногда на больших сложностях возникают такие "запилы" диска, что играть становится трудно.
Я сделал так, чтобы при нулевой громкости диска музыка не считывалась с диска и запускалась снова при прибавке громкости.


11 июн 2015, 20:36
Аватара пользователя
Специалист
Специалист

Группа: Администраторы
Сообщения: 11160
Регистрация: 03 дек 2009, 22:32
Откуда: MO/DK
Модель 3DO: Panasonic FZ-1 NTSC-U

Versus писал(а):
Если вы обращали внимание, то даже если полностью убрать ползунок громкости музыки на ноль, музыки хоть и не слышно, но она продолжает считываться с диска. Иногда на больших сложностях возникают такие "запилы" диска, что играть становится трудно.
Я сделал так, чтобы при нулевой громкости диска музыка не считывалась с диска и запускалась снова при прибавке громкости.
Молодец, это очень полезная фича, экономит трафик CD-ROM. :bra_vo:


12 июн 2015, 17:15
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Думаю замутить что-нибудь с сохранениями. Планирую использовать какую-нибудь клавишу на экране статистики после прохождения уровня. Загрузка планируется из главного меню.


12 июн 2015, 17:32
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Сохранения частично работают. Частично, потому что неправильно определяется номер уровня для загрузки, хотя он сохраняется тоже. Все остальное сохраняется и загружается корректно.
Сохраняется все оружие (наличие и количество), здоровье, броня, backpack, номер уровня, громкости звуков и музыки, сложность (нужно проверить, загружается ли она).
Возможность сохранения возникает после окончания уровня. Там текстом указано, какой клавишей можно сохраниться. Правда уведомление об успешном сохранении пока не придумал, как сделать. Загрузка доступна из главного меню (пока срабатывает со второго нажатия) и после смерти героя.

Что нужно сделать:
1) Нужно отловить ошибку с определением номера уровня для загрузки.
2) Немного перекомпоновать главное меню, чтобы переместить пункт Load game. Сейчас он у меня находится выше номера уровня.
3) Уведомлять игрока, что есть возможность загрузиться после смерти другой клавишей.
4) Обработка ситуаций, когда файла с сохранениями нет, когда он некорректный (любой из параметров за пределами допустимого).

Добавлено спустя 1 час 28 минут:
Кстати, сохранение получилось всего лишь 92 байта. На каждую величину отводится по 4 байта. То есть, если нужно записать наличие BFG, то получается запись: 000001. Неэкономно, но что уж сделаешь... В принципе, общее количество сохраняемых параметров не такое большое, поэтому можно на это забить.
Подумал еще о записи демо в память приставки (там есть флаг для записи демо), а потом интеграции этих демок в REZFILE. Будут полноценные демки, как в других Doom. Правда, насколько этот код рабочий, неизвестно. :nez-nayu:


18 июн 2015, 10:45
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Пункты 1, 3 сделал.
Обнаружил проблему, когда количество брони не уменьшается после загрузки файла. Даже не помогает прохождение через выход из уровня. Но, как только поднимешь какую-нибудь броню (если возможно), то глюк пропадает.
Починил. Нужно было добавить в файл сохранения armortype.

Следующие проблемы:
5) Не грузится backpack. Вернее, его отбирают перед загрузкой.
Починил.
6) При загрузке сохранения из другого уровня неправильно определяется, какое небо будет.
Небо починил.


20 июн 2015, 18:18
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Цитата:
To convert these RAW image files for use for the 3DO version of DOOM.
Make a script in DEBABELIZER that does this...

Где взять этот DEBABELIZER для MacOS 7-8 ? Гугл находит только для OS X. Может кто найдет? (нашли же фотошоп где-то)

Вот.

Добавлено спустя 6 часов 22 минуты 22 секунды:
Может кому-нибудь будет интересно. Пока копался с кодом, естественно, появилась необходимость отслеживать работу функций. Придумал использовать для этого NVRAM. То есть, если функция сработала, создаем файл заданного имени. Можно туда тоже писать что-нибудь проходное. Очень наглядно, хоть и неудобно постоянно перезагружаться в GameGuru. :a_g_a:


У вас нет необходимых прав для просмотра вложений в этом сообщении.


21 июн 2015, 12:36
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Versus писал(а):
2) Немного перекомпоновать главное меню, чтобы переместить пункт Load game. Сейчас он у меня находится выше номера уровня.

А, может, и нормально так... Просто не знаю, куда еще его можно засунуть.

aliast
Погляди, пожалуйста на код ниже.
/**********************************

   Execute the main menu

**********************************/

static void RunMenu(void)
{
   if (MiniLoop(M_Start,M_Stop,M_Ticker,M_Drawer)==ga_completed) {      /* Process the menu */
      S_StopSong();
      G_InitNew(StartSkill,StartMap);      /* Init the new game */
      G_RunGame();               /* Play the game */
   }
}


Здесь главное меню. Мне нужно сюда засунуть еще одну проверку. У меня появился статус ga_loading, истинность значения которого тоже нужно отследить. Если делаю так:

static void RunMenu(void)
{
if (MiniLoop(M_Start,M_Stop,M_Ticker,M_Drawer)==ga_loading) {      /* Process the menu */
      S_StopSong();
      G_InitNew_LOAD(gameskill,gamemap);      /* Init the loading game */
      G_RunGame();               /* Play the game */
   }   
if (MiniLoop(M_Start,M_Stop,M_Ticker,M_Drawer)==ga_completed) {      /* Process the menu */
      S_StopSong();
      G_InitNew(StartSkill,StartMap);      /* Init the new game */
      G_RunGame();               /* Play the game */
   }
}


То, естественно, если нажимаем в меню на LOAD GAME, то сначала проверяется верхний блок, возвращает истину и поперла игра. Если нажимаем просто запуск уровня (НЕ load game), то верхний блок не истина. Но чтобы сработал нижний блок, нужно еще раз нажать на кнопку. То есть, в RunMenu нужно сделать сразу проверку и на то, и на другое. Не знаешь, как можно это решить? Что-то сообразить не могу.


22 июн 2015, 13:04
Аватара пользователя
Специалист
Специалист

Группа: Администраторы
Сообщения: 11160
Регистрация: 03 дек 2009, 22:32
Откуда: MO/DK
Модель 3DO: Panasonic FZ-1 NTSC-U

Versus писал(а):
А, может, и нормально так... Просто не знаю, куда еще его можно засунуть.

По моему, неплохо и пунктом - выше выбора уровня. :nez-nayu:


22 июн 2015, 13:21
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Я тоже так подумал. Обратил внимание, что даже в оригинальной игре Options находятся на надписи Doom. И ничего, прокатывало. А у меня будет в главном меню load на этом же месте. :nez-nayu: А расположение курсора при запуске будет, по-прежнему, на Level.


22 июн 2015, 13:31
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

Versus писал(а):
if (MiniLoop(M_Start,M_Stop,M_Ticker,M_Drawer)==ga_loading) { /* Process the menu */
S_StopSong();
G_InitNew_LOAD(gameskill,gamemap); /* Init the loading game */
G_RunGame(); /* Play the game */
}
if (MiniLoop(M_Start,M_Stop,M_Ticker,M_Drawer)==ga_completed) { /* Process the menu */
S_StopSong();
G_InitNew(StartSkill,StartMap); /* Init the new game */
G_RunGame(); /* Play the game */

Выделенное жирным судя по всему функция.

Заведи премененную такого же типа как и функция, приравняй ей значение функции, а потом сравнивай уже.

т.е. должно получится так

Versus писал(а):
static void RunMenu(void)
{
/// обьявляем переменную Flag и далее присваиваем ей значение функции
тип Flag;
Flag=(MiniLoop(M_Start,M_Stop,M_Ticker,M_Drawer);
if Flag==ga_loading) { /* Process the menu */
S_StopSong();
G_InitNew_LOAD(gameskill,gamemap); /* Init the loading game */
G_RunGame(); /* Play the game */
}
if Flag==ga_completed) { /* Process the menu */
S_StopSong();
G_InitNew(StartSkill,StartMap); /* Init the new game */
G_RunGame(); /* Play the game */
}


22 июн 2015, 14:24
Аватара пользователя
Специалист
Специалист

Группа: Разработчики
Сообщения: 1298
Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет

Может просто добавить else ко второму условию?
else if (MiniLoop(M_Start,M_Stop,M_Ticker,M_Drawer)==ga_completed) {

А вообще идея с флагом хорошая, только сам по себе флаг врядли поможет.

Последний раз редактировалось aliast 22 июн 2015, 14:58, всего редактировалось 1 раз.



22 июн 2015, 14:53
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Author
Ты записал по сути тоже самое, просто ввел дополнительную переменную. Есть ли в этом смысл? Получается же тоже самое... :du_ma_et: Или нет?
aliast
Не, так вообще не пашет. При нажатии бесконечно обновляется картинка с титров на большую надпись Doom, потом при следующем нажатии снова главное меню показывает и так далее. Ни запустить игру, ни загрузить.


22 июн 2015, 14:56
Аватара пользователя
Специалист
Специалист

Группа: Разработчики
Сообщения: 1298
Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет

Versus писал(а):
Получается же тоже самое...

Ну просто функция один раз вызывается, должно сказаться на производительности чутка.


22 июн 2015, 15:00
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

aliast, по else'у всё равно два раза вызов функции произойдёт (если первое условие не истина) ибо она в условии и там и там встречается.
Versus писал(а):
Ты записал по сути тоже самое, просто ввел дополнительную переменную

Нет это будет работать совершенно по разному и лишнего вызова к функции не будет, не придётся два раза на кнопку нажимать. В переменную занесётся результат работы функции (как я понял это выбор пользователем элемента меню?), а дальше мы функцию не трогаем уже и работаем только с её результатом записанным в переменную. Это всё равно что спросить пользователя "Что делать дальше?" и на выбор куча вариантов (10 штук например). Так по оригинальному коду его 10 раз спросят, если он выбрал 10 пункт - "выход", прежде чем выполнится нужное действие.


22 июн 2015, 15:01
На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14, 15 ... 47  След.
© 2008-2024 «3DOPLANET.ru». Создано на основе phpBB® Forum Software © phpBB Group
Designed by ST Software || Русская поддержка phpBB || Time : 0.065s | 20 Queries | GZIP : On