Показать сообщение отдельно
Старый 29.08.2006, 17:01   #1
radiantstudio
Оператор ЭВМ
 
Регистрация: 14.08.2006
Сообщений: 39
Написано 2 полезных сообщений
(для 2 пользователей)
Типы в типах. ???

Помогите пожалуйста
Почему мой код не работает.
Пречитал все темы про типы.Делал вроде как учили.

Function create_missile()
P.phmissile = New phmissile ;создаём ракету
	P\life=0
	k.strail = New strail ; создаём шлейф
	k\life=0
	k\mesh=CreateMesh()
	EntityFX k\mesh,2+32
	k\surf=CreateSurface( k\mesh )
	k\life=k\life+1
	k\trail.typetrail=New typetrail
	k\trail\alpha=1
	k\trail\v1=AddVertex  (k\surf,EntityX (p\entity,1)+0.1,EntityY (p\entity,1)-0.1,EntityZ (p\entity,1)+0.1)
	k\trail\v2=AddVertex  (k\surf,EntityX (p\entity,1)+0.1,EntityY (p\entity,1)-0.1,EntityZ (p\entity,1))
	P\trail_handle=Handle(k) ;передаём указатель на шлейф
End Function
Function update_missile()
	For P.phmissile= Each phmissile
		P\Life=P\Life+1
		k.strail=Object.strail(P\trail_handle) ;получаем указатель
		k\life=k\life+1
		k\trail.typetrail=New typetrail ;продолжаем шлейф
		k\trail\alpha=1
		k\trail\v1=AddVertex  (k\surf,EntityX (P\entity,1)-0.1,EntityY (P\entity,1)-0.1,EntityZ (P\entity,1),0,0)
		k\trail\v2=AddVertex  (k\surf,EntityX (P\entity,1)+0.1,EntityY (P\entity,1)-0.1,EntityZ (P\entity,1),0,0)
		AddTriangle  k\surf,k\vert,k\vert+2,k\vert+3
		AddTriangle  k\surf,k\vert,k\vert+3,k\vert+1
		AddTriangle  k\surf,k\vert,k\vert+3,k\vert+2
		AddTriangle  k\surf,k\vert,k\vert+1,k\vert+3
		k\vert=k\vert+2
                 ; управление ракетой	
	Local dx#=EntityX(target)-EntityX (P\entity)
	Local dy#=EntityY(target)-EntityY (P\entity)
	Local dz#=EntityZ(target)-EntityZ (P\entity)
	AlignToVector P\entity,dx,dy,dz,0,0.005
	MoveEntity p\entity,0,0,0.5
	TurnEntity p\entity,0,0,1
	Next
End Function 
Function update_trail()
	For t.strail=Each strail
	If t\life>0
	t\life=t\life+1
		For t\trail.typetrail=Each typetrail
			If t\trail\alpha>0
				t\trail\alpha=t\trail\alpha-0.001
				VertexColor t\surf,t\trail\v1,255,255,255,t\trail\alpha
				VertexColor t\surf,t\trail\v2,255,255,255,t\trail\alpha
			Else
				t\life=t\life-1
				Delete t\trail
				EndIf
			Next
		Else
			FreeEntity t\mesh
			Delete t
		EndIf 
	Next
End Function 


Type typetrail
	Field v1,v2,alpha#
End Type

Type strail
	Field mesh,surf,vert,life
	Field trail.typetrail
End Type 

Type phmissile
	Field trail_handle
	Field entity,body
	Field target_number%
	Field x,y,z
	Field life%
	Field d_pitch#,d_yaw#
	Field snd_ch
	Field no_smoke
End Type
(Offline)
 
Ответить с цитированием