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

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

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

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 02.11.2010, 20:10   #1
Program23
Бывалый
 
Аватар для Program23
 
Регистрация: 26.04.2009
Адрес: Россия, Уфа
Сообщений: 680
Написано 182 полезных сообщений
(для 406 пользователей)
Пикнуть объект

Вот есть у меня 3 куба закинутых в тип.
Как сделать,чтобы я пикнул по кубу 2 и он стал выбранным))))
Пикнул по 3 и он стал выбранным,то есть объектом с каторым я могу манипулировать.
Вот пример:
If MouseHit(1)
pick=CameraPick(cam, MouseX(), MouseY())

For m.maps=Each maps
     If (pick=m\map);Если попали в  куб
      ;Тут надо сделать так чтоб выбрался тот куб на который пикнули,и в дальнейшем я мог поварачивать,передвигать только его.Если пикнул другой,то он становится выбранным.

      End If
Next
EndIf
(Offline)
 
Ответить с цитированием
Старый 02.11.2010, 20:21   #2
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Ответ: Пикнуть объект

поискать на форуме трудно?! таких вопросов сотни!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Colossus (02.11.2010)
Старый 02.11.2010, 21:01   #3
Colossus
Разработчик
 
Аватар для Colossus
 
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений
(для 92 пользователей)
Ответ: Пикнуть объект

юзай переменные ))
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb

Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)

Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
(Offline)
 
Ответить с цитированием
Старый 02.11.2010, 21:05   #4
Program23
Бывалый
 
Аватар для Program23
 
Регистрация: 26.04.2009
Адрес: Россия, Уфа
Сообщений: 680
Написано 182 полезных сообщений
(для 406 пользователей)
Ответ: Пикнуть объект

юзай переменные ))
???????
__________________
Фриланс:
Freelancer.com
Upwork
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (03.11.2010)
Старый 02.11.2010, 21:43   #5
EvilChaotic
Мастер
 
Аватар для EvilChaotic
 
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений
(для 3,006 пользователей)
Ответ: Пикнуть объект

Запиши его хендел куда-нибудь. Если делать по быстрому и не красиво - в глобальную переменную.
Global PickedMap
Таким образом мы получим хендл, не забудем выйти из цикла.
For m.maps=Each maps
     If (pick=m\map)
        PickedMap = Handle(m)
        exit
      End If
Next
Дальше можешь делать что угодно с объектом типа в отдельных функциях.

Function Update_PickedEntity()
If PickedMap <> 0
  m.maps=Object.maps(PickedMap)
      ...
      TurnEntity m\map,x,y,z
      ...
End If
End Function
При сбросе куба(Например если нам не нужно выделать ничего) не забывай обнулять PickedMap, иначе тебе выдаст Мав.
__________________

EvilChaotic About
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Program23 (02.11.2010)
Старый 08.11.2010, 14:58   #6
EvilOkta
Знающий
 
Аватар для EvilOkta
 
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений
(для 229 пользователей)
Ответ: Пикнуть объект

Кстати похожий вопрос - есть ли возможность пикать объект по полигонам?...а то имею сетку из кубиков (платформа) 20х20 - пикается все здорово, но при увеличении поля до скажем 50х50 появляются заметные тормоза (наверное из-за того, что слишком много объектов ожидают пика), просто есть вариант заменить кубики одним объектом типа Cube или Plane и попробовать пикать полигоны....
собствено это надо для того чтобы получать координаты кубика (полигона?) для привязки курсора
(Offline)
 
Ответить с цитированием
Старый 16.02.2011, 20:57   #7
Alex_Noc
Разработчик
 
Регистрация: 02.04.2007
Сообщений: 353
Написано 54 полезных сообщений
(для 289 пользователей)
Ответ: Пикнуть объект

cam_pick=camerapickmode(cam,MX,MY)
if cam_pick<>0 then (подсветка и прочие эффекты)
if LMH then pick_obj=cam_pick (передали хендл объекта в друг переменную)
select pick_obj
case перечисляешь все обьекты через запятульку
If LMD=1 then
здесь реакция на реакция на нажатую кнопку (покрасить обьект)
присвоение тригов и переключалок событий
endif
default
возврат цветов если ниче не пикнуто
endselect
както так
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Alex_Noc за это полезное сообщение:
Program23 (16.02.2011), }{@KeR (16.02.2011)
Старый 16.02.2011, 21:27   #8
}{@KeR
ПроЭктировщик
 
Регистрация: 01.02.2011
Сообщений: 148
Написано 7 полезных сообщений
(для 8 пользователей)
Ответ: Пикнуть объект

Очень хорошая тема
Может кто нибудь написать примерчик???
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Trazzy (17.02.2011)
Старый 16.02.2011, 21:54   #9
Alex_Noc
Разработчик
 
Регистрация: 02.04.2007
Сообщений: 353
Написано 54 полезных сообщений
(для 289 пользователей)
Ответ: Пикнуть объект

чем тебе выше не примерчик?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Trazzy (17.02.2011)
Старый 16.02.2011, 22:52   #10
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Пикнуть объект

В стандартных примерах (samples и т.п.) Blitz3D есть все виды пик(ов)...
И полигон и модель и кубики и оптимизация пика из 10000 тыщ объектов
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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