PDA

Просмотр полной версии : [Вопрос] Create3DTextLabel через цикл



Nurick
31.05.2014, 12:48
Делал надпись на автомобиле(Create3DTextLabel) и что то поник в этом, правильно ли я пустил через цикл?

new cars_autoschool[8];
new Text3D: educational_car[8];


cars_autoschool[0] = AddStaticVehicle(426,-2064.4241,-84.3732,34.9170,180.0000,222,222);
cars_autoschool[1] = AddStaticVehicle(426,-2068.5544,-84.3732,34.9272,180.0000,222,222);
cars_autoschool[2] = AddStaticVehicle(426,-2072.8428,-84.3732,34.9276,180.0000,222,222);
cars_autoschool[3] = AddStaticVehicle(426,-2077.1985,-84.3732,34.9315,180.0000,222,222);
cars_autoschool[4] = AddStaticVehicle(426,-2081.3772,-84.3732,34.9289,180.0000,222,222);
cars_autoschool[5] = AddStaticVehicle(426,-2085.6772,-84.3732,34.9276,180.0000,222,222);
cars_autoschool[6] = AddStaticVehicle(426,-2089.9375,-84.3732,34.9271,180.0000,222,222);
cars_autoschool[7] = AddStaticVehicle(426,-2094.2634,-84.3732,34.9333,180.0000,222,222);

educational_car[0] = Create3DTextLabel("Учебный", 0xFF0000FF, 0.0, 0.0, 0.0, 20.0, 0, 1);
educational_car[1] = Create3DTextLabel("Учебный", 0xFF0000FF, 0.0, 0.0, 0.0, 20.0, 0, 1);
educational_car[2] = Create3DTextLabel("Учебный", 0xFF0000FF, 0.0, 0.0, 0.0, 20.0, 0, 1);
educational_car[3] = Create3DTextLabel("Учебный", 0xFF0000FF, 0.0, 0.0, 0.0, 20.0, 0, 1);
educational_car[4] = Create3DTextLabel("Учебный", 0xFF0000FF, 0.0, 0.0, 0.0, 20.0, 0, 1);
educational_car[5] = Create3DTextLabel("Учебный", 0xFF0000FF, 0.0, 0.0, 0.0, 20.0, 0, 1);
educational_car[6] = Create3DTextLabel("Учебный", 0xFF0000FF, 0.0, 0.0, 0.0, 20.0, 0, 1);
educational_car[7] = Create3DTextLabel("Учебный", 0xFF0000FF, 0.0, 0.0, 0.0, 20.0, 0, 1);


for(new T; T != 8; T++){Attach3DTextLabelToVehicle(educational_car[T], cars_autoschool[T], 0.0, 0.0, 1.0);}


new cars_autoschool[8];
new Text3D: educational_car[8];


cars_autoschool[0] = AddStaticVehicle(426,-2064.4241,-84.3732,34.9170,180.0000,222,222);
cars_autoschool[1] = AddStaticVehicle(426,-2068.5544,-84.3732,34.9272,180.0000,222,222);
cars_autoschool[2] = AddStaticVehicle(426,-2072.8428,-84.3732,34.9276,180.0000,222,222);
cars_autoschool[3] = AddStaticVehicle(426,-2077.1985,-84.3732,34.9315,180.0000,222,222);
cars_autoschool[4] = AddStaticVehicle(426,-2081.3772,-84.3732,34.9289,180.0000,222,222);
cars_autoschool[5] = AddStaticVehicle(426,-2085.6772,-84.3732,34.9276,180.0000,222,222);
cars_autoschool[6] = AddStaticVehicle(426,-2089.9375,-84.3732,34.9271,180.0000,222,222);
cars_autoschool[7] = AddStaticVehicle(426,-2094.2634,-84.3732,34.9333,180.0000,222,222);


for(new T; T != 8; T++)
{
educational_car[T] = Create3DTextLabel("Учебный", 0xFF0000FF, 0.0, 0.0, 0.0, 20.0, 0, 1);
Attach3DTextLabelToVehicle(educational_car[T], cars_autoschool[T], 0.0, 0.0, 1.0);
}

Сомнения возникли на 2 способе. Правильно я пускаю через цикл?

wAx
31.05.2014, 12:55
Да разницы в общем-то никакой.

Nurick
31.05.2014, 13:28
Сомнения возникли в глобальной переменной:
то что я использую тут:

new Text3D: educational_car[8];

А в цикле пускаю через:

educational_car[T]
В этом нечего страшного нету??

KakbeYura
31.05.2014, 15:30
new Text3D: educational_car[8];

Это объявляет переменную

new

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

Text3D:

Имя переменной

educational_car

Количество выделяемых ячеек памяти

[8]

А в использовании вот это

[T]
значит что мы используем индекс, номер какого записан в перменной "T"

DeimoS
31.05.2014, 15:30
Эмм, цикл просто повторит заданный код столько раз, сколько итераций вы указали. Всё. Так что первый и второй вариант не имеют никаких отличий. Но я бы сделал так

new cars_autoschool[8];
new Text3D: educational_car;
//
cars_autoschool[0] = AddStaticVehicle(426,-2064.4241,-84.3732,34.9170,180.0000,222,222);
cars_autoschool[1] = AddStaticVehicle(426,-2068.5544,-84.3732,34.9272,180.0000,222,222);
cars_autoschool[2] = AddStaticVehicle(426,-2072.8428,-84.3732,34.9276,180.0000,222,222);
cars_autoschool[3] = AddStaticVehicle(426,-2077.1985,-84.3732,34.9315,180.0000,222,222);
cars_autoschool[4] = AddStaticVehicle(426,-2081.3772,-84.3732,34.9289,180.0000,222,222);
cars_autoschool[5] = AddStaticVehicle(426,-2085.6772,-84.3732,34.9276,180.0000,222,222);
cars_autoschool[6] = AddStaticVehicle(426,-2089.9375,-84.3732,34.9271,180.0000,222,222);
cars_autoschool[7] = AddStaticVehicle(426,-2094.2634,-84.3732,34.9333,180.0000,222,222);

educational_car = Create3DTextLabel("Учебный", 0xFF0000FF, 0.0, 0.0, 0.0, 20.0, 0, 1);
//
for(new T; T != 8; T++) Attach3DTextLabelToVehicle(educational_car, cars_autoschool[T], 0.0, 0.0, 1.0);

Nurick
31.05.2014, 16:41
new Text3D: educational_car[8];

Это объявляет переменную

new

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

Text3D:

Имя переменной

educational_car

Количество выделяемых ячеек памяти

[8]

А в использовании вот это

[T]
значит что мы используем индекс, номер какого записан в перменной "T"
Это то я знаю, меня путало то что я к примеру создаю глобальную переменную:

new cars_autoschool[8];
и дальше ей присваиваю автомомобили и пускаю их через цикл, а тут я создал переменную:

new Text3D: educational_car[8];
Но дальше только использую её в цикле с знеачением "T" вот что меня смущало.

Спасибо всем тему можно закрывать!

wAx
31.05.2014, 17:14
Эмм, цикл просто повторит заданный код столько раз, сколько итераций вы указали. Всё. Так что первый и второй вариант не имеют никаких отличий. Но я бы сделал так

new cars_autoschool[8];
new Text3D: educational_car;
//
cars_autoschool[0] = AddStaticVehicle(426,-2064.4241,-84.3732,34.9170,180.0000,222,222);
cars_autoschool[1] = AddStaticVehicle(426,-2068.5544,-84.3732,34.9272,180.0000,222,222);
cars_autoschool[2] = AddStaticVehicle(426,-2072.8428,-84.3732,34.9276,180.0000,222,222);
cars_autoschool[3] = AddStaticVehicle(426,-2077.1985,-84.3732,34.9315,180.0000,222,222);
cars_autoschool[4] = AddStaticVehicle(426,-2081.3772,-84.3732,34.9289,180.0000,222,222);
cars_autoschool[5] = AddStaticVehicle(426,-2085.6772,-84.3732,34.9276,180.0000,222,222);
cars_autoschool[6] = AddStaticVehicle(426,-2089.9375,-84.3732,34.9271,180.0000,222,222);
cars_autoschool[7] = AddStaticVehicle(426,-2094.2634,-84.3732,34.9333,180.0000,222,222);

educational_car = Create3DTextLabel("Учебный", 0xFF0000FF, 0.0, 0.0, 0.0, 20.0, 0, 1);
//
for(new T; T != 8; T++) Attach3DTextLabelToVehicle(educational_car, cars_autoschool[T], 0.0, 0.0, 1.0);

И приатачится 3D текст к последнему авто? Или нет?

underwoker
31.05.2014, 19:29
И приатачится 3D текст к последнему авто? Или нет?
Нет. Все верно.

Nurick
31.05.2014, 19:37
Да приатачится к последнему авто

- - - Добавлено - - -

Тему можете закрывать, я уже узнал то что меня интересовало.

wAx
31.05.2014, 19:45
Нет. Все верно.

Ты проверял?

Nurick
31.05.2014, 20:00
Да проверял

DeimoS
01.06.2014, 08:11
И приатачится 3D текст к последнему авто? Или нет?

Хмм, забыл про это. Ну тогда так

new cars_autoschool[8];
new Text3D: educational_car;
//
cars_autoschool[0] = AddStaticVehicle(426,-2064.4241,-84.3732,34.9170,180.0000,222,222);
cars_autoschool[1] = AddStaticVehicle(426,-2068.5544,-84.3732,34.9272,180.0000,222,222);
cars_autoschool[2] = AddStaticVehicle(426,-2072.8428,-84.3732,34.9276,180.0000,222,222);
cars_autoschool[3] = AddStaticVehicle(426,-2077.1985,-84.3732,34.9315,180.0000,222,222);
cars_autoschool[4] = AddStaticVehicle(426,-2081.3772,-84.3732,34.9289,180.0000,222,222);
cars_autoschool[5] = AddStaticVehicle(426,-2085.6772,-84.3732,34.9276,180.0000,222,222);
cars_autoschool[6] = AddStaticVehicle(426,-2089.9375,-84.3732,34.9271,180.0000,222,222);
cars_autoschool[7] = AddStaticVehicle(426,-2094.2634,-84.3732,34.9333,180.0000,222,222);
//
for(new T; T != 8; T++)
{
educational_car = Create3DTextLabel("Учебный", 0xFF0000FF, 0.0, 0.0, 0.0, 20.0, 0, 1);
Attach3DTextLabelToVehicle(educational_car, cars_autoschool[T], 0.0, 0.0, 1.0);
}
Но какой смысл хранить ID 3d текстов то всё время?