Обсуждение: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