A Weird Radar behaviour

Hello again, it’s TheWayIsNotSimple here,how’s going?

So, i’ve done a radar mechanism, complete with radar-like image and sprites for object , but in some way it’s going weird in behaviour; i’ll past here the code and if you wanna give a try , you’re welcome :slight_smile:
i’ll post here the code and images, hope you find in here some interesting things :slight_smile: Thenk you for your Huge support :slight_smile:

[java]
package mygame;

import com.jme3.app.SimpleApplication;
import com.jme3.bullet.BulletAppState;
import com.jme3.bullet.control.RigidBodyControl;
import com.jme3.font.BitmapText;
import com.jme3.input.KeyInput;
import com.jme3.input.MouseInput;
import com.jme3.input.controls.ActionListener;
import com.jme3.input.controls.AnalogListener;
import com.jme3.input.controls.KeyTrigger;
import com.jme3.input.controls.MouseAxisTrigger;
import com.jme3.light.AmbientLight;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Ray;
import com.jme3.math.Vector3f;
import com.jme3.renderer.RenderManager;
import com.jme3.scene.Geometry;
import com.jme3.scene.Node;
import com.jme3.scene.shape.Box;
import com.jme3.ui.Picture;
import java.util.ArrayList;

public class Main extends SimpleApplication{
Picture pic;
ArrayList nearobj= new ArrayList(),nearsign= new ArrayList() ;
BulletAppState bas = new BulletAppState();
RigidBodyControl rgb;
Node terra = new Node();
Ray r;
Picture radar;
Node minimap = new Node();
int range = 100;

public static void main(String[] args) {
    Main app = new Main();
    app.start();
}

@Override
public void simpleInitApp() {
    flyCam.setMoveSpeed(100);
    setDisplayStatView(false);
    setDisplayFps(false);
    stateManager.attach(bas);
    rootNode.attachChild(terra);
    initKeys();
    initWorld();
    initGui();
}
@Override
public void simpleUpdate(float tpf) {
    updateMap();
}
@Override
public void simpleRender(RenderManager rm) {
    //TODO: add render code
}

public void initWorld() {
    addB(0,0,0);
    //addB(3,0,-3);

// addB(3,0,3);
// addB(-3,0,3);
addB(3,0,-13);
addB(3,0,43);
AmbientLight ambient = new AmbientLight();
ambient.setColor(ColorRGBA.White);
rootNode.addLight(ambient);
viewPort.setBackgroundColor(ColorRGBA.White);
}
public void initGui() {
minimap.setLocalTranslation(100, 100, 0);
guiNode.attachChild(minimap);

    radar = new Picture("Cross");
    radar.setImage(assetManager, "Interface/cross.png", true);
    radar.setPosition(0, 0);//5.5
    radar.setHeight(200);
    radar.setWidth(200);
    guiNode.attachChild(radar);
}
public void updateMap(){
    for(int i =0;i<terra.getQuantity();i++){
        Vector3f vecObj=terra.getChild(i).getWorldTranslation();
        Vector3f vectCam=cam.getLocation();
        float tmpdist=vectCam.distance(vecObj);
        if(tmpdist<=range && !nearobj.contains(terra.getChild(i))){
            pic = new Picture("object");
            pic.setImage(assetManager, "Interface/obj.png",true);
            pic.setLocalScale(20);
            minimap.attachChild(pic);
            Vector3f tmp = vectCam.add(vecObj);
            tmp.mult(2);
            pic.setPosition(tmp.getX(), tmp.getZ());
            
            nearobj.add(terra.getChild(i));
            nearsign.add(pic);
        }
        if(tmpdist>range && nearobj.contains(terra.getChild(i))){
            int index = nearobj.indexOf(terra.getChild(i));
            nearobj.remove(terra.getChild(i));
            minimap.detachChild((Picture)nearsign.get(index));
            nearsign.remove(index);
        }
        if(tmpdist<range && nearobj.contains(terra.getChild(i))){
            int index = nearobj.indexOf(terra.getChild(i));
            pic =(Picture) nearsign.get(index);
            
            Vector3f tmp = vectCam.add(vecObj);
            //tmp.mult(2);
            
            pic.setPosition(tmp.getX(), tmp.getZ());
        }
        
    }
}
public void addB(float xx,float yy,float zz){
    Box b = new Box(1,1,1);
    Geometry g = new Geometry("", b);
    g.setName("box_"+terra.getQuantity());
    g.setLocalTranslation(xx, yy, zz);
    Material boxMat = new Material(assetManager, "Common/MatDefs/Light/Lighting.j3md");
    boxMat.setBoolean("UseMaterialColors", true);
    boxMat.setColor("Ambient", ColorRGBA.Green);
    boxMat.setColor("Diffuse", ColorRGBA.Red);
    //boxMat.getAdditionalRenderState().setWireframe(true);
    g.setMaterial(boxMat);
    terra.attachChild(g);
    
    BitmapText txt = new BitmapText(assetManager.loadFont("Interface/Fonts/Default.fnt"), true);
    txt.setUserData("names", new String("rotate"));
    txt.setColor(ColorRGBA.Blue);
    txt.setSize(0.1f);
    txt.setText(g.getName());
    txt.setLocalTranslation(xx, yy+3, zz);
    rootNode.attachChild(txt);
}
public void initKeys() {
    inputManager.addMapping("right",new MouseAxisTrigger(MouseInput.AXIS_X, true));
    inputManager.addMapping("left",new MouseAxisTrigger(MouseInput.AXIS_X, false));
    inputManager.addListener(analogListener, "right");
    inputManager.addListener(analogListener, "left");

}

private ActionListener actionListener = new ActionListener(){
    public void onAction(String name, boolean pressed, float tpf){
        System.out.println(name + " = " + pressed);
    }
};
public AnalogListener analogListener = new AnalogListener() {
    public void onAnalog(String name, float value, float tpf) {
        if(name.equals("left")){
            minimap.rotate(0, 0, value);
        }
        if(name.equals("right")){
            minimap.rotate(0, 0, -value);
        }
    }
};

}

[/java]

here’s the images link:
Images :-o

Your browser seems a bit outdated

please post images on usable sites, like imgur for example.

http://imgur.com/tGsiQMq

http://imgur.com/mG8xBwa

Better?