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í
Mobile 3D Graphics API for J2ME
16 Respostas
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