Показать сообщение отдельно
Старый 18.02.2004, 03:16
llllllllll вне форума Посмотреть профиль Отправить личное сообщение для llllllllll Найти все сообщения от llllllllll
  № 3  
llllllllll

Регистрация: Feb 2001
Сообщений: 1,893
Кстати вот тебе для полного счастья пример маленький ... на Линго как то проще и изящнее, я пока не смотрел особо новый Дир, а как выясняется JS сильно уступает Lingo в некоторых вещах (кое где JS вообще не имеет синтаксиса). Не поддерживаются всякие мат. операции с векторами, бесит использование symbol("symbolName") вместо #symbolName и т д - вобщем много чего, поживем увидим ...

Код:
function startMovie ()
{
      var i;
      var world;
      var modelResource;
      var model;
      var shader;
            
      world = _movie.newMember("shockwave3d");
      world.name = "SW3D";
      world.regPoint = point(0,0);
      
      modelResource = world.newModelResource("b", symbol("sphere"));
      modelResource.radius = 50;
      
      for(i=1;i<10;i++)
      {
          model = world.newModel("model"+i, modelResource);
          model.transform.rotation = JSMultiVector(randomVector(), vector(360,360,360));
          model.transform.position = JSMultiVector(randomVector(), vector(50,50,100));
          model.transform.scale = JSMultiVector(randomVector(), vector(2,2,2));
          model.userData.addProp(symbol("mRVector"), randomVector())
      }
      
      shader = world.getPropRef("shader", 1);
      shader.texture = null;
      shader.renderStyle = symbol("point");
      
      channel(1).makeScriptedSprite(world, point(0,0));
}

function stopMovie()
{
    channel(1).removeScriptedSprite();
    member("SW3D").erase();   
}

function exitFrame()
{
    var world;
    var model;
    
    world = member("SW3D");
    
    for(var i=1; i<10; i++)
    {
          model = world.getPropRef("model", i);
          model.rotate(1,2,3,symbol("self"));
          model.rotate(model.userData.mRVector,symbol("world"));
    }
    
    _movie.go(_movie.frame);    
}

function JSMultiVector(v1,v2)
{ 
    return vector(v1.x*v2.x,v1.y*v2.y,v1.z*v2.z);
}