Понедельник, 30.06.2025, 09:55Приветствую Вас Гость | RSS
Game masterS
Главная | Выбор объекта - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Выбор объекта
LavatarДата: Вторник, 13.01.2009, 21:58 | Сообщение # 1
Нуб
Группа: Юзер
Сообщений: 1
Репутация: 0
Статус: Нет на сайте
Добрый день, такой вопросик:
Создал кучу мешей и теперь надо организовать их выбор, там у меня чувак бродит-вид от первого лица, надо чтобы при наведении мыши (то бишь прицела) объект подсвечивался (то есть было видно, что на него навели мышь), а при нажатии ЛКМ осуществлялась его деактивация (причем если он не нажал ЛКМ и отвел прицел в сторону-тоже деактивация), а также какой либо счетчик считает его выбранным. Причем надо чтобы это происходило 1 раз, а потом сколько не наводи, не щелкай - ничего не происходит. Как бы один раз использовал - и все
 
AndrewДата: Четверг, 05.02.2009, 19:53 | Сообщение # 2
Admin
Группа: Главный программист
Сообщений: 47
Репутация: 3
Статус: Нет на сайте
Сорри, долго не заходил на сайт, а кроме меня по-моему здесь некому ответить. wink

Значит так. Есть такие команды в Блитзе как CameraPick() и EntityPickMode(). Для каждого объекта (для которого необходим выбор) выставляешь EntityPickMode (mesh1,2) EntityPickMode (mesh2,2) .....

Обычно (если объектов много) это делается в цикле:
;Создаем эти объекты
Dim object(500)
For i=0 to 500
object(i)=CreateCube ()
EntityPickMode (object(i),2) ; Здесь указываем что эти объекты содержаться в списке выбираемых
next

CameraPick(camera,MouseX(),MouseY())
Указываешь координаты (экранные) к примеру (640,480) (Это вместо MouseX(),MouseY() ) и при попадании экранных координат (640,480) на объект в 3д пространстве, в функцию возвращаеться его хендл. А зная хендл можно сделать с объектом все что угодно, и подсвечивать в том числе.

Если что не понятно,-спрашивай. Могу код написать.

Насчет того чтобы использовать 1 раз, то для этого существуют флаги (в данном случае просто переменная).

Условие таково - если нажата клавиша и экранные координаты соответсвуют позиции объекта (CameraPick()) то приравниваем переменную Flag = 1. Затем проверяем:
If Flag = 0 then
<выполняем действие с объектом>
else
<запрещаем действие (выводим надпись что мол запрещено) или еще что-то...>
endif

 
  • Страница 1 из 1
  • 1
Поиск:


Copyright MyCorp © 2025