forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на Blitz3D (http://forum.boolean.name/forumdisplay.php?f=14)
-   -   X - ZONE (http://forum.boolean.name/showthread.php?t=9365)

Android 19.10.2009 11:38

Ответ: X - ZONE
 
Ух, ходил долго. Сначала очень долго искал файлик со всеми кодами, но потом закрались смутные сомнения о УГ'окоде, и я полез в исходник. Ужаснулся, ну да ладно. Нашел там все коды от дверей.
Пожелание к автору - код переписывать с самого начала. Ибо даже для меня, великого говнокодера это слишком)

Sfonsper 19.10.2009 18:09

Ответ: X - ZONE
 
Я пишу код так, как мне удобно.

NitE 19.10.2009 18:22

Ответ: X - ZONE
 
код говнокодный не всмысле оформления (и правда кому нафиг сдались эти комменты и красивые табы) а всмысле производительностьи в конечном итоге + всю игру можно уложить в 2 раза меньший код.

Sfonsper 19.10.2009 18:24

Ответ: X - ZONE
 
И как это сделать ?

ABTOMAT 19.10.2009 18:39

Ответ: X - ZONE
 
Цитата:

Сообщение от Sfonsper (Сообщение 121942)
И как это сделать ?

Такие вещи, как
castle3a=FindChild(castle,"door1a")
и т.д. лучше прописать в txt-файлик и читать пр истарте программы название объекта и того, что с ним нужно сделать. Так убиваются два зайца: когда надо что-то добавить - не надо лезть в код, + уменьшается время компиляции за счёт уменьшения кода.

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

В конечном итоге надо стремиться, чтоб создание нового объекта сводилось чему-то такому:

B.Button = CreateButton()
ButtonSetID(B, "Кнопка1")
ButtonSetPosition(B, 10,10,20)
ButtonSetRotation(B, 0,90,0)
ButtonSetText(B, "Открыть дверь")
ButtonSetAction(B, "Дверь1", OPEN_DOOR)

Т.е. по сути это стремление к С++шному ООП.

По оформлению кода: настоятельно советую табуляциями отделять условия, циклы и т.д., т.е. вместо:

Код:

If ko=1
If dist2>10
ko=0
EndIf
EndIf
If dist < 10
If KeyHit (18) :FlushKeys
ko=1
EndIf
EndIf

Делать конструкцию типа такой:

Код:

If ko=1
        If dist2>10
                ko=0
        EndIf
EndIf

If dist < 10
        If KeyHit (18) :FlushKeys
                ko=1
        EndIf
EndIf

Тут сразу же видно, где какое условие начинается, где вложенные условия и т.д., это улучшит читаемость кода и поиск ошибки, особенно незакрытых условий/циклов/функций.

Вообще спасибо за демку, побегал, даже пару загадок разгадал :) Зря наезжаете, я считаю, что рабочая демка (пусть в ней пока почти ничего нет) - главный показатель.

Sfonsper 19.10.2009 19:02

Ответ: X - ZONE
 
Цитата:

Сообщение от ABTOMAT (Сообщение 121943)
Такие вещи, как
castle3a=FindChild(castle,"door1a")
и т.д. лучше прописать в txt-файлик.

А если в отдельный bb файл.

Mr_F_ 19.10.2009 19:16

Ответ: X - ZONE
 
причём тут бб
речь не о инклудах кода а об автоматизации типовых действий
ты держишиь в файле всю инфу для воссоздания объекта нужного типа, в игре же просто цикл, ей все равно должно быть 1 дверь у тебя или 1000.

Sfonsper 19.10.2009 19:21

Ответ: X - ZONE
 
Я с этим еще не работал, без примеров не разберусь.

Android 19.10.2009 19:24

Ответ: X - ZONE
 
Ну ты же конфиг из файла делал. По тому же принципу и это делается.

Sfonsper 19.10.2009 19:26

Ответ: X - ZONE
 
Допустим я имею в тексте "castle3a=FindChild(castle,"door1a")"
Что надо написать перед Readline
castle3a ?

Nex 20.10.2009 08:37

Ответ: X - ZONE
 
ABTOMAT, а есть какие нибудь статьи где описанно как лучше оптимизировать код? А то я уже давно стремлюсь делать так, как ты написал, но у меня все равно все в итоге сливается в говнокод... :(


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

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