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

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

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

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

Ответ
 
Опции темы
Старый 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)
 
Ответить с цитированием
Старый 29.08.2006, 19:52   #2
jimon
 
Сообщений: n/a
Re: Типы в типах. ???

мож типы надо обьявлять перед функциями ?
особо в код не вникал
где ошибка ?
 
Ответить с цитированием
Старый 29.08.2006, 22:06   #3
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Типы в типах. ???

Или покажи рабочий код, или скажи, какая ошибка и где она вылазит.
(Offline)
 
Ответить с цитированием
Старый 31.08.2006, 11:25   #4
radiantstudio
Оператор ЭВМ
 
Регистрация: 14.08.2006
Сообщений: 39
Написано 2 полезных сообщений
(для 2 пользователей)
Re: Типы в типах. ???

Рабочий код немогу выдернуть, много лишнего. Пока с этими типами разбирался ещё всякой ерунды наворотил.
Вот основа

[/code]
Type missile; Raketa
Field trail_handle
End Type

Type sTrail ;Shleif
Field trail.typetrail
End Type

Type typetrail
Field v1,v2,alpha#
End type
;создаём новую ракету
P.missile=New missile
k.strail=new strail
P\trail_handle=Handle(k)

;в функции Перебераем всё ракеты
for P.missile=Each missile
;находим шлейф данной ракеты
k.strail=Object.strail(P\trail_handle)
;удлинняем шлейф
k\trail.typetrail=new typetrail
k\trail\v1=...;добавляем вертекс
k\trail\v2=...;и ещё вертекс
next

;Это в функции обновления шлейфа
for k.strail=Each strail ;перебераем все шлейфы
for k\trail.typetrail=each typetrail ;пербираем все вертексы шлейфа
;сдесь я изменяю альфу вертекса текущего шлейфа
VertexColor k\surf,k\trail\v1,255,255,255,k\trail\alpha
VertexColor k\surf,k\trail\v2,255,255,255,k\trail\alpha
k\trail\alpha=k\trail\alpha-0.01
next
next
[code]
Перебор типа typetrail хранящийся в типе strail я правильно делаю?
И обращение через handle и object ???

А ошибка вылазит на Renderworld в тот момент когда я выпускаю вторую ракету до уничтожения первой.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Типы в масиве ArtemkA 2D-программирование 2 25.06.2009 01:05
Типы чисел! Dimo4ik Основной форум 4 20.06.2009 02:43
типы в блитзе vadya Blitz3D 6 05.03.2007 23:29


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


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