Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax

Ответ
 
Опции темы
Старый 26.07.2013, 11:28   #1
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений
(для 853 пользователей)
объекты сцены

Привет всем!
Такой вопрос: Создаю уровень в блендере (двиг Xors3D), расставляю всякие объекты, даю им имена и по этим именам с помощью всем известной функции выцепляю их в движке, чтобы подвесить скрипты.
Но что делать если мне нужно поставить много одинаковых объектов (cube1, cube2...cube100500)? Каждый же индивидуально не станешь по имени вытягивать... Знаю можно называть типа cube.1, cube.2.... а потом читать только до точки. НО КАК?
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Старый 26.07.2013, 12:34   #2
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: объекты сцены

Перебирать все чайлды при помощи xCountChildren и xGetChild и сравнивать их имена.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 26.07.2013, 12:39   #3
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений
(для 853 пользователей)
Ответ: объекты сцены

я так и делаю. Ты предлагаешь для каждого объекта (а у меня их 1000) писать:
if xEntityName child = "cube1"
'.....
endif

if xEntityName child = "cube2"
'.....
endif
.......
.......

if xEntityName child = "cube1000"
'.....
endif
можно же как-то сразу для всех одинаковых объектов написать...
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Старый 26.07.2013, 12:49   #4
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: объекты сцены

а что тебе мешает создавать имена в цикле по шаблону:
"cube" + i
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ant0N (26.07.2013)
Старый 26.07.2013, 13:07   #5
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений
(для 853 пользователей)
Ответ: объекты сцены

SBJoker, как вариант. Но я знаю что должен быть другой способ. Есть ли команда которая читает слово до точки?
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Старый 26.07.2013, 13:58   #6
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: объекты сцены

Global tempString$ = "cube.321"
temp$ = Mid (tempString$,1,Instr (tempString,".",1)-1)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ant0N (26.07.2013)
Старый 26.07.2013, 14:24   #7
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений
(для 853 пользователей)
Ответ: объекты сцены

Nex, спасибо!!!!! вроде то, что нужно (сейчас нет возможности проверить)
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Старый 26.07.2013, 18:01   #8
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: объекты сцены

Ну надо проверить сначала, а потом спасибо говорить.

Еще если ты в будущем захочешь замутить что нибудь типа консоли или скриптов или просто запарсить из файла такое "Move box,1,2,3", то тебя ждет огорчение ибо "Instr" найдет только первую запятую. В общем унылая функция.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ant0N (26.07.2013)
Старый 26.07.2013, 19:09   #9
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений
(для 853 пользователей)
Ответ: объекты сцены

Все работает, даже проще
Name:String = Lower(xEntityName(child))
If Instr(name:String, "cube")
   ....
endif
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com