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

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

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

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

Ответ
 
Опции темы
Старый 19.01.2007, 10:44   #31
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Re: Гусеница

Сообщение от HolyDel
2SBJoker: анимация текстуры и ее скролл -несколько разные вещи, имхо.
Про анимацию ты первым заговорил, причём недогнал и привёл жуткий пример на основе анимированных имаджей. О чём речь вообще нешла.

Во вторых:
animation

сущ.
1) анимация (мультипликация)
2) воодушевление; живость; вдохновение, оживление


В текущем разговоре это слово использовалось во втором значении, а именно "оживить", заставить двигаться текстуру,т.е. анимировать. А не использовать предварительно анимированую последовательность картинок.
__________________
(Offline)
 
Ответить с цитированием
Старый 20.01.2007, 02:50   #32
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Гусеница

2SBJoker. Ok.

2Fant если кроме танка ничего больше анимированного в сцене нету, то легче всего изменять параметр UpdateWorld.
т.е. должно быть примерно так UpdateWorld(spd*f), где spd - скорость танка, а f - фактор, который подбирается экспериментально.
(Offline)
 
Ответить с цитированием
Старый 20.01.2007, 23:10   #33
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Гусеница

Короче фишка такая. Я не могу удалить пробелом все элементы. То есть я понимаю из-за чего ошибка, но не знаю как ее можно обойти. Пробел - удаление.

Подкажите что можно сделать?

Graphics3D 640,480,16,2


Const UPS=60

Const Max=10; - number of trackS

Type tank1
Field xPosition#
Field yPosition#
Field zPosition#
Field obj
End Type

Dim cube (Max);track
Dim cube2(Max);track

Global speed#=0
Global ok=0
Global ok1=True 
kdown=KeyDown(200)


;Cam & light
camera=CreateCamera()
CameraClsColor camera,0,0,255
PositionEntity camera,0,10,0
CameraRange camera,1,20
RotateEntity camera ,90,0,0

l=CreateLight()
RotateEntity l,45,0,0

;ground=CreateCube()
;PositionEntity ground,0,-1,0
;ScaleMesh  ground,15,1,15
;EntityColor ground,128,128,192

;tankModel=CreateCube() 

t1.tank1=New tank1
;Create details of tank
tank1=CreateCube()
ScaleMesh tank1,1,.1,.5
PositionEntity  tank1,0,0,0

tower=CreateSphere(4, tank1)
ScaleMesh tower,.3,.3,.3
PositionMesh tower,0,.2,0

wheel1=CreateCube( tank1)
ScaleMesh wheel1,.5,.05,.05
PositionMesh wheel1,0,0,.6

wheel2=CreateCube(tank1)
ScaleMesh wheel2,.5,.05,.05
PositionMesh wheel2,0,0,-.6

cannon=CreateCylinder(6,tower)
ScaleMesh cannon,.1,.5,.1
RotateMesh cannon,0,0,100
PositionMesh cannon,.6,.4,0


;Original cube. It makes tracks
cube(0)=CreateCube()
ScaleEntity cube(0),.025,.025,.025
HideEntity cube(0)

;animated track
For  i = 1 To Max

cube(i) = CopyEntity(cube(0))
cube2(i) = CopyEntity(cube(0))

EntityParent cube(i), tank1
EntityParent cube2(i), tank1

RotateEntity cube(i),0,0,0
PositionEntity cube(i),-1,-.25,.6
SetAnimKey cube(i),0

RotateEntity cube(i),0,0,0
PositionEntity cube(i),-1,.25,.6
SetAnimKey cube(i),60

RotateEntity cube(i),0,0,0
PositionEntity cube(i),1,.25,.6
SetAnimKey cube(i),120

RotateEntity cube(i),0,0,0
PositionEntity cube(i),1,-.25,.6
SetAnimKey cube(i),180

RotateEntity cube(i),0,0,0
PositionEntity cube(i),-1,-.25,.6
SetAnimKey cube(i),240


RotateEntity cube2(i),0,0,0
PositionEntity cube2(i),-1,-.25,-.6
SetAnimKey cube2(i),0

RotateEntity cube2(i),0,0,0
PositionEntity cube2(i),-1,.25,-.6
SetAnimKey cube2(i),60

RotateEntity cube2(i),0,0,0
PositionEntity cube2(i),1,.25,-.6
SetAnimKey cube2(i),120

RotateEntity cube2(i),0,0,0
PositionEntity cube2(i),1,-.25,-.6
SetAnimKey cube2(i),180

RotateEntity cube2(i),0,0,0
PositionEntity cube2(i),-1,0,-.6
SetAnimKey cube2(i),240

Next


For i=1 To Max
AddAnimSeq cube(i),240
AddAnimSeq cube2(i),240
Next

For i=1 To Max
Animate cube(i),1,1,0, i*24
Animate cube2(i),1,1,0, i*24
Next
i=0
While i<240

UpdateWorld
i=i+1
Wend



;Color set
black_br=CreateBrush(0,0,0) 
PaintMesh  tank1,black_br 
white_br=CreateBrush(255,255,255) 
PaintMesh tower,white_br 
grey_br=CreateBrush(119,136,122)
PaintMesh cannon,grey_br
orange_br=CreateBrush(226,118,29)
PaintMesh wheel1,orange_br
PaintMesh wheel2,orange_br
rose_br=CreateBrush(214,58,218)
PaintMesh tower,rose_br

;addMeshes (details of tank)
AddMesh tower, tank1
AddMesh  wheel1, tank1
AddMesh  wheel2, tank1
AddMesh  cannon, tank1

FreeEntity tower
FreeEntity wheel1
FreeEntity wheel2
FreeEntity cannon


period=1000/UPS
time=MilliSecs()-period

Repeat
	Repeat
		elapsed=MilliSecs()-time
	Until elapsed
	ticks=elapsed/period
	tween#=Float(elapsed Mod period)/Float(period)
	
	For k=1 To ticks
		time=time+period


If KeyHit(57)
FreeEntity cube(0)
For i=1 To max
HideEntity cube(i)
HideEntity  cube2(i)
Next


FreeEntity tank1

End If


If  Not KeyDown(200)
 
For i=1 To Max 
Local p#=AnimTime#(cube(i))
SetAnimTime cube(i),p#
p#=AnimTime#(cube2(i))
SetAnimTime cube2(i),p#
Next
EndIf



If KeyHit(200) Then 
 p#=AnimTime#(cube(1))
For i=1 To Max
Animate cube(i),1,1,0, i*24
Animate cube2(i),1,1,0, i*24
Next
i=0
WaitKey
While i<240+p#
UpdateWorld
i=i+1
Wend

EndIf



For t1.tank1=Each tank1
If KeyDown(203) Then TurnEntity  tank1,0,3,0
If KeyDown(205) Then TurnEntity  tank1,0,-3,0
If KeyDown(200) Then MoveEntity  tank1,.1,0,0
If KeyDown(208) Then MoveEntity  tank1,-.1,0,0	
Next
	


		If KeyHit(1) End
		UpdateWorld	
	Next
	
	RenderWorld tween
	Flip

Forever
(Offline)
 
Ответить с цитированием
Старый 21.01.2007, 01:13   #34
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Гусеница

лучше - бы весь код в студию.
а так сильно имхо:
if keydown(57)
for t.tank1=each tank1
freeentity t\obj ; удаляем модель
delete t
next
endif
(Offline)
 
Ответить с цитированием
Старый 21.01.2007, 14:30   #35
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Гусеница

2HolyDel но вообще-то код, который я выложил и есть - весь

И так не работает) посмотри в чем там ошибка! Вернее ясно в чем она, вопрос как ее избежать!?
(Offline)
 
Ответить с цитированием
Старый 22.01.2007, 02:28   #36
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Гусеница

Fant, а что вообще надо? просто удалить танк?
выйди за цикл и удали его. или проверяй на удаленность, если удален танк то никакие операции не должны над ним производиться.
вот рабочий пример:
Graphics3D 640,480,16,2


Const UPS=30

Const Max=10; - number of trackS

Type tank1
Field xPosition#
Field yPosition#
Field zPosition#
Field obj
End Type

Dim cube (Max);track
Dim cube2(Max);track

Global speed#=0
Global ok=0
Global ok1=True 
kdown=KeyDown(200)


;Cam & light
camera=CreateCamera()
CameraClsColor camera,0,0,255
PositionEntity camera,0,10,0
CameraRange camera,1,20
RotateEntity camera ,90,0,0

l=CreateLight()
RotateEntity l,45,0,0

;ground=CreateCube()
;PositionEntity ground,0,-1,0
;ScaleMesh  ground,15,1,15
;EntityColor ground,128,128,192

;tankModel=CreateCube() 

t1.tank1=New tank1
;Create details of tank
tank1=CreateCube()
ScaleMesh tank1,1,.1,.5
PositionEntity  tank1,0,0,0

tower=CreateSphere(4, tank1)
ScaleMesh tower,.3,.3,.3
PositionMesh tower,0,.2,0

wheel1=CreateCube( tank1)
ScaleMesh wheel1,.5,.05,.05
PositionMesh wheel1,0,0,.6

wheel2=CreateCube(tank1)
ScaleMesh wheel2,.5,.05,.05
PositionMesh wheel2,0,0,-.6

cannon=CreateCylinder(6,tower)
ScaleMesh cannon,.1,.5,.1
RotateMesh cannon,0,0,100
PositionMesh cannon,.6,.4,0


;Original cube. It makes tracks
cube(0)=CreateCube()
ScaleEntity cube(0),.025,.025,.025
HideEntity cube(0)

;animated track
For  i = 1 To Max

cube(i) = CopyEntity(cube(0))
cube2(i) = CopyEntity(cube(0))

EntityParent cube(i), tank1
EntityParent cube2(i), tank1

RotateEntity cube(i),0,0,0
PositionEntity cube(i),-1,-.25,.6
SetAnimKey cube(i),0

RotateEntity cube(i),0,0,0
PositionEntity cube(i),-1,.25,.6
SetAnimKey cube(i),60

RotateEntity cube(i),0,0,0
PositionEntity cube(i),1,.25,.6
SetAnimKey cube(i),120

RotateEntity cube(i),0,0,0
PositionEntity cube(i),1,-.25,.6
SetAnimKey cube(i),180

RotateEntity cube(i),0,0,0
PositionEntity cube(i),-1,-.25,.6
SetAnimKey cube(i),240


RotateEntity cube2(i),0,0,0
PositionEntity cube2(i),-1,-.25,-.6
SetAnimKey cube2(i),0

RotateEntity cube2(i),0,0,0
PositionEntity cube2(i),-1,.25,-.6
SetAnimKey cube2(i),60

RotateEntity cube2(i),0,0,0
PositionEntity cube2(i),1,.25,-.6
SetAnimKey cube2(i),120

RotateEntity cube2(i),0,0,0
PositionEntity cube2(i),1,-.25,-.6
SetAnimKey cube2(i),180

RotateEntity cube2(i),0,0,0
PositionEntity cube2(i),-1,0,-.6
SetAnimKey cube2(i),240

Next


For i=1 To Max
AddAnimSeq cube(i),240
AddAnimSeq cube2(i),240
Next

For i=1 To Max
Animate cube(i),1,1,0, i*24
Animate cube2(i),1,1,0, i*24
Next
i=0
While i<240

UpdateWorld
i=i+1
Wend



;Color set
black_br=CreateBrush(0,0,0) 
PaintMesh  tank1,black_br 
white_br=CreateBrush(255,255,255) 
PaintMesh tower,white_br 
grey_br=CreateBrush(119,136,122)
PaintMesh cannon,grey_br
orange_br=CreateBrush(226,118,29)
PaintMesh wheel1,orange_br
PaintMesh wheel2,orange_br
rose_br=CreateBrush(214,58,218)
PaintMesh tower,rose_br

;addMeshes (details of tank)
AddMesh tower, tank1
AddMesh  wheel1, tank1
AddMesh  wheel2, tank1
AddMesh  cannon, tank1

FreeEntity tower
FreeEntity wheel1
FreeEntity wheel2
FreeEntity cannon


period=1000/UPS
time=MilliSecs()-period
is_tank=1
Repeat
	Repeat
		elapsed=MilliSecs()-time
	Until elapsed
	ticks=elapsed/period
	tween#=Float(elapsed Mod period)/Float(period)
	
	For k=1 To ticks
		time=time+period


If KeyHit(57)
FreeEntity cube(0)
For i=1 To max
HideEntity cube(i)
HideEntity  cube2(i)
Next
FreeEntity tank1
is_tank=0
End If

If is_tank
	

If  Not KeyDown(200)
 
For i=1 To Max 
Local p#=AnimTime#(cube(i))
SetAnimTime cube(i),p#
p#=AnimTime#(cube2(i))
SetAnimTime cube2(i),p#
Next
EndIf



If KeyHit(200) Then 
 p#=AnimTime#(cube(1))
For i=1 To Max
Animate cube(i),1,1,0, i*24
Animate cube2(i),1,1,0, i*24
Next
i=0
WaitKey
While i<240+p#
UpdateWorld
i=i+1
Wend

EndIf



For t1.tank1=Each tank1
If KeyDown(203) Then TurnEntity  tank1,0,3,0
If KeyDown(205) Then TurnEntity  tank1,0,-3,0
If KeyDown(200) Then MoveEntity  tank1,.1,0,0
If KeyDown(208) Then MoveEntity  tank1,-.1,0,0	
Next
	

EndIf

		If KeyHit(1) End
		UpdateWorld	
	Next
	
	RenderWorld tween
	Flip

Forever
P.S. Извиняй что не заметил что код весь.
(Offline)
 
Ответить с цитированием
Старый 22.01.2007, 16:59   #37
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Гусеница

2HolyDel спасибо! Теперь я понял как все удалить!
(Offline)
 
Ответить с цитированием
Старый 25.01.2007, 21:22   #38
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Гусеница

Снова траблы. Я хочу гусеницу представить не через dim(массив), а через type (тип)

Вот я вынес из кода одну гусеницу, и не понимаю...не могу найти ошибку и даже понять как это сотворить?

track2 - сделана через массив и работает (если закомментить все, что касается track)

вот код
Graphics3D 640,480,16,2

Const UPS=60

Const max=10


Dim track2(Max);track

Type track
Field obj[10]
End Type 

cam=CreateCamera()

RotateEntity cam,90,0,0
PositionEntity cam,0,3,0

l=CreateLight()

track(0)=CreateCube()
ScaleEntity track(0),.025,.025,.025
HideEntity track(0)

;animated track
For  i = 1 To Max
t.track=New track

t\obj = CopyEntity(track(0))

track2(i) = CopyEntity(track(0))


For t.track=Each track
RotateEntity t\obj,0,0,0
PositionEntity t\obj,-1,-.25,.6
SetAnimKey t\obj,0

RotateEntity t\obj,0,0,0
PositionEntity t\obj,-1,.25,.6
SetAnimKey t\obj,60

RotateEntity t\obj,0,0,0
PositionEntity t\obj,1,.25,.6
SetAnimKey t\obj,120

RotateEntity t\obj,0,0,0
PositionEntity t\obj,1,-.25,.6
SetAnimKey t\obj,180

RotateEntity t\obj,0,0,0
PositionEntity t\obj,-1,-.25,.6
SetAnimKey t\obj,240


RotateEntity track2(i),0,0,0
PositionEntity track2(i),-1,-.25,-.6
SetAnimKey track2(i),0

RotateEntity track2(i),0,0,0
PositionEntity track2(i),-1,.25,-.6
SetAnimKey track2(i),60

RotateEntity track2(i),0,0,0
PositionEntity track2(i),1,.25,-.6
SetAnimKey track2(i),120

RotateEntity track2(i),0,0,0
PositionEntity track2(i),1,-.25,-.6
SetAnimKey track2(i),180

RotateEntity track2(i),0,0,0
PositionEntity track2(i),-1,-.25,-.6
SetAnimKey track2(i),240
Next
;animation set
For i=1 To Max
For t.track=Each track
AddAnimSeq t\obj,240

AddAnimSeq track2(i),240


Animate t\obj,1,1,0, i*24
Animate track2(i),1,1,0, i*24
Next
Next

i=0
While i<240

UpdateWorld
i=i+1
Wend


period=1000/UPS
time=MilliSecs()-period

Repeat
	Repeat
		elapsed=MilliSecs()-time
	Until elapsed
	ticks=elapsed/period
	tween#=Float(elapsed Mod period)/Float(period)
	
	For k=1 To ticks
		time=time+period	
		If KeyHit(1) End
		UpdateWorld	
	Next


If  Not KeyDown(200) Or  KeyDown(208)
	For i=1 To Max
	For t.track=Each track
If t\obj<>0 Then
	Local p#=AnimTime#(track(i))
	SetAnimTime track(i),p#
EndIf
If track2(i)<>0 Then
	p#=AnimTime#(track2(i))
	SetAnimTime track2(i),p#
EndIf
	Next
	Next
		EndIf


If KeyHit(208) Then
 p#=AnimTime#(track(1))
	For i=1 To Max
	For t.track=Each track
Animate t\obj,1,-1,0, i*24
Animate track2(i),1,-1,0, i*24
	Next
	Next
i=0
WaitKey
While i<240+p#
UpdateWorld
i=i+1
Wend
	EndIf

If KeyHit(200) Then
 p#=AnimTime#(track(1))
	For i=1 To Max
		For t.track=Each track
Animate t\obj,1,1,0, i*24
	Next
Animate track2(i),1,1,0, i*24
	Next

	
i=0
WaitKey
While i<240+p#
UpdateWorld
i=i+1
Wend
	EndIf
		


	


	RenderWorld tween
	Flip

Forever
Next
(Offline)
 
Ответить с цитированием
Старый 27.01.2007, 11:43   #39
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Гусеница

Форум благополучно спит?

Я пытался сделать так, как нужно, но просто я не до конца понял, как это реализовать!
(Offline)
 
Ответить с цитированием
Старый 27.01.2007, 17:38   #40
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Re: Гусеница

Сравни две строки:
Field obj[10]
и любую из последующих, например:
t\obj = CopyEntity(track(0))
"Ти всё-таки дапусирь маренький асибка!"(с)

Иначе говоря, всё, что ниже камента "animated track"- неправильно.
Теперь думай.
(Offline)
 
Ответить с цитированием
Старый 28.01.2007, 12:34   #41
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Гусеница

Сообщение от Diplomat
Сравни две строки:
Field obj[10]
и любую из последующих, например:
t\obj = CopyEntity(track(0))
"Ти всё-таки дапусирь маренький асибка!"(с)

Иначе говоря, всё, что ниже камента "animated track"- неправильно.
Теперь думай.
Попробую подумать, но то, что там ошибка я, конечно и сам догадался. Догадался весьма легко: программка не запускалась.
(Offline)
 
Ответить с цитированием
Старый 28.01.2007, 13:22   #42
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Re: Гусеница

Сразу видно, что вначале у тебя в поле типа одномерный массив obj[10], а потом- почему-то простая переменная obj.
Естественно, такой кандибобер не будет работать.
И первый цикл, кстати, делает не 10 траков для одной гусеницы, а пытается клепать 10 гусениц с одним траком каждая.
Всё. Знаю, конечно, что поначалу вьехать очень трудно, но больше подсказывать не буду. Иначе трудно будет определить, понял ты, или списал. А это надо понять самому.
Думай.
(Offline)
 
Ответить с цитированием
Старый 28.01.2007, 20:10   #43
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Гусеница

[code]
Type track
Field obj[10]
End Type
t.track=New track
For t.track=Each track
t\obj[10]=CreateCube()
ScaleEntity t\obj[10],.025,.025,.025
PositionEntity t\obj[10],.1*.2,0,0
Next
[\code]

Я так создаю 10 кубиков или 1 кубик? - оказывается что 1
А как мне через positionEntity это проверить? так i*20

Мне нужно создать 10 кубиков через тип а потом из анимировать. Я иду правильным путем? - ну та это никак не могу сообразить((((((
(Offline)
 
Ответить с цитированием
Старый 28.01.2007, 21:05   #44
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Re: Гусеница

Конечно, ты создаешь один кубик. А как иначе?
Вот смотри, если отвлечься от типов вообще, и рассматривать поля типов как простые переменные и массивы (коими они и являются), то всё становится намного проще:
1. Ты создал массив на 11 элементов: Field obj[10].
2. Ты присвоил 10-му элементу массива хендл свежесозданного куба: t\obj[10]=CreateCube()
3. Ну и всё. Других 10 кубов ты нигде не создаешь. Т.е. цикла по элементам массива в твоем коде нет как нет.
А без цикла ты не заполнишь 10 элементов массива. Ферштейн?
[blitz]For n=0 to 10
t\obj[n]=CreateCube()
Next[/blitz]
Или грубо говоря
[blitz]t\obj[0]=CreateCube()
t\obj[1]=CreateCube()
t\obj[2]=CreateCube()
;...
t\obj[8]=CreateCube()
t\obj[9]=CreateCube()
t\obj[10]=CreateCube()[/blitz]
Вот.

Мне нужно создать 10 кубиков через тип а потом из анимировать. Я иду правильным путем?
Если не вдаваться в жЫзненный и популярный среди юзверей вопрос "а зачем тебе вообще создавать 10 кубиков через тип и анимировать их вручную?!!", то можно предположить, что идешь ты правильным путем, но идешь не понимая его сути.
Это не беда, я, к примеру, когда был юн и учил БЕЙСИК-МСХ, тоже не сразу понял, что такое ветвления, экспотенциальная форма числа привела меня в замешательство, массивы- в ступор (чем, чйорт подйери, они отличаются от обычных переменных?!! ), сабрутины показались редкостно ужасным изобретением, а из всех операторов цикла я выбрал оператор безусловного перехода, который тогда именовался еще раздельно: "Go To"...

Так что давай, учись.
(Offline)
 
Ответить с цитированием
Старый 28.01.2007, 21:15   #45
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Гусеница

ТОка хотел написать! Я все сделал, кроме в скобках...[n]
Graphics3D 640,480,16,2
Type track
Field obj
End Type 
;Ñîçäàåì îðèãèíàëüíû êóá
OriginalTrack=CreateCube()
ScaleEntity OriginalTrack,.025,.025,.025
HideEntity OriginalTrack
 
For a=0 To 9;äåëàåì 10 êóáèêîâ, êîòîðûå íóæíî ðàññòàâèòü ïî-÷åëîâå÷åñêè
t.track=New track
t\obj=CopyEntity (originalTrack)
 
RotateEntity t\obj,0,0,0
PositionEntity t\obj,-1,-.25,.6
SetAnimKey t\obj,0
RotateEntity t\obj,0,0,0
PositionEntity t\obj,-1,.25,.6
SetAnimKey t\obj,60
RotateEntity t\obj,0,0,0
PositionEntity t\obj,1,.25,.6
SetAnimKey t\obj,120
RotateEntity t\obj,0,0,0
PositionEntity t\obj,1,-.25,.6
SetAnimKey t\obj,180
RotateEntity t\obj,0,0,0
PositionEntity t\obj,-1,-.25,.6
SetAnimKey t\obj,240
AddAnimSeq t\obj,240
Animate t\obj,1,1,0, i*24
Next
 
Const UPS=60
cam=CreateCamera()
RotateEntity cam,0,0,0
PositionEntity cam,0,0,-1
l=CreateLight()
period=1000/UPS
time=MilliSecs()-period
Repeat
Repeat
elapsed=MilliSecs()-time
Until elapsed
ticks=elapsed/period
tween#=Float(elapsed Mod period)/Float(period)
 
For k=1 To ticks
time=time+period 
If KeyHit(1) End
UpdateWorld 
Next
 
RenderWorld tween
Flip
Forever
Ну только расположить не могу (впрочем как и раньше). Они у меня все в одной точке начинаются! Понимаешь?

А теперь покажу, если сделать по-твоему. мне кажется оба варианта эквиваленты, но как же их расположить в форме прямоугольника! Вот в этом и загвоздка!

Graphics3D 640,480,16,2
Type track
Field obj[10]
End Type 
;Ñîçäàåì îðèãèíàëüíû êóá
OriginalTrack=CreateCube()
ScaleEntity OriginalTrack,.025,.025,.025
HideEntity OriginalTrack
 
For a=0 To 9;äåëàåì 10 êóáèêîâ, êîòîðûå íóæíî ðàññòàâèòü ïî-÷åëîâå÷åñêè
t.track=New track
t\obj[a]=CopyEntity (originalTrack)
 
RotateEntity t\obj[a],0,0,0
PositionEntity t\obj[a],-1,-.25,.6
SetAnimKey t\obj[a],0
RotateEntity t\obj[a],0,0,0
PositionEntity t\obj[a],-1,.25,.6
SetAnimKey t\obj[a],60
RotateEntity t\obj[a],0,0,0
PositionEntity t\obj[a],1,.25,.6
SetAnimKey t\obj[a],120
RotateEntity t\obj[a],0,0,0
PositionEntity t\obj[a],1,-.25,.6
SetAnimKey t\obj[a],180
RotateEntity t\obj[a],0,0,0
PositionEntity t\obj[a],-1,-.25,.6
SetAnimKey t\obj[a],240
AddAnimSeq t\obj[a],240
Animate t\obj[a],1,1,0, i*24
Next
 
Const UPS=60
cam=CreateCamera()
RotateEntity cam,0,0,0
PositionEntity cam,0,0,-1
l=CreateLight()
period=1000/UPS
time=MilliSecs()-period
Repeat
Repeat
elapsed=MilliSecs()-time
Until elapsed
ticks=elapsed/period
tween#=Float(elapsed Mod period)/Float(period)
 
For k=1 To ticks
time=time+period 
If KeyHit(1) End
UpdateWorld 
Next
 
RenderWorld tween
Flip
Forever
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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