|
3D-программирование Вопросы, касающиеся программирования 3D мира |
29.08.2006, 17:01
|
#1
|
Оператор ЭВМ
Регистрация: 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
|
|
Re: Типы в типах. ???
мож типы надо обьявлять перед функциями ?
особо в код не вникал
где ошибка ?
|
|
|
29.08.2006, 22:06
|
#3
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Re: Типы в типах. ???
Или покажи рабочий код, или скажи, какая ошибка и где она вылазит.
|
(Offline)
|
|
31.08.2006, 11:25
|
#4
|
Оператор ЭВМ
Регистрация: 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)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
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, время: 12:28.
|