Estou começando a pesquisar esta nova API para J2ME, só que a única referëncia que encontrei é toda em ingles, to lutando aki, mas meu ingles é muito fraco, se alguém já tem alguma experiencia nessa API ou queira desbravar esta API junto comigo, estamos aí
pessoal, eu não to conseguindo achar o .jar que contém a API eu só consigo achar a especificação das classes, mas não o .jar
Porquê vc quer um .jar ?
Se vc for usar o WTK, não tem que se preocupar com isto pois a própria distribuição já vem prontinha para usar, igual ao que vc viu no link que passou.
não te entendi, mesmo usando o WTK você tem que usar aquele conjunto de classes javax.microedition.m3g
Tem certeza que está com o WTK 2.2 ?
É nela que está os exemplos do site, certo ?!
Normalmente não é necessário mexer em nada.
Basta codar !
ah, eu uso a versão 2.1 do WTK, pra Linux ainda não tem o 2.2 então é isso
Tem sim, o beta.
Achei que vc estava usando ele, afinal, aquele artigo que vc postou faz uso dele.
eu sei que tem, não tem a versão pra Linux ainda , talvez seja por causa daquele acordo que a Sun e a Microsoft estão fazendo tsc, tsc
Quem precisa de Linux quando se tem Windows ? Hahahaha… :mrgreen:
Viu, pelo menos nisto, o Windows é bom.
Vc tem antes sua ferramenta nele e depois no Linux.
olha… não porque todo mundo está nessa de oba-oba do Linux, mas eu uso o Linux a algum tempinho e acho melhor que o Windows, mas deve ter centenas de posts sobre isso…
Não sou a favor do Windows não…
Apenas te mostrei que vc padece por usar uma plataforma diferente do que a que a SUN esta priorizando referente ao WTK. Só isto ! :lol:
Pessoal, uma coisa tem que ser dita:
O linux esta ganhando terreno, porém a MS ainda continua na frente con suas Versões piratas. :?:
Enquanto não conseguirmos deixar o linux tao facil e marketzado qto o Windows não conseguiremos derrubar os licros da Poderosa(MS).
Na duvida de qual usar , particione a HD e use os Dois!
Na verdade esse tópico não seria pra discutir Linux x Microsoft, gostaria que alguém me reposndesse se já fez algo implementando a Mobile 3D API
nao cheguei a usar a Mobile 3D API, mas andei dando uma olhada nos javadocs e ela parece bastante com o Java 3D, mas um pouco mais simplificado e com menos recursos.
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.CommandListener;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.m3g.*;
public class Ex3D extends MIDlet implements CommandListener {
private Display myDisplay = null;
private JesterCanvas myCanvas = null;
private Timer myRefreshTimer = new Timer();
private TimerTask myRefreshTask = null;
private Command exitCommand = new Command("Exit", Command.ITEM, 1);
private World myWorld = null;
/**
* JesterTestlet - default constructor.
*/
public Ex3D() {
// Set up the user interface.
myDisplay = Display.getDisplay(this);
myCanvas = new JesterCanvas(this);
myCanvas.setCommandListener(this);
myCanvas.addCommand(exitCommand);
}
/**
* startApp()
*/
public void startApp()
throws MIDletStateChangeException {
myDisplay.setCurrent(myCanvas);
try {
// Load a file.
Object3D[] roots =
Loader.load("/pogoroo.m3g");
// Assume the world is the first root node loaded.
myWorld = (World)roots[0];
// Force a repaint so that we get the update loop started.
myCanvas.repaint();
} catch(Exception e) {
e.printStackTrace();
}
}
/**
* pauseApp()
*/
public void pauseApp() {
// Release resources.
myWorld = null;
}
/**
* destroyApp()
*/
public void destroyApp(boolean unconditional)
throws MIDletStateChangeException {
myRefreshTimer.cancel();
myRefreshTimer = null;
// Release resources.
myWorld = null;
}
/**
* MIDlet paint method.
*/
public void paint(Graphics g) {
// We are not fully initialised yet; just return.
if(myCanvas == null || myWorld == null)
return;
// Delete any pending refresh tasks.
if(myRefreshTask != null) {
myRefreshTask.cancel();
myRefreshTask = null;
}
// Get the current time.
long currentTime = System.currentTimeMillis();
// Update the world to the current time.
int validity = myWorld.animate((int)currentTime);
// Render to our Graphics.
Graphics3D myGraphics3D = Graphics3D.getInstance();
myGraphics3D.bindTarget(g);
myGraphics3D.render(myWorld);
myGraphics3D.releaseTarget();
// Subtract time taken to do the update.
validity -= System.currentTimeMillis() - currentTime;
if(validity < 1) {
// The validity is too small; allow a minimum of 1ms.
validity = 1;
}
// If the validity is not infinite schedule a refresh task.
if(validity < 0x7fffffff) {
// Create a new refresh task.
myRefreshTask = new RefreshTask();
// Schedule an update.
myRefreshTimer.schedule(myRefreshTask, validity);
}
}
/**
* Handle commands.
*/
public void commandAction(Command cmd, Displayable disp) {
if (cmd == exitCommand) {
try {
destroyApp(false);
notifyDestroyed();
} catch(Exception e) {
e.printStackTrace();
}
}
}
/**
* Inner class for refreshing the view.
*/
private class RefreshTask extends TimerTask {
public void run() {
// Get the canvas to repaint itself.
myCanvas.repaint();
}
}
/**
* Inner class for handling the canvas.
*/
class JesterCanvas extends Canvas {
Ex3D myTestlet;
/**
* Construct a new canvas.
*/
JesterCanvas(Ex3D Testlet) { myTestlet = Testlet; }
/**
* Initialize self.
*/
void init() { }
/**
* Clean up and destroy.
*/
void destroy() { }
/**
* Ask myTestlet to paint itself.
*/
protected void paint(Graphics g) { myTestlet.paint(g); }
}
}
No Windows funciona blz, que raiva
Eu tentei pegar o .jar que tem aquelas classes de 3D e colocar no lib do WTK como no lib do projeto, ele até compila blz, mas dá o seguinte erro
java.lang.NoClassDefFoundError: javax/microedition/m3g/Loader: Cannot create class in system package
at Ex3D.startApp(+13)
at javax.microedition.midlet.MIDletProxy.startApp(+7)
at com.sun.midp.midlet.Scheduler.schedule(+266)
at com.sun.midp.main.Main.runLocalClass(+28)
at com.sun.midp.main.Main.main(+116)
Execution completed.
alguém poderia me ajudar