Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/06/2007, 07:21
pedrojo
 
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