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

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

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

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

Ответ
 
Опции темы
Старый 23.04.2011, 05:05   #1
metalpasha
AnyKey`щик
 
Регистрация: 10.02.2008
Сообщений: 13
Написано 0 полезных сообщений
(для 0 пользователей)
Печаль Связанные списки (тип Массив)

Привет Всем !
Помогите Очень нужна help
Очень интересно

Type Mesh4f
	Field x#,y#,z#,r# 
End Type

Type Teleport
Field En
Field pos_a.Mesh4f 
End Type

То без проблем  Создаю!

t.Teleport=new Teleport	
	m.Mesh4f=new Mesh4f
	m\x=10 : 	m\y=15 :	m\z=20 : 	m\r=45
t\pos_a.Mesh4f=m.Mesh4f

;-----------------------------------
а так у меня я не знаю как 
Type Mesh4f
	Field x#,y#,z#,r# 
End Type

Type Tri_test ; ВРЕМЕНО
  Field p.Mesh4f[3] ; Тут Массив из Типов
End Type

Type Teleport
Field En
Field pos_a. Tri_test
End Type




t.Teleport=new Teleport	
t1. Tri_test =new Tri_test
	;А тут я не знаю как
	m.Mesh4f=new Mesh4f 

ни так m.Mesh4f[3]=new Mesh4f
ни так m[3].Mesh4f=new Mesh4f
	и не так m(3).Mesh4f=new Mesh4f

t\pos_a. Tri_test =t1. Tri_test
хотя на сам тип в типе (массив) не ругается значит правильно Объявил
(Offline)
 
Ответить с цитированием
Старый 23.04.2011, 07:54   #2
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: Связанные списки (тип Массив)

Не совсем понял что именно ты хочеш добится этим кодом... Позже вдумавшись в название, у меня родилась (оО) теория что ты хош сделать ))
П.с. В приведенном коде так ниче и не понял, хотя вроде слышал что както так можно пользоватся типами...
Всеже привожу свой говнокодерский вариант)
Type Mesh4f
	Field x#,y#,z#,r# 
End Type
Type Tri_test ; Чё за хня хз
  Field Mesh4f%[3] ; Проще было сразу в телепорты запихать, 
;но эт не мое дело)
End Type
Type Teleport
  Field En
  Field Tri_testHandle%
End Type

;Создаем всякую гадость
t.Teleport=new Teleport
t\En=1;я так понял это ID телепорта?
  t1. Tri_test =new Tri_test
    For gg%=0 to 3
       m.Mesh4f=new Mesh4f
       m\x#=15.0
       m\y#=22.5
       m\z#=399.1
       m\r#=99.0
       t1\Mesh4f[gg%]=Handle(m)
    Next
t\Tri_testHandle%=Handle(t1)

;Теперь можно получить доступ к нужным координатам нужного 
;телепорта (ппц закручено)
For Tp.Teleport = Each Teleport
   If Tp\En=1
      TrTst.Tri_test=Object.Tri_test(Tp\Tri_testHandle%)
      For gg%=0 to 3
         Crds.Mesh4f=Object.Mesh4f(TrTst\Mesh4f[gg%])
         Print gg%
         Print Crds\x#
         Print Crds\y#
         Print Crds\z#
         Print Crds\r#
      Next
      Exit
   EndIf
Next
Waitkey()
(Offline)
 
Ответить с цитированием
Старый 23.04.2011, 08:54   #3
metalpasha
AnyKey`щик
 
Регистрация: 10.02.2008
Сообщений: 13
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Связанные списки (тип Массив)

Спасибо очень хороший вариант
Я уже думал тупа вот так
Замутит

Type Tri_f ; 
  Field p0.Mesh3f ; 
  Field p1.Mesh3f ; 
  Field p2.Mesh3f ; 
  Field p3.Mesh3f ; 

  Field t0.Mesh2f; 
  Field t1.Mesh2f; 
  Field t2.Mesh2f; 
  Field t3.Mesh2f; 
End Type
Указатели на массив это круто
Мне надо было именно так
>Не совсем понял что именно ты хочеш добится этим кодом.

В типе Teleport
Нужен внутренний Тип Tri_f
А уже в Этом Типе массив p.Mesh3f[3] и t.Mesh2f[3];
А уже в них переменные
Type Mesh3f
	Field x#,y#,z#
End Type
Type Mesh2f
	Field x#,y#
End Type

Type Tri_f ; 
  Field p.Mesh3f[3] ; // точки треугольника в  пространстве
  Field t.Mesh2f[3]; // текстурные координаты треугольника
End Type

Type Teleport
Field En
Field pos_a.Tri_f
End Type
Вообще если копилятор не ругался на
Type Tri_f ; 
  Field p.Mesh3f[3] ; // точки треугольника в  пространстве
  Field t.Mesh2f[3]; // текстурные координаты треугольника
End Type
Такую вереницу значит всё правильно
Я только не знаю как заполнит ну и как достать
Но если это всё же не реально Твой Вариант лучше чем мой (пришлось бы использоват)

Type Tri_f ;
  Field p0.Mesh3f ; 
  Field p1.Mesh3f ; 
  Field p2.Mesh3f ; 
  Field p3.Mesh3f ; 

  Field t0.Mesh2f; 
  Field t1.Mesh2f; 
  Field t2.Mesh2f; 
  Field t3.Mesh2f; 
End Type
Спасибо!!!! Если есть другой вариант с удовольвием посмотрю
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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