[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 1 из 1
  • 1
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Выделение
Выделение
VirusssДата: Воскресенье, 30.08.2009, 07:42 | Сообщение # 1
Подполковник
Группа: Пользователи
Сообщений: 412
Награды: 2
Репутация: 5
Статус: Offline
Как сделать так чтобы выделять мышкой?
 
deejexДата: Воскресенье, 30.08.2009, 10:02 | Сообщение # 2
заядлый прогер
Группа: Пользователи
Сообщений: 522
Награды: 2
Репутация: 14
Статус: Offline
Code
Type Entity
Field Ent%
Field Selected%
End Type

Function SetEnt(entity)
Entity_.Entity = New Entity
Entity_\Ent% = entity
EntityPickMode entity,2
End Function

Function SelectEnt(camera,x,y)
CameraPick(camera,x,y)
For Entity_.Entity = Each Entity
If Entity_\Ent% = PickedEntity() Then Entity_\Selected%=1
Next
End Function

Function CheckEnt(entity)
For Entity_.Entity = Each Entity
If Entity_\Ent% = entity And Selected%=1 Then Return 1
Next
End Function

Function DeselectAllEnt()
For Entity_.Entity = Each Entity
Selected%=0
Next
End Function

Функция SetEnt(интити) записывает объект, чтоб его можно было выделить
SelectEnt(камера,x,y) выделяет объект. То есть ты должен писать

Code
If MouseDown(1) Then SelectEnt(cam,MouseX(),MouseY())

CheckEnt(интити) возвращает выделен ли объект.
DeselectAllEnt() отменяет все выделения.




 
turBOДата: Среда, 02.09.2009, 15:33 | Сообщение # 3
Полковник
Группа: Администраторы
Сообщений: 297
Награды: 5
Репутация: 12
Статус: Offline
Логика правильная. В CheckEnt по Entity_\Ent% произвести действие над обьектом и проследить чтобы DeselectAllEnt не обнулила значения до CheckEnt.
Примерно так.


If 2+2<>4 Then Restart
 
VirusssДата: Среда, 23.09.2009, 21:14 | Сообщение # 4
Подполковник
Группа: Пользователи
Сообщений: 412
Награды: 2
Репутация: 5
Статус: Offline
А попроще?Я в блитсе пока не силен(совсем),поэтому мне интересно: что это за функция EntityPick() и как она работает?(Это не из вашей проги deejex,мне просто интересно wacko )
И ещё, часто когда делают выбор объекта мышкой,используют дополнительные переменные(типа мх#,my#)прошу,объясните для чего?А то я никак пойму :'(,и вообще по какому принцепу происходит выбор объектов? Оченб нада,а то я уже долго не могу понять cry
 
blitz3dДата: Четверг, 24.09.2009, 09:26 | Сообщение # 5
Admin
Группа: Администраторы
Сообщений: 203
Награды: 3
Репутация: 7
Статус: Offline
Пример работы EntityPick

перед тобой две таблетки - красная и синяя - какую ты выберешь?
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Выделение
  • Страница 1 из 1
  • 1
Поиск: