Войти
ПрограммированиеФорумВеб

Загрузка моделей из Jar-файла

Advanced: Тема повышенной сложности или важная.

#0
23:17, 26 дек. 2013

Здравствуйте! Помогите пожалуйста разобраться с такой проблемой:
осваиваю Jirr и хочу чтобы модели (3DS,X,BSP) грузились из JAR файла.
У меня пока не получается.
Даже такая схема как:
    URL path_mesh=getClass().getResource("/DATA/dwarf.x");
    IAnimatedMesh mesh=smgr.getMesh(path_mesh.getPath());
Не работает :(
Мне это всё надо, чтобы использовать irrlicht под Web с помощью Webstart
Создал JNLP файлик - движок впринципе работает, но вот модельки и текстуры не грузятся.
То ест если подитожить вышесказанное: проблема загрузить модели и текстуры из Jar-файла.
Может кто-нибудь знает в чём тут дело, может кто-то такое делал. Привожу код Java:

import net.sf.jirr.*;
import java.awt.*;
import java.awt.event.*;
import java.net.URL;

public class Test3D extends Frame implements WindowListener{
  private IAnimatedMeshSceneNode node;
  public Test3D(){
        addWindowListener(this);
    java.lang.System.loadLibrary ("irrlicht_wrap");
    try{
      IrrlichtDevice device=Jirr.createDevice(E_DRIVER_TYPE.EDT_OPENGL,new dimension2di(640,480),32);
      device.setWindowCaption("Тест движка irrlicht");
      IVideoDriver driver=device.getVideoDriver();
      ISceneManager smgr=device.getSceneManager();
      IGUIEnvironment guienv=device.getGUIEnvironment();
      guienv.addStaticText("Hello world",new recti(10,10,260,22),true);
      //IAnimatedMesh mesh=smgr.getMesh("DATA/dwarf.x");//Это загрузка с диска - так работает в eclipse, но не на сервере

      //***** Так по идее должно было бы работать, читая из Jar файла, однако не работает
                        URL path_mesh=getClass().getResource("/DATA/dwarf.x");
      IAnimatedMesh mesh=smgr.getMesh(path_mesh.getPath());
                        //***********************************************************************************************

      node=smgr.addAnimatedMeshSceneNode(mesh);
      smgr.addCameraSceneNode(null,new vector3df(0,30,-100),new vector3df(0,0,0));

      while (device.run()){
        driver.beginScene(true,true,new SColor(255,100,101,140));
        smgr.drawAll();
        guienv.drawAll();
        driver.endScene();     
      }
    device.drop();
    }catch (Exception e){e.printStackTrace();}
  }
 
  public void windowOpened(WindowEvent e){}
  public void windowClosed(WindowEvent e){}
  public void windowIconified(WindowEvent e){}
  public void windowDeiconified(WindowEvent e){}
  public void windowActivated(WindowEvent e){}
  public void windowDeactivated(WindowEvent e){}
  public void windowClosing(WindowEvent e){System.exit(0);}
 
  public static void main(String[] args) {

    Test3D test3D=new Test3D();
    System.out.print("SUCCESSFUL!");
  }

}


#1
9:29, 27 дек. 2013

Если работаешь в еклипсе ,то на папке со своими файлами ткни Build Path - Use Source folder. А вообще лучше использовать FileInputStream и тп.

ПрограммированиеФорумВеб

Тема в архиве.