ShootingStars/ShootingTest/src/mygame/WeaponProjectileCollisionControl.java
Chris@Chris-HP 488078f532 Add HitStarControl and StarPointControl,
Fixes Collision
2013-06-07 08:05:58 +02:00

56 lines
1.5 KiB
Java

package mygame;
import com.jme3.bounding.BoundingVolume;
import com.jme3.collision.CollisionResult;
import com.jme3.collision.CollisionResults;
import com.jme3.renderer.RenderManager;
import com.jme3.renderer.ViewPort;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;
import com.jme3.scene.control.AbstractControl;
import com.jme3.scene.control.Control;
/**
*
* @author Snowsun
*/
public class WeaponProjectileCollisionControl extends AbstractControl {
private Node starNode;
private BoundingVolume boundingVolume;
private CollisionResults results;
public WeaponProjectileCollisionControl(Node starNode) {
this.starNode = starNode;
results = new CollisionResults();
}
@Override
public void setSpatial(Spatial spatial) {
super.setSpatial(spatial);
boundingVolume = spatial.getWorldBound();
}
@Override
protected void controlUpdate(float tpf) {
for (Spatial s : starNode.getChildren()) {
results.clear();
s.collideWith(boundingVolume, results);
if (results.size() > 0) {
s.getControl(HitStarControl.class).setIsHited(true);
s.getControl(StarPointControl.class).setIsHited(true);
}
}
}
@Override
protected void controlRender(RenderManager rm, ViewPort vp) {
}
public Control cloneForSpatial(Spatial spatial) {
WeaponProjectileCollisionControl control = new WeaponProjectileCollisionControl(starNode);
spatial.addControl(control);
return control;
}
}