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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Опции темы

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

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


Часовой пояс GMT +1, время: 17:24.


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