27/06/2007, 07:21
|
| | Fecha de Ingreso: enero-2007
Mensajes: 55
Antigüedad: 18 años Puntos: 1 | |
Re: problema con las superclases, import java.util.Enumeration;
import javax.media.j3d.BoundingLeaf;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.WakeupCriterion;
import javax.media.j3d.WakeupOnViewPlatformEntry;
import javax.media.j3d.WakeupOr;
public class Activated extends FlockBehavior{
WakeupCriterion[] ActivatedCriterion;
WakeupOr boundCriterionActivated;
BoundingSphere boundingSphereActivated[]= new BoundingSphere[numberPointsFinal];
BoundingLeaf boundingLeafActivated[]= new BoundingLeaf[numberPointsFinal];
public Activated(BranchGroup branchGroup){
super(branchGroup);
}
public Activated(BranchGroup branchGroup, BoundingSphere boundingSphere[], BoundingLeaf boundingLeaf[]){
super(branchGroup);
boundingSphereActivated = boundingSphere;
boundingLeafActivated = boundingLeaf;
}
public void initialize(){
ActivatedCriterion = new WakeupCriterion[numberPointsFinal];
for(int i=0; i<numberPointsFinal; i++){
ActivatedCriterion[i]=new WakeupOnViewPlatformEntry(boundingSphereActivated[i]);
}
boundCriterionActivated = new WakeupOr(ActivatedCriterion);
wakeupOn(boundCriterionActivated);
System.out.println("Se ha inicializado el Activated");
}
public void processStimulus(Enumeration criteria){
for(int i=0; i<numberPointsFinal; i++){
if(ActivatedCriterion[i].hasTriggered()){
if(super.activatedPoints[i]==0){
(super.activatedPoints[i])=1; //significa que ese punto está dentro del ViewPlatform activado
}
else{
(super.activatedPoints[i])=1;
}
}
}
wakeupOn(boundCriterionActivated);
}
}
///////////////////////////////////////
Este es el código de la clase Activated (el de la clase Desactivated es casi igual lo que en vez de poner activatedPoints[] a 1 lo pone a 0
Como veis son comportamientos en java 3d, y se supone que saltan con la condición de disparo, mi problema sale cuando entro en Activated cambio el activatedPoints[0] a 1 (cambiandolo en la superclase con super.activatedPoints[0]=1) y luego salta el Desactivated y me dice que activatedPoints[0] vale 0 (siendo que antes le había dicho que fuese 1) ¿Por qué sucede esto? Gracias de antemano por vuestra ayuda |