Выбор объекта, как сделать?
Здорова, такой вопросик:
Создал кучу мешей и теперь надо организовать их выбор, там у меня чувак бродит-вид от первого лица, надо чтобы при наведении мыши (то бишь прицела) объект подсвечивался (то есть было видно, что на него навели мышь), а при нажатии ЛКМ осуществлялась его деактивация (причем если он не нажал ЛКМ и отвел прицел в сторону-тоже деактивация), а также какой либо счетчик считает его выбранным. Причем надо чтобы это происходило 1 раз, а потом сколько не наводи, не щелкай - ничего не происходит. Как бы один раз использовал - и все... Уже голову сломал - и все безрезультатно, не получается... |
Ответ: Выбор объекта, как сделать?
CameraPick ?
|
Re: Выбор объекта, как сделать?
))) делай каконить пик - потом всё что хошь, а потом поменый переменную котору проверял при пике на что-то другое (ну чтоб тока 1 раз можно было использовать)
|
Ответ: Выбор объекта, как сделать?
Да, реализовывал выбор через CameraPick, вот функция:
Function MouseTest() Local mx#,my# mx#=MouseX() my#=MouseY() Local pick pick=CameraPick (camera,mx#,my#); выбирает объект, находящийся в области просмотра камеры и координатах mx и my (в данном случае указателя мыши) If pick<>0 Then ;если указатель мыши находится на объекте SelectEntity PickedEntity() If MausHitR Then; если нажата правая клавиша мыши DeleteTex PickedEntity(); EndIf If MausHitL Then SelectBox PickedEntity() EndIf EndIf End Function А вот функции SelectEntity PickedEntity(), DeleteTex PickedEntity(), SelectBox PickedEntity() у меня реализовать никак не получалось, уже как только не пробовал... |
Re: Выбор объекта, как сделать?
Код:
Graphics3D 800,600,32,2 |
Ответ: Выбор объекта, как сделать?
Разобрался в твоем коде, хорошо сделан, только не совсем то... Видишь тут какая проблема, у тебя кубы исчезают после отметки, а надо сделать такую ситуацию: Допустим на доме решетка, и мне надо проверить целая ли она, я подхожу, визуально осматриваю, а после осмотра щелкаю на нее (причем когда я навожу на нее курсор-она подсвечивается). Она помечается как осмотренная, т.е. заносится в какой-то счетчик и перестает реагировать на наведение курсора и на щелчки ЛКМ. При этом если я не щелкаю на нее, а просто отвел курсор в сторону она перестает подсвечиваться, а если еще раз навел - опять подсвечивается, пока не щелкну на ней ЛКМ... такая вот задачка Решетка то никуда не девается после осмотра:)
Кстати я только начал программировать, с графикой вроде разобрался, а в типах и движении - вообще тяжело дается:) |
Ответ: Выбор объекта, как сделать?
Тип присвой обьектам пикнутым новый и все - в чем проблема то :)
|
Ответ: Выбор объекта, как сделать?
Алекс, NitE спасибо, получилось, что хотел...
|
Ответ: Выбор объекта, как сделать?
в боке спасибо нада говорить :) ---> вон тама кнопярочка
|
Ответ: Выбор объекта, как сделать?
Только лучше не использовать CameraPick каждый цикл, на некоторых картах будут тормоза.
Лучше LinePick , при виде от 1-ого лица это не сложно. |
Ответ: Выбор объекта, как сделать?
А неужели не видно что не каждый цикл используеться пик , а определяеться после клика мыши :)
|
Re: Выбор объекта, как сделать?
|
Ответ: Выбор объекта, как сделать?
Нет, не тормозит... тут еще проблема наклюнулась, создаю забор, с помощью CopyMesh размножаю, а копиям ПикМод не присваивается и получается, что только самый последний пролет на выбор реагирует, а остальной забор - нет. Перерисовывать с помощью каждый раз загружать объект неохота, там координатов много высчитывать. Может кто знает, как эту проблему решить:
Код:
.Zabor |
Re: Выбор объекта, как сделать?
код читать лень но должно быть что-то вроде
Код:
zabor=loadmesh("shit") |
Ответ: Выбор объекта, как сделать?
Чего-то не догоняю, откуда у entitypickmode zabor,2,2 второй параметр - цифра? В хелпе нарисовано, что он может быть только TRUE или FALSE...
В том-то и проблема, что я примерно так и делал... только объект я не грузил, а с помощью кубиков и текстур создавал... НО НЕ РАБОТАЕТ!!! Еще вопрос - у меня игрок пока состоит из пивота, к которому крепятся камера и прямоугольник. Пытался определить расстояние от игрока до объекта (PickedEntity ()) с помощью EntityDistance (player,PickedEntity ()) - возвращает почему-то ноль, на какое бы расстояние к объекту не подходил... причем в качестве игрока проверял и камеру, и пивот и прямоугольник... |
Часовой пояс GMT +4, время: 12:27. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot