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

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

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

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

Ответ
 
Опции темы
Старый 31.08.2009, 18:57   #16
MiXaeL
Бывалый
 
Аватар для MiXaeL
 
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений
(для 267 пользователей)
Ответ: Camera pick!

if Picked<>0 item_info$=EntityName$(Picked)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
maxim7788 (31.08.2009)
Старый 01.09.2009, 16:34   #17
maxim7788
AnyKey`щик
 
Аватар для maxim7788
 
Регистрация: 29.08.2009
Сообщений: 2
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Camera pick!

Большое спасибо за подсказку. Хотелось бы продолжить эту тему на конкретном примере с типами. Имеется Type Box с переменными. Создаем 100 кубиков и заполняем их переменные значениями. С помощью Picked мы можем выделить любой из кубиков и получить значения EntityName и EntityX, а затем присвоить эти значения каким то переменным (в нашем случае значения присваиваются переменным item_info$ и item_xxx#). Отсюда возникает вопрос: а можно ли прочесть переменные Type "пикнутого" кубика (чтобы не использовать перебор всех кубиков) и затем присвоить их каким-либо переменным ... ну например - "пикнуть" какой-нибудь кубик, прочитать его переменную room\index и присвоить её значение переменной room_id#. Заранее спасибо.

Graphics3D 1024,768,32,1
SetBuffer BackBuffer()

Global cam=CreateCamera()
PositionEntity cam,100,400,120
TurnEntity cam,90,0,0
light=CreateLight()
RotateEntity light,30,0,0
SetFont LoadFont("courier",18)

;===================================================

Type box
	Field entity
	Field index
	Field x
	Field z
End Type 

For a=1 To 10
	For b=1 To 10
		i=i+1
		room.box=New box
		room\index=i
		room\x=30*a		
		room\z=30*b
		room\entity=CreateCube()
		NameEntity room\entity,"item_"+i
		EntityPickMode room\entity,2
		ScaleEntity room\entity,10,2,10
		PositionEntity room\entity, room\x, 0, room\z
	Next
Next

;====================================================

While Not KeyHit(1)
	
	x_mouse=MouseX()
	y_mouse=MouseY()
	
	Picked=CameraPick(cam,MouseX(),MouseY())
	
	; ------------------
	If Picked<>0 Then 
		item_info$=EntityName(Picked)
		item_xxx#=EntityX(Picked)
	Else 
		item_info$="none"
		item_xxx#=0
	EndIf
	
	; ------------------  
	If Picked<>target Then
		If target Then EntityAlpha target,1
		target=Picked
	EndIf
	If target
		EntityAlpha target,Sin( MilliSecs() )*.5+.5
	EndIf
				
UpdateWorld
RenderWorld

	Color 255,0,0
	Text 20, 40, "EntityName..."+item_info$
	Text 20, 60, "EntityX......"+item_xxx#		
	Text 20,100, "room_id....."+room_id#
				
	Rect x_mouse,y_mouse-3,1,7	
	Rect x_mouse-3,y_mouse,7,1
	
Flip
Cls
Wend
End
(Offline)
 
Ответить с цитированием
Старый 01.09.2009, 20:26   #18
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Camera pick!

Можно
Только при создании элемента типа нужно в имя ентити записать хендл элемента типа (по сути это порядковое значение элемента)

                         room.box=New box
		room\index=i
		room\x=30*a		
		room\z=30*b
		room\entity=CreateCube()
                          room\name$="item_"+i
		NameEntity room\entity,Handle (room)
Потом при пике выдергиваешь хендл и по нему извлекаешь из типа нужный элемент
If Picked<>0 Then 
                     room.box=Object.box(EntityName(Picked))
		item_info$=room\name$		
                         item_xxx#=EntityX(Picked)
	Else 
		item_info$="none"
		item_xxx#=0
	EndIf
__________________
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо tormoz за это полезное сообщение:
EvilOkta (09.11.2010), maxim7788 (01.09.2009), Nex (02.09.2009)
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Camera Match Round Работы 8 19.02.2007 20:23
Camera root 3D-программирование 9 22.05.2006 18:54
Camera Fant 3D-программирование 21 27.11.2005 21:02


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


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