Показать сообщение отдельно
Старый 21.03.2007, 12:39   #14
Chuma
ПроЭктировщик
 
Регистрация: 23.11.2006
Сообщений: 130
Написано 3 полезных сообщений
(для 35 пользователей)
Re: Кировск 3d - карта города

Сообщение от MoKa
Приношу извенения, что постю сдесь не совсем по теме, но вот относительно хранения ресурсов, вы используете Паки, можно получить об этом информацию? Нужен ли дополнительный софт, какие приемущества этого видахранения, сложно ли вытянуть ресурсы?
Собственно моя тяга к пакерам связана лишь любовью к "изящности" хранения ресурсов - ненавижу огромные кучи файла посоле инсталляции.

Много всяких перепробовал остановился на классическом Терабит Датапакер. В принципе, найти его и получить информацию о нем легко - но все же:
Поддерживает шифрование, пакование в exe и т.п. Работает шустро - темповый каталог можно указывать самому.
Инициализируется легко 3 строчки

PakOutputDir "" ; This can be set anywhere, a good example would be "C:\"
PakInit "Data.Pak", $********, "TEMP", $*; Cut And Paste this from the GUI PakMaker
PakBulkOverWrite = False ; Set this to True when in Development / False when Released
Из доп файлов - только ГУЕвый пакер и длл (нужны только для пака). На файлах ресурсов размером менее 3 мб я не успеваю отследить появление темпа - что, несомненно, позитивно...
Для пущей надежности теоретически возможных свих дальнейших проектов коммерческой направленности попытался развить эту тему - http://www.boolean.name/showthread.php?t=3129 (Если вдруг все-таки ктото решит сделать "подменяемые ресурсы" - поделитесь сорцами, ок?)

ЗЫ. MoKa, вопрос по превьюхе и данному тобою сорце.
Для начала, как у меня сделано - если выбираем модель, то копируем ее во вторую камеру. ПРименив твой код - у меня масштабируется оригинал... попробую набросать код:
Graphics3D 640,480,16,2
cam=CreateCamera()
cam2=CreateCamera()
PositionEntity cam2,0,-99950,0
CameraViewport cam2,GraphicsWidth()-100,GraphicsHeight()-100,100,100
CameraClsColor cam2,150,150,150

l=CreateLight()
sp =CreateCube()
PositionEntity sp,0,0,20


EntityPickMode sp,2
Repeat
If MouseHit(1)
       ent=CameraPick(cam,MouseX(),MouseY())
        If ent name$=EntityName(sp)
                    If showmodel=0 Then name$=EntityName(sp):showmodel=CopyEntity(sp):

Else
If showmodel<>0 Then FreeEntity showmodel:showmodel=0:
               EndIf
		UpdateWorld

		If showmodel=0
CameraProjMode cam2,0

Else

CameraProjMode cam2,1
PositionEntity showmodel,-100,-100000,0
TurnEntity showmodel,0,-1,0
EntityAlpha showmodel,0.2
PointEntity cam2,showmodel
ResizeMesh(showmodel,1,1,1,proporcional=0)
EndIf
	
	
	RenderWorld tween
	Flip

Forever


Function ResizeMesh(Mesh,w#,h#,d#,proporcional=0)
mw#=MeshWidth(Mesh)
mh#=MeshHeight(Mesh)
md#=MeshDepth(Mesh)

Select proporcional
Case 1
ScaleMesh Mesh,mw/w,mw/w,mw/w
Case 2
ScaleMesh Mesh,mh/h,mh/h,mh/h
Case 3
ScaleMesh Mesh,md/d,md/d,md/d
Default
ScaleMesh Mesh,mw/w,mh/h,md/d
End Select

End Function
Вроде должен работать... (блитца под рукой нет - подрехтовал какойто исходник в браузере)
Вопрос к профессионалам - что я делаю не так? =)) Ведь не может же работа с "копиентитированным" обектов влиять на оригинал, так?
(Offline)
 
Ответить с цитированием