Example usage for com.badlogic.gdx.graphics.g3d.utils CameraInputController CameraInputController

List of usage examples for com.badlogic.gdx.graphics.g3d.utils CameraInputController CameraInputController

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics.g3d.utils CameraInputController CameraInputController.

Prototype

public CameraInputController(final Camera camera) 

Source Link

Usage

From source file:com.badlogic.gdx.tests.BulletTestCollection.java

License:Apache License

@Override
public void create() {
    if (app == null) {
        app = Gdx.app;/* www. j a v  a2 s  .  com*/
        tests[testIndex].create();
    }

    cameraController = new CameraInputController(tests[testIndex].camera);
    cameraController.activateKey = Keys.CONTROL_LEFT;
    cameraController.autoUpdate = false;
    cameraController.forwardTarget = false;
    cameraController.translateTarget = false;
    Gdx.input.setInputProcessor(new InputMultiplexer(cameraController, this, new GestureDetector(this)));

    font = new BitmapFont(Gdx.files.internal("data/arial-15.fnt"), false);
    hud = new Stage();
    hud.addActor(fpsLabel = new Label(" ", new Label.LabelStyle(font, Color.WHITE)));
    fpsLabel.setPosition(0, 0);
    hud.addActor(titleLabel = new Label(tests[testIndex].getClass().getSimpleName(),
            new Label.LabelStyle(font, Color.WHITE)));
    titleLabel.setY(hud.getHeight() - titleLabel.getHeight());
    hud.addActor(instructLabel = new Label("A\nB\nC\nD\nE\nF", new Label.LabelStyle(font, Color.WHITE)));
    instructLabel.setY(titleLabel.getY() - instructLabel.getHeight());
    instructLabel.setAlignment(Align.top | Align.left);
    instructLabel.setText(tests[testIndex].instructions);
}

From source file:com.badlogic.gdx.tests.dragome.examples.bullet.BulletTestCollection.java

@Override
public void create() {
    if (app == null) {
        app = Gdx.app;/*from  w  w w  .  j  ava2s . co  m*/
        tests[testIndex].create();
    }

    cameraController = new CameraInputController(tests[testIndex].camera);
    cameraController.activateKey = Keys.CONTROL_LEFT;
    cameraController.autoUpdate = false;
    cameraController.forwardTarget = false;
    cameraController.translateTarget = false;
    Gdx.input.setInputProcessor(new InputMultiplexer(cameraController, this, new GestureDetector(this)));

    font = new BitmapFont(false);
    hud = new Stage();
    hud.addActor(fpsLabel = new Label(" ", new Label.LabelStyle(font, Color.WHITE)));
    fpsLabel.setPosition(0, 0);
    hud.addActor(titleLabel = new Label(tests[testIndex].getClass().getSimpleName(),
            new Label.LabelStyle(font, Color.WHITE)));
    titleLabel.setY(hud.getHeight() - titleLabel.getHeight());
    hud.addActor(instructLabel = new Label("A\nB\nC\nD\nE\nF", new Label.LabelStyle(font, Color.WHITE)));
    instructLabel.setY(titleLabel.getY() - instructLabel.getHeight());
    instructLabel.setAlignment(Align.top | Align.left);
    instructLabel.setText(tests[testIndex].instructions);
}

From source file:com.badlogic.gdx.tests.dragome.examples.GearsDemo.java

@Override
public void create() {

    environment = new Environment();
    environment.set(new ColorAttribute(ColorAttribute.AmbientLight, .2f, .2f, .2f, 2f));
    //      environment.add(new DirectionalLight().set(0.8f, 0.8f, 0.8f, 0f, -0.5f, -0.5f));

    sl = new PointLight().setPosition(-5, 10, -6).setColor(1, 1, 1, 1).setIntensity(150);

    //      sl2 = new PointLight().setPosition(0, 7, 5).setColor(0.3f, 0.8f, 0.3f, 1)
    //         .setIntensity(20);
    ////from w ww  .  j a va 2s . c  o m
    //      sl3 = new PointLight().setPosition(0, 9, 6).setColor(0.3f, 0.3f, 0.8f, 1)
    //         .setIntensity(20);

    environment.add(sl);
    //      environment.add(sl2);
    //      environment.add(sl3);

    cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    cam.position.set(-10, 3, 10f);
    cam.lookAt(-3, 0, 0);
    cam.near = 1f;
    cam.far = 100f;
    cam.update();

    cameraController = new CameraInputController(cam);
    cameraController.autoUpdate = false;
    cameraController.forwardTarget = false;
    cameraController.translateTarget = false;

    Gdx.input.setInputProcessor(new InputMultiplexer(cameraController));

    time = TimeUtils.millis();

    viewport = new ScreenViewport(cam);
    guiViewport = new ScreenViewport();

    DefaultShaderProvider defaultShaderProvider = new DefaultShaderProvider();
    modelBatch = new ModelBatch(defaultShaderProvider);

    ModelBuilder modelBuilder = new ModelBuilder();
    model1 = gear(modelBuilder, 1.0f, 4.0f, 1.0f, 20, 0.7f, Color.RED);
    gear1 = new ModelInstance(model1);

    model2 = gear(modelBuilder, 0.5f, 2.0f, 2.0f, 10, 0.7f, Color.GREEN);
    gear2 = new ModelInstance(model2);

    model3 = gear(modelBuilder, 1.3f, 2.0f, 1.5f, 10, 0.7f, Color.BLUE);
    gear3 = new ModelInstance(model3);

    font = new BitmapFont();

    batch = new SpriteBatch();

    lightModel = modelBuilder.createSphere(1, 1, 1, 10, 10,
            new Material(ColorAttribute.createDiffuse(1, 1, 1, 1)), Usage.Position);
    lightModel.nodes.get(0).parts.get(0).setRenderable(pLight = new Renderable());
}

From source file:com.github.fauu.helix.game.Game.java

License:Open Source License

@Override
public void create() {
    camera = new Camera(new Vector3(32, 32, 0));

    cameraInputController = new CameraInputController(camera);
    //    Gdx.input.setInputProcessor(cameraInputController);

    assets = new AssetManager();
    assets.setLoader(GeometrySet.class, new GeometrySetLoader(new InternalFileHandleResolver()));
    assets.setLoader(MapRegion.class, new MapRegionLoader(new InternalFileHandleResolver()));
    assets.load("assets/mapregions/0.hmr", MapRegion.class);
    assets.finishLoading();// w w w. j av  a 2  s. c o  m

    mapRegion = assets.get("assets/mapregions/0.hmr", MapRegion.class);

    spriteBatch = new SpriteBatch();

    renderer = new Renderer();

    player = new Player(new Vector2(8, 17), new Texture(Gdx.files.internal("assets/sprites/player.png")));
    camera.move(player.getRealPosition());

    final ModelBuilder modelBuilder = new ModelBuilder();

    waterTexture = new Texture("assets/textures/water.png");

    final MeshPartBuilder.VertexInfo corner00 = new MeshPartBuilder.VertexInfo();
    corner00.hasPosition = true;
    corner00.hasNormal = true;
    corner00.hasUV = true;
    corner00.setPos(0, 0, 0);
    corner00.setNor(0, 1, 0);
    corner00.setUV(0, 0);

    final MeshPartBuilder.VertexInfo corner10 = new MeshPartBuilder.VertexInfo();
    corner10.hasPosition = true;
    corner10.hasNormal = true;
    corner10.hasUV = true;
    corner10.setPos(4, 0, 0);
    corner10.setNor(0, 1, 0);
    corner10.setUV(0, 1);

    final MeshPartBuilder.VertexInfo corner11 = new MeshPartBuilder.VertexInfo();
    corner11.hasPosition = true;
    corner11.hasNormal = true;
    corner11.hasUV = true;
    corner11.setPos(4, 0, 14);
    corner11.setNor(0, 1, 0);
    corner11.setUV(1, 1);

    final MeshPartBuilder.VertexInfo corner01 = new MeshPartBuilder.VertexInfo();
    corner01.hasPosition = true;
    corner01.hasNormal = true;
    corner01.hasUV = true;
    corner01.setPos(0, 0, 14);
    corner01.setNor(0, 1, 0);
    corner01.setUV(1, 0);

    modelBuilder.begin();
    modelBuilder.node();
    MeshPartBuilder meshPartBuilder = modelBuilder.part("water1", GL20.GL_TRIANGLES,
            VertexAttributes.Usage.Position | VertexAttributes.Usage.TextureCoordinates,
            new Material(TextureAttribute.createDiffuse(waterTexture),
                    ColorAttribute.createDiffuse(Color.WHITE),
                    new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA)));
    meshPartBuilder.rect(corner00, corner10, corner11, corner01);

    waterModel = modelBuilder.end();

    waterModelInstance = new ModelInstance(waterModel);
    WaterData waterData = new WaterData();
    waterData.waveAmplitude = 0.02f;
    waterData.waveAngle = 0;
    waterData.waveFrequency = 0.5f;
    waterModelInstance.userData = waterData;
    //    waterModelInstance.userData = new float[2];
    //    ((float[]) waterModelInstance.userData)[0] = 0; // waveAngle
    //    ((float[]) waterModelInstance.userData)[1] = 0.1f; // waveAmplitude

    waterModelInstance.transform.translate(8, -0.1f, 19).rotate(0, 1, 0, -90).scale(1, 1, -1);
    //    ((float[]) waterModelInstance.userData)[2] = 8; // startX
    //    ((float[]) waterModelInstance.userData)[3] = 7; // sizeX
    //    ((float[]) waterModelInstance.userData)[4] = 19; // startZ
    //    ((float[]) waterModelInstance.userData)[5] = 5; // sizeZ
}

From source file:exodus.Sosaria.java

@Override
public void create() {

    Exodus ult = new Exodus();
    ult.create();/*w  ww.  jav a2  s.com*/

    batch = new SpriteBatch();
    modelBatch = new ModelBatch();

    FileHandleResolver resolver = new Constants.ClasspathResolver();

    assets = new AssetManager(resolver);
    assets.load("assets/graphics/dirt.png", Texture.class);
    assets.load("assets/graphics/Stone_Masonry.jpg", Texture.class);
    assets.load("assets/graphics/door.png", Texture.class);
    assets.load("assets/graphics/mortar.png", Texture.class);
    assets.load("assets/graphics/rock.png", Texture.class);
    assets.load("assets/graphics/grass.png", Texture.class);

    assets.update(2000);

    environment = new Environment();
    environment.set(new ColorAttribute(ColorAttribute.AmbientLight, 0.5f, 0.5f, 0.5f, 1f));

    camera = new PerspectiveCamera(67, Exodus.MAP_WIDTH, Exodus.MAP_HEIGHT);
    camera.near = 0.1f;
    camera.far = 1000f;

    Vector3 camPos = new Vector3(32, 6, 32);
    camera.position.set(camPos);
    camera.lookAt(camPos.x + 1, camPos.y, camPos.z);

    inputController = new CameraInputController(camera);
    inputController.rotateLeftKey = inputController.rotateRightKey = inputController.forwardKey = inputController.backwardKey = 0;
    inputController.translateUnits = 30f;

    Gdx.input.setInputProcessor(inputController);

    try {

        BaseMap map = Constants.Maps.AMBROSIA.getMap();

        for (int y = 0; y < map.getHeight(); y++) {
            for (int x = 0; x < map.getWidth(); x++) {
                Tile tile = map.getTile(x, y);
                ModelInstance instance = null;
                if (tile.getName().equals("mountains")) {
                    instance = createPolygonBox(Color.DARK_GRAY, 1, 2, 1, 0, x, 0, y);
                } else if (tile.getName().equals("hills")) {
                    instance = createPolygonBox(Color.GRAY, 1, 1, 1, 0, x, 0, y);
                } else if (tile.getName().equals("grass")) {
                    instance = createPolygonBox(Color.GREEN, 1, 1, 1, 0, x, 0, y);
                } else if (tile.getName().equals("water")) {
                    instance = createPolygonBox(Color.BLUE, 1, 1, 1, 0, x, 0, y);
                } else if (tile.getName().equals("sea")) {
                    instance = createPolygonBox(Color.NAVY, 1, 1, 1, 0, x, 0, y);
                } else if (tile.getName().equals("shallows")) {
                    instance = createPolygonBox(Color.SKY, 1, 1, 1, 0, x, 0, y);
                } else {
                    instance = createPolygonBox(Color.YELLOW, 1, 1, 1, 0, x, 0, y);
                }

                this.modelInstances.add(instance);

            }
        }

    } catch (Exception e) {
        e.printStackTrace();
    }

}

From source file:scene3d.demo.Scene3dDemo.java

License:Apache License

@Override
public void create() {
    //2d stuff/*from  w  ww  .  j  av a 2s  .c  om*/
    stage2d = new Stage();
    skin = new Skin(Gdx.files.internal("skin/uiskin.json"));
    fpsLabel = new Label("ff", skin);
    fpsLabel.setPosition(Gdx.graphics.getWidth() - 260, Gdx.graphics.getHeight() - 40);
    visibleLabel = new Label("ff", skin);
    visibleLabel.setPosition(Gdx.graphics.getWidth() - 260, Gdx.graphics.getHeight() - 60);
    positionLabel = new Label("Position", skin);
    positionLabel.setPosition(Gdx.graphics.getWidth() - 260, Gdx.graphics.getHeight() - 80);
    rotationLabel = new Label("Rotation", skin);
    rotationLabel.setPosition(Gdx.graphics.getWidth() - 260, Gdx.graphics.getHeight() - 100);
    positionCameraLabel = new Label("Position", skin);
    positionCameraLabel.setPosition(20, Gdx.graphics.getHeight() - 40);
    rotationCameraLabel = new Label("Rotation", skin);
    rotationCameraLabel.setPosition(20, Gdx.graphics.getHeight() - 60);
    stage2d.addActor(fpsLabel);
    stage2d.addActor(visibleLabel);
    stage2d.addActor(positionLabel);
    stage2d.addActor(rotationLabel);
    stage2d.addActor(positionCameraLabel);
    stage2d.addActor(rotationCameraLabel);
    stage2d.addListener(new InputListener() {
        @Override
        public boolean keyUp(InputEvent event, int keycode) {
            if (keycode == Keys.LEFT)
                leftKey = false;
            if (keycode == Keys.RIGHT)
                rightKey = false;
            if (keycode == Keys.UP)
                upKey = false;
            if (keycode == Keys.DOWN)
                downKey = false;
            if (keycode == Keys.SPACE)
                spaceKey = false;
            return super.keyUp(event, keycode);
        }

        @Override
        public boolean keyDown(InputEvent event, int keycode) {
            if (keycode == Keys.LEFT)
                leftKey = true;
            if (keycode == Keys.RIGHT)
                rightKey = true;
            if (keycode == Keys.UP)
                upKey = true;
            if (keycode == Keys.DOWN)
                downKey = true;
            if (keycode == Keys.SPACE)
                spaceKey = true;
            return super.keyDown(event, keycode);
        }
    });

    //3dstuff
    stage3d = new Stage3d();
    modelBuilder = new ModelBuilder();
    model = modelBuilder.createBox(5f, 5f, 5f, new Material("Color", ColorAttribute.createDiffuse(Color.WHITE)),
            Usage.Position | Usage.Normal);

    model2 = modelBuilder.createBox(2f, 2f, 2f,
            new Material("Color", ColorAttribute.createDiffuse(Color.WHITE)), Usage.Position | Usage.Normal);
    actor2 = new Actor3d(model2, 10f, 0f, 0f);
    model3 = modelBuilder.createBox(2f, 2f, 2f,
            new Material("Color", ColorAttribute.createDiffuse(Color.ORANGE)), Usage.Position | Usage.Normal);
    actor3 = new Actor3d(model3, -10f, 0f, 0f);
    actor2.setColor(Color.RED);
    actor2.setName("actor2");
    actor3.setName("actor3");
    camController = new CameraInputController(stage3d.getCamera());
    InputMultiplexer im = new InputMultiplexer();
    im.addProcessor(stage2d);// 2d should get click events first
    //im.addProcessor(stage3d);
    im.addProcessor(camController);
    Gdx.input.setInputProcessor(im);
    stage3d.touchable = Touchable.enabled; // only then will it detect hit actor3d

    ModelBuilder builder = new ModelBuilder();
    builder.begin();
    MeshPartBuilder part = builder.part("floor", GL20.GL_TRIANGLES,
            Usage.Position | Usage.TextureCoordinates | Usage.Normal, new Material());
    for (float x = -200f; x < 200f; x += 10f) {
        for (float z = -200f; z < 200f; z += 10f) {
            part.rect(x, 0, z + 10f, x + 10f, 0, z + 10f, x + 10f, 0, z, x, 0, z, 0, 1, 0);
        }
    }
    floor = new Actor3d(builder.end());
    AssetManager am = new AssetManager();
    am.load("data/g3d/knight.g3db", Model.class);
    am.load("data/g3d/skydome.g3db", Model.class);
    am.load("data/g3d/concrete.png", Texture.class);
    am.finishLoading();
    knight = new Actor3d(am.get("data/g3d/knight.g3db", Model.class), 0f, 18f, 0f);
    knight.getAnimation().inAction = true;
    knight.getAnimation().animate("Walk", -1, 1f, null, 0.2f);
    skydome = new Actor3d(am.get("data/g3d/skydome.g3db", Model.class));
    floor.materials.get(0).set(TextureAttribute.createDiffuse(am.get("data/g3d/concrete.png", Texture.class)));
    stage3d.addActor3d(skydome);
    stage3d.addActor3d(floor);
    knight.setPitch(-90f);
    knight.setYaw(-130f);
    testActor3d();
    //stage3d.addAction3d(Actions3d.rotateBy(0f, 90f, 0f, 2f));
    //testGroup3d();
    //testStage3d();
}

From source file:scratchpad.LoadModelsTest.java

License:Apache License

@Override
public void create() {
    Gdx.app.setLogLevel(LOG_DEBUG);//from  w  w  w .j  av  a  2s.  c o  m
    modelBatch = new ModelBatch();
    environment = new Environment();
    environment.set(new ColorAttribute(ColorAttribute.AmbientLight, 0.4f, 0.4f, 0.4f, 1f));
    environment.add(new DirectionalLight().set(0.8f, 0.8f, 0.8f, -1f, -0.8f, -0.2f));

    cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    cam.position.set(50f, 50f, 50f);
    cam.lookAt(0, 0, 0);
    cam.near = 1f;
    cam.far = 300f;
    cam.update();

    camController = new CameraInputController(cam);
    Gdx.input.setInputProcessor(camController);

    assets = new AssetManager();
    assets.load(FN, Model.class);
    loading = true;
}

From source file:sink.demo.scene3d.Scene3dDesktop.java

License:Apache License

@Override
public void create() {
    //2d stuff/*from ww  w  . java2s  .com*/
    stage2d = new Stage();
    skin = new Skin(Gdx.files.internal("skin/uiskin.json"));
    fpsText = new Label("ff", skin);
    fpsText.setPosition(Gdx.graphics.getWidth() - 80, Gdx.graphics.getHeight() - 40);
    stage2d.addActor(fpsText);

    //3dstuff
    stage3d = new Stage3d();
    modelBuilder = new ModelBuilder();
    model = modelBuilder.createBox(5f, 5f, 5f, new Material(ColorAttribute.createDiffuse(Color.WHITE)),
            Usage.Position | Usage.Normal);
    r = new Actor3d(model, 9f, 0f, 0f);
    camController = new CameraInputController(stage3d.getCamera());
    Gdx.input.setInputProcessor(camController);

    testActor3d();
    //testGroup3d();
    testStage3d();
}