Перейти к содержанию

Обсуждение:Pixilang

Содержимое страницы недоступно на других языках.
Добавить тему
Материал из Викиучебника — открытых книг для открытого мира

3d анимая Пиксилэнг

[править]

Я долго пытался написать качественную графику на си шарп , но для виндовс компакт мобиле очень неудобно без большого компьютера, а с помощью этой программы , очень легко и быстро, ... програму я пишу как не странно не в блакноте а в экселе и копирую в блокнот перед сохранением. вод код программы которую мне удалось написать за 2 дня . 3d площадка со свободным вращением


--------- --------- -----

// арена 9 х 9 клеток по осям X и Z // Y = 0 , потом будем регулировать //----------------------------------------------------- //-----------------------------------------------------

s = 30000 u = s/10

// arena 10*10 точек ARX ARY ARZ

//объявляем массивы координат арены

 Arena_X = new_array(100)								
 Arena_Y = new_array(100)								
 Arena_Z = new_array(100)								

//----------------------------------------------------- //-----------------------------------------------------

// заполним архив ( сетку) с помощью цикла while clear(BLACK) // сетка X

ax=0								
bx=0								
cx=0								
while (ax<100)								
  {								
    if bx > 9								
     {								
       bx-10								
       clear(BLACK)								
      }								
   cx=(bx*u*2+u-s)								

Arena_X[ax] =cx

print("ax= $ax   bx= $bx  cx=  $cx",-100,-100+bx*10,#CCFFCC)								
frame 								
    ax+1								
    bx+1								
  }								

//----------------------------------------------------- //-----------------------------------------------------

// сетка Z

az=0								
bz=0								
cz=0								
dz=0								
while (az<100)								
  {								


    while (bz<10)								
     {								
       Arena_Z[az+bz] =  Arena_X[dz]								
      bz+1								
 								
     }								
      cz=Arena_Z[az]								
								
      print("az= $az  cz=  $cz ",-100, 10+dz*10,#CCFFCC)								
      frame 								
   dz+1								
   az+10								
   bz=0								
  }								

//----------------------------------------------------- //----------------------------------------------------- // циклом WHILE объеденяем 3 сетки

cube = new_array( 100 * 8 )								
ax=0								
while (ax<100)								
  {								
   cube[ ax* 8 + 0 ] = Arena_X[ax]								
   cube[ ax* 8 + 1 ] = Arena_Y[ax]								
   cube[ ax* 8 + 2 ] = Arena_Z[ax]								
 print("x",-100+ax*2 ,110,#CCFFCC)								
frame 								
    ax+1 								
   }								

//----------------------------------------------------- //----------------------------------------------------- // заполняем сетку граней //(9*9*2)=162 опять циклом while // по схеме // 00 0 1 2 3 4 5 6 7 8 9 // 10 0 1 2 3 4 5 6 7 8 9 // 20 0 1 2 3 4 5 6 7 8 9 // 30 0 1 2 3 4 5 6 7 8 9 // 40 0 1 2 3 4 5 6 7 8 9 // ... .. .. .. .. .. .. .. .. .. // 90 0 1 2 3 4 5 6 7 8 9 // клетки сетки будут такие // в клетке по 2 грани // 01) 00 01 10 , 01 10 11 // 02) 01 02 11 , 02 11 12 // ... .. .. .. .. .. .. .. .. .. // 08) 08 09 18 , 09 18 19 // ... .. .. .. .. .. .. .. .. .. // ... .. .. .. .. .. .. .. .. .. // 10) 10 11 20 , 11 20 21 // // левые верхние клетки имеют // координаты от 00 до 88, // отсюда видна закономерность // заполнения массива пар // теугольн. +0 +1 +10 , +1 +10 +11 // цвет возьмем для одних - один // для других - другой произвольный // далее будем регулировать // и так опять циклы

//----------------------------------------------------- //-----------------------------------------------------

ax=0								
az=0								
txz=0								
cube_t = new_array( 162 * 8 )								
while (ax<8)								
  {								
     while (az<80)								
        {								

// теугольн. +0 +1 +10 , +1 +10 +11

 cube_t[ txz * 8 + 0 ] = ax+az+0								
 cube_t[ txz * 8 + 1 ] = ax+az+1								
 cube_t[ txz * 8 + 2 ] = ax+az+10								
 cube_t[ txz * 8 + 3 ] = #f00000								
 cube_t[ txz * 8 + 4 ] = 256								
 cube_t[ (txz+1) * 8 + 0 ] = ax+az+1								
 cube_t[ (txz+1) * 8 + 1 ] = ax+az+10								
 cube_t[ (txz+1) * 8 + 2 ] = ax+az+11								
 cube_t[ (txz+1) * 8 + 3 ] = #0000f0								
 cube_t[ (txz+1) * 8 + 4 ] = 256								


 print("x",-100+txz ,120,#ff3322)								
frame								
         								
          az+10								
          txz+2								
        }								
      az=0								
      ax+1								
   }								

//----------------------------------------------------- //----------------------------------------------------- // пометим первый треугольник cube_t[ 0 * 8 + 3 ] = #ffff00 // пометим третий треугольник cube_t[ (2) * 8 + 3 ] = #00ff00

//----------------------------------------------------- //----------------------------------------------------- //----------------------------------------------------- //----------------------------------------------------- //----------------------------------------------------- //----------------------------------------------------- //----------------------------------------------------- //-----------------------------------------------------

start_timer( 0 )								
st:								
transp( 256 )								
clear( BLACK )								

//----------------------------------------------------- //-----------------------------------------------------


t = get_timer( 0 ) / 32 c = get_color( csin( t ) + 168, ccos( t ) + 180, csin( t / 2 ) + 198 )

sc2 = 0

again: //----------------------------------------------------- //----------------------------------------------------- t_rotate_x(350,0,0 ) //

t_reset								
t_scale(256,256,256 )								
t_rotate_z( t, 0, 0 )								
t_rotate_x( t*2,0,0 )								
t_rotate_y( t*3,0,0 )								

// transp( csin( t )+128) //прозрачность

transp(240)								

sort_triangles( cube, cube_t ) triangles3d( cube, cube_t ) $b=fps

print("** $b **",-40,0,#ffffff)

frame( 0 )								


go st