forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Стена из кубов (http://forum.boolean.name/showthread.php?t=18383)

CostUm 19.07.2013 19:41

Стена из кубов
 
Наверно это будет один из самых глупых вопросов, но я никак не могу сдружиться с For/Next, и с ихней помощью создать стену из кубов. Прошу помощи в осуществлении и желательно объяснении этого)

ABTOMAT 19.07.2013 20:33

Ответ: Стена из кубов
 
For x=1 To 10

; всё что тут находится повторится 10 раз
; при этом переменная x будет каждый раз разная, от 1 до 10

; можно создавать куб и ставить ему координату x
; тогда будет 10 кубов и каждый с разной координатой

Next

Что именно тебе не понятно с For/Next ?

CostUm 19.07.2013 20:47

Re: Стена из кубов
 
т.е. мне писать

For x=1 To 10
cub=CreateCube()
PositionEntity cub,x,0,0
Next

?

Так они создаются слишком плотно, как избегать это?

Arton 19.07.2013 20:55

Ответ: Re: Стена из кубов
 
Цитата:

Сообщение от CostUm (Сообщение 263841)
т.е. мне писать

For x=1 To 10
cub=CreateCube()
PositionEntity cub,x,0,0
Next

?

Так они создаются слишком плотно, как избегать это?

С остальными координатами то же самое сделай, или поставь их на Rnd.

CostUm 19.07.2013 20:56

Re: Стена из кубов
 
Ладно, вроде разобрался, спасибо за помощь)

RBK 19.07.2013 21:02

Ответ: Стена из кубов
 
Код:

For x=1 To 10
  cub=CreateCube()
  PositionEntity cub,x*[число],0,0
Next

Чем больше число, тем дальше будут раздвинуты кубы.

Wegox 21.07.2013 04:37

Ответ: Стена из кубов
 
Вот сделал яркий пример как использовать For next и массив

Код:

Global FL_Pitch2#,FL_Yaw2#,FL_Roll2#,FL_XSpeed2#,FL_YSpeed2#,FL_ZSpeed2#
Function FreeLook2(FL_Cam2)
                FL_Pitch2#=FL_Pitch2#-(-MouseYSpeed()*0.02) : FL_Pitch2#=FL_Pitch2#/1.2
    FL_Yaw2#=FL_Yaw2#+-(MouseXSpeed()*0.02) : FL_Yaw2#=FL_Yaw2#/1.2
    MoveMouse (GraphicsWidth()/2,GraphicsHeight()/2)
    FL_ZSpeed2#=FL_ZSpeed2#+Float(KeyDown(17)-KeyDown(31))*0.14 : FL_ZSpeed2#=FL_ZSpeed2#/1.14;  w & s
                FL_XSpeed2#=FL_XSpeed2#+Float(KeyDown(32)-KeyDown(30))*0.14 : FL_XSpeed2#=FL_XSpeed2#/1.14 ; a & d
                FL_YSpeed2#=FL_YSpeed2#+Float(KeyDown(19)-KeyDown(33))*0.14 : FL_YSpeed2#=FL_YSpeed2#/1.14 ; r & f
                FL_Roll2#=(FL_Yaw2#*1.1)-(FL_XSpeed2#*2.3)
    MoveEntity FL_Cam2,FL_XSpeed2#,FL_YSpeed2#+Abs(FL_Roll2#*FL_XSpeed2#)/50,FL_ZSpeed2#
                Local cp2#=EntityPitch(FL_Cam2,True)+FL_Pitch2#
                If cp2<-89 Then cp2=-89
                If cp2>89 Then cp2=89
                RotateEntity FL_Cam2,cp2,EntityYaw(FL_Cam2)+FL_Yaw2#,FL_Roll2#
End Function
Graphics3D 1024,768,32,2
SetBuffer BackBuffer()

camera=CreateCamera()
PositionEntity camera,0,2,-10

light=CreateLight()
RotateEntity light,90,0,0


Global Move#=0
Dim cubeABC(11,11,11)

For a=1 To 11
  For b=1 To 11
      For c=1 To 11

    cubeABC(a,b,c)=CreateSphere()
       
    PositionEntity cubeABC(a,b,c),a*2,b*2,c*2
    EntityColor cubeABC(a,b,c),128*a,32*b,78*c

      Next
    Next
Next

While Not KeyDown( 1 )
 FreeLook2(camera)

For a=2 To 11
  For b=2 To 11
      For c=2 To 11

      Move#=Sin((MilliSecs()/(50)*(a*b/c*c/a)))
         
      EntityAlpha cubeABC(a,b,c),Move#
      ScaleEntity cubeABC(a,b,c),1*Move#,1*Move#,1*Move#

      Next
  Next
Next

RenderWorld

Flip

Wend

End



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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot