forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Глобальная переменная из функции? (http://forum.boolean.name/showthread.php?t=7907)

maximus009 01.03.2009 21:31

Глобальная переменная из функции?
 
Как создать глобальную перемеенную из функции?:4to:

ABTOMAT 01.03.2009 21:42

Ответ: Глобальная переменная из функции?
 
Никак.
Глобальные переменные создаются только в main program (т.е. вне всяких циклов, функций, etc)
Но ты можешь создать глобальную переменную, а внутри функции писать в неё значение.

maximus009 01.03.2009 21:45

Ответ: Глобальная переменная из функции?
 
А как тогда сделать чтобы функция в цикле создавала переменные с различными именами, массив разве что...

maximus009 01.03.2009 21:48

Ответ: Глобальная переменная из функции?
 
Мда, сам на свой вопрос ответил)))

Dzirt 01.03.2009 21:51

Ответ: Глобальная переменная из функции?
 
Есть такое дело.но ты всегда можеш завести себе файл где будешь хранить все свои глобалы.(на случай если не хочеш засорять свой main program).Хотя лично я предпочитаю отводить отдельную графу.

maximus009 01.03.2009 21:53

Ответ: Глобальная переменная из функции?
 
Ну а если мне их 100000 надо, мне что их по одной писать, проще массив)))

moka 01.03.2009 21:58

Ответ: Глобальная переменная из функции?
 
Тогда юзай классы или массивы.
Если не секрет, зачем тебе столько данных?

maximus009 01.03.2009 21:59

Ответ: Глобальная переменная из функции?
 
Ну не столько)) Я для примера, просто у меня уровень в одной моделе, я из нее извлекаю хелперы dummy и с помощью entitydistance делаю чтото вроде триггеров.

moka 01.03.2009 22:02

Ответ: Глобальная переменная из функции?
 
Тогда юзай Классы, тебе нужно сперва для будущего комфорта выучить стандартный функционал языка. Работа с типами данными, локальность/глобальность, массивы, классы.

maximus009 01.03.2009 22:03

Ответ: Глобальная переменная из функции?
 
Все еще впереди, а чем в таком случае массив плох, ато я уже с помощью него сделал?

moka 01.03.2009 22:09

Ответ: Глобальная переменная из функции?
 
Если сделал им, и хорошо, можно сделать иначе, возможно более удобно.

maximus009 01.03.2009 22:10

Ответ: Глобальная переменная из функции?
 
Как, если не секрет (я нубец пока) ;)

Я сделал так:
в main
Global count = 2
Dim dummy(count)
Функция:
Function buildtriggers(name$,mesh)
For i=1 To count
dummy(i) = FindChild(levelmesh2,name$+i)
Next
End Function

ps. А можно ли как нибудь подсчитать количество обьектов начинающихся на имя trig в меше?

ABTOMAT 01.03.2009 23:11

Ответ: Глобальная переменная из функции?
 
Массивы рулят!
Я вообще к ним положительно отношусь)
Но нельзя заменить всё типами, или всё массивами. Тут уж сам выбирай, верный выбор приходит с опытом ;)

Цитата:

ps. А можно ли как нибудь подсчитать количество обьектов начинающихся на имя trig в меше?
Можно.

Перебираешь все чайлды меша. GetChild, CountChildren
Получаешь имя каждого чайлда. EntityName
Первые четыре буквы этого имени сравниваешь с "trig". Mid
Опционально: от регистрозависимости поможет избавиться Upper или Lower
Если совпадает, то значит имя чилда начинается на "trig"
В какую нить переменную приплюсовывешь единицу
После перебора в той переменной получится количество чилдов с именем начинающимся с "trig"

maximus009 01.03.2009 23:25

Ответ: Глобальная переменная из функции?
 
Спасибо, но не совсем понял как перебирать все чилды меша?
Допустим есть переменная и цикл :
global count =0
for i=1 to countchildren(levelmesh)
name$ = entityname (getchild (levelmesh,i))
if mid$(name,1,4)="trig"
count=count+1
endif
next
так?

ABTOMAT 02.03.2009 00:16

Ответ: Глобальная переменная из функции?
 
В целом верно.
Молодец, я смотрю, хелп читаешь ;)
Только вот count делать глобальной необязательно (если только этот код у тебя не в функции, а count требуется где-то за её пределами)


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

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