Показать сообщение отдельно
Старый 15.02.2007, 16:07   #8
Chuma
ПроЭктировщик
 
Регистрация: 23.11.2006
Сообщений: 130
Написано 3 полезных сообщений
(для 35 пользователей)
Re: 1 окно, 2 камеры

дабы закрыть тему - код, нашел в семплах у себя.

Graphics3D 800,600
SetBuffer BackBuffer()

cone=CreateCone(6)
cube=CreateCube()

EntityColor cube,255,128,128
EntityColor cone,128,128,64

effectlight=CreateLight(1)
PositionEntity effectlight,40,30,40
PointEntity effectlight,cube

topcam=CreateCamera()
CameraViewport topcam,0,300,400,300
CameraProjMode topcam,2

sidecam=CreateCamera()
CameraViewport sidecam,0,0,400,300
CameraProjMode sidecam,2

frontcam=CreateCamera()
CameraViewport frontcam,400,0,400,300
CameraProjMode frontcam,2

rendercam=CreateCamera()
CameraViewport rendercam,400,300,400,300

PositionEntity cone,50,0,50

PositionEntity cube,52,0,50

PositionEntity topcam, 51,10,50
PositionEntity sidecam, 61,0,50
PositionEntity frontcam, 51,0,60
PositionEntity rendercam, 56,5,55

PointEntity topcam,cone
TurnEntity topcam,0,0,180
PointEntity sidecam,cone
PointEntity frontcam,cone
PointEntity rendercam,cone

EntityParent topcam,cone
EntityParent sidecam,cone
EntityParent frontcam,cone
EntityParent rendercam,cone

While Not KeyDown(1)

TranslateEntity cone,(KeyDown(208)-KeyDown(200)),0,0
TranslateEntity cone,0,0,(KeyDown(203)-KeyDown(205))
WireFrame True

HideEntity rendercam
ShowEntity sidecam
ShowEntity topcam
ShowEntity frontcam

RenderWorld
Flip

WireFrame False

ShowEntity rendercam
HideEntity sidecam
HideEntity topcam
HideEntity frontcam

RenderWorld
Flip

Wend

и для vlad'а примерчик карты в углу....

Graphics3D 800,600
SetBuffer BackBuffer()


Global camera = CreateCamera()
CameraRange camera,0.1,1000

Global light = CreateLight()

Global radar = CreateSphere(5)
EntityParent radar,camera
ScaleEntity radar,0.2,0.2,0.01
PositionEntity radar,0.7,-0.3,1
EntityFX radar,1
EntityColor radar,100,100,255

Global player_radar_ent = CreateSphere()
EntityParent player_radar_ent,radar
ScaleEntity player_radar_ent,0.05,0.05,0.05
PositionEntity player_radar_ent,0,0,-2
EntityFX player_radar_ent,1

Type entity
	Field ent
	Field radar_ent
	Field e_type ; 0 = player, 1 = enemy
End Type


For loop = 1 To 20
	e.entity = New entity
	e\ent = CreateCube()
	e\radar_ent = CreateCube()
	EntityParent e\radar_ent,radar
	EntityFX e\radar_ent,1
	ScaleEntity e\radar_ent,0.05,0.05,0.05
	PositionEntity e\ent,Rnd(-20,20),0,Rnd(-20,20)
	HideEntity e\radar_ent
Next



While Not KeyHit(1)



	If KeyDown(200) Then MoveEntity camera,0,0,0.1
	If KeyDown(208) Then MoveEntity camera,0,0,-0.1
	If KeyDown(203) Then TurnEntity camera,0,1,0
	If KeyDown(205) Then TurnEntity camera,0,-1,0
	
	updateradar()
	UpdateWorld
	RenderWorld
	Flip
Wend
End

Function updateradar()

	For e.entity = Each entity
		If EntityDistance#(e\ent,camera) < 10 Then
			ShowEntity e\radar_ent
			x_dif# = EntityX(e\ent,True) - EntityX(camera,True)
			z_dif# = EntityZ(e\ent,True) - EntityZ(camera,True)
			PositionEntity e\radar_ent,x_dif/10,z_dif/10,-1
		Else
			HideEntity e\radar_ent
		End If
	Next
	
End Function
(Offline)
 
Ответить с цитированием