salim
06-07-2006, 08:45
:help:
Sto realizzando il gioco della roulette in java 3D in cui faccio uso di un timer che di tick in tick mi fa ruotare il cilindro con la pallina fino a che la pallina si ferma e mi restituisce il numero estratto. A questo punto per visualizzare il numero estratto faccio uso di un tabellone, uguale a quello usato nel gioco, in cui implemento il metodo segnaEstratto(int estratto) che mi aggiunge una sferetta alla classe Tabella che estende TransformGroup. Da un'altra classe appena ho il numero estratto invoco tale metodo.
Il problema :muro: è che la sferetta non viene renderizzata e io credo che ciò non avviene perchè sto aggiungendo un nodo allo scene graph a runtime. Come dovrei fare per renderizzare la sfera?
Di seguito vi riporto il metodo segnaEstratto(int estratto):
public void segnaEstratto(int estratto)
{
//Crea l'aspetto della sfera
Appearance app2=new Appearance();
//Assegna un Materiale all'aspetto
Color3f color=new Color3f(1f,1f,1.0f);
Color3f black=new Color3f(Color.RED);
app2.setMaterial(new Material(color,black,color,black,80.0f));
Sphere gettone=newSphere (0.05f,Primitive.GENERATE_NORMALS,app2);
TransformGroup tg=new TransformGroup();
if(estratto == 0) //per esempio esce lo 0
{
System.out.println("**********estratto: "+estratto);
tg.setCapability (TransformGroup.ALLOW_TRANSFORM_WRITE);
tg.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND);
tg.setCapability(TransformGroup.ALLOW_CHILDREN_WRITE);
Transform3D disegna=new Transform3D();
disegna.setTranslation(new Vector3f(0.0f,0.0f,0.0f));
tg.setTransform(disegna);
tg.addChild(gettone);
this.addChild(tg);
}
}
Grazie a tutti quelli che risponderanno!!!!! :)
Sto realizzando il gioco della roulette in java 3D in cui faccio uso di un timer che di tick in tick mi fa ruotare il cilindro con la pallina fino a che la pallina si ferma e mi restituisce il numero estratto. A questo punto per visualizzare il numero estratto faccio uso di un tabellone, uguale a quello usato nel gioco, in cui implemento il metodo segnaEstratto(int estratto) che mi aggiunge una sferetta alla classe Tabella che estende TransformGroup. Da un'altra classe appena ho il numero estratto invoco tale metodo.
Il problema :muro: è che la sferetta non viene renderizzata e io credo che ciò non avviene perchè sto aggiungendo un nodo allo scene graph a runtime. Come dovrei fare per renderizzare la sfera?
Di seguito vi riporto il metodo segnaEstratto(int estratto):
public void segnaEstratto(int estratto)
{
//Crea l'aspetto della sfera
Appearance app2=new Appearance();
//Assegna un Materiale all'aspetto
Color3f color=new Color3f(1f,1f,1.0f);
Color3f black=new Color3f(Color.RED);
app2.setMaterial(new Material(color,black,color,black,80.0f));
Sphere gettone=newSphere (0.05f,Primitive.GENERATE_NORMALS,app2);
TransformGroup tg=new TransformGroup();
if(estratto == 0) //per esempio esce lo 0
{
System.out.println("**********estratto: "+estratto);
tg.setCapability (TransformGroup.ALLOW_TRANSFORM_WRITE);
tg.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND);
tg.setCapability(TransformGroup.ALLOW_CHILDREN_WRITE);
Transform3D disegna=new Transform3D();
disegna.setTranslation(new Vector3f(0.0f,0.0f,0.0f));
tg.setTransform(disegna);
tg.addChild(gettone);
this.addChild(tg);
}
}
Grazie a tutti quelli che risponderanno!!!!! :)