Scale camera in libGDX not save dimensions
up vote
1
down vote
favorite
I want to use map in my app and do move, scale and rotation on it using libGDX
library, I'm using this code to scale camera in android:
public class MyGdxGame extends ApplicationAdapter implements GestureDetector.GestureListener {
SpriteBatch batch;
Texture texture;
Sprite sprite;
OrthographicCamera camera;
@Override
public void create() {
batch = new SpriteBatch();
camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
texture = new Texture(Gdx.files.internal("map.jpg"));
sprite = new Sprite(texture);
sprite.setPosition(-sprite.getWidth() / 2, -sprite.getHeight() / 2);
Gdx.input.setInputProcessor(new GestureDetector(this));
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
batch.setProjectionMatrix(camera.combined);
batch.begin();
sprite.draw(batch);
batch.end();
}
@Override
public void dispose() {
batch.dispose();
texture.dispose();
}
@Override
public boolean pan(float x, float y, float deltaX, float deltaY) {
camera.translate(-deltaX, deltaY);
return false;
}
@Override
public boolean zoom(float initialDistance, float distance) {
float scale = initialDistance / distance;
camera.zoom = scale;
return false;
}
}
It is zooming correctly, but when I touch up and try to zoom again it begin zoom from scale = 1.
How can zoom the cam and save its status?
android camera libgdx
add a comment |
up vote
1
down vote
favorite
I want to use map in my app and do move, scale and rotation on it using libGDX
library, I'm using this code to scale camera in android:
public class MyGdxGame extends ApplicationAdapter implements GestureDetector.GestureListener {
SpriteBatch batch;
Texture texture;
Sprite sprite;
OrthographicCamera camera;
@Override
public void create() {
batch = new SpriteBatch();
camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
texture = new Texture(Gdx.files.internal("map.jpg"));
sprite = new Sprite(texture);
sprite.setPosition(-sprite.getWidth() / 2, -sprite.getHeight() / 2);
Gdx.input.setInputProcessor(new GestureDetector(this));
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
batch.setProjectionMatrix(camera.combined);
batch.begin();
sprite.draw(batch);
batch.end();
}
@Override
public void dispose() {
batch.dispose();
texture.dispose();
}
@Override
public boolean pan(float x, float y, float deltaX, float deltaY) {
camera.translate(-deltaX, deltaY);
return false;
}
@Override
public boolean zoom(float initialDistance, float distance) {
float scale = initialDistance / distance;
camera.zoom = scale;
return false;
}
}
It is zooming correctly, but when I touch up and try to zoom again it begin zoom from scale = 1.
How can zoom the cam and save its status?
android camera libgdx
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I want to use map in my app and do move, scale and rotation on it using libGDX
library, I'm using this code to scale camera in android:
public class MyGdxGame extends ApplicationAdapter implements GestureDetector.GestureListener {
SpriteBatch batch;
Texture texture;
Sprite sprite;
OrthographicCamera camera;
@Override
public void create() {
batch = new SpriteBatch();
camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
texture = new Texture(Gdx.files.internal("map.jpg"));
sprite = new Sprite(texture);
sprite.setPosition(-sprite.getWidth() / 2, -sprite.getHeight() / 2);
Gdx.input.setInputProcessor(new GestureDetector(this));
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
batch.setProjectionMatrix(camera.combined);
batch.begin();
sprite.draw(batch);
batch.end();
}
@Override
public void dispose() {
batch.dispose();
texture.dispose();
}
@Override
public boolean pan(float x, float y, float deltaX, float deltaY) {
camera.translate(-deltaX, deltaY);
return false;
}
@Override
public boolean zoom(float initialDistance, float distance) {
float scale = initialDistance / distance;
camera.zoom = scale;
return false;
}
}
It is zooming correctly, but when I touch up and try to zoom again it begin zoom from scale = 1.
How can zoom the cam and save its status?
android camera libgdx
I want to use map in my app and do move, scale and rotation on it using libGDX
library, I'm using this code to scale camera in android:
public class MyGdxGame extends ApplicationAdapter implements GestureDetector.GestureListener {
SpriteBatch batch;
Texture texture;
Sprite sprite;
OrthographicCamera camera;
@Override
public void create() {
batch = new SpriteBatch();
camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
texture = new Texture(Gdx.files.internal("map.jpg"));
sprite = new Sprite(texture);
sprite.setPosition(-sprite.getWidth() / 2, -sprite.getHeight() / 2);
Gdx.input.setInputProcessor(new GestureDetector(this));
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
batch.setProjectionMatrix(camera.combined);
batch.begin();
sprite.draw(batch);
batch.end();
}
@Override
public void dispose() {
batch.dispose();
texture.dispose();
}
@Override
public boolean pan(float x, float y, float deltaX, float deltaY) {
camera.translate(-deltaX, deltaY);
return false;
}
@Override
public boolean zoom(float initialDistance, float distance) {
float scale = initialDistance / distance;
camera.zoom = scale;
return false;
}
}
It is zooming correctly, but when I touch up and try to zoom again it begin zoom from scale = 1.
How can zoom the cam and save its status?
android camera libgdx
android camera libgdx
edited 2 days ago
toti08
1,4291523
1,4291523
asked 2 days ago
bebosh
423522
423522
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
I don't have any experience in zooming with LibGDX, but an idea would be saving the initialDistance
in a variable and use it instead of the original one (expect for the first time to get the initial value).
@Override
public boolean zoom(float initialDistance, float distance) {
if(savedDistance == 0)
savedDistance = initialDistance
float scale = savedDistance / distance;
camera.zoom = scale;
return false;
}
If this doesn't help, reading the docs or looking into the source code could give you an idea.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
I don't have any experience in zooming with LibGDX, but an idea would be saving the initialDistance
in a variable and use it instead of the original one (expect for the first time to get the initial value).
@Override
public boolean zoom(float initialDistance, float distance) {
if(savedDistance == 0)
savedDistance = initialDistance
float scale = savedDistance / distance;
camera.zoom = scale;
return false;
}
If this doesn't help, reading the docs or looking into the source code could give you an idea.
add a comment |
up vote
0
down vote
I don't have any experience in zooming with LibGDX, but an idea would be saving the initialDistance
in a variable and use it instead of the original one (expect for the first time to get the initial value).
@Override
public boolean zoom(float initialDistance, float distance) {
if(savedDistance == 0)
savedDistance = initialDistance
float scale = savedDistance / distance;
camera.zoom = scale;
return false;
}
If this doesn't help, reading the docs or looking into the source code could give you an idea.
add a comment |
up vote
0
down vote
up vote
0
down vote
I don't have any experience in zooming with LibGDX, but an idea would be saving the initialDistance
in a variable and use it instead of the original one (expect for the first time to get the initial value).
@Override
public boolean zoom(float initialDistance, float distance) {
if(savedDistance == 0)
savedDistance = initialDistance
float scale = savedDistance / distance;
camera.zoom = scale;
return false;
}
If this doesn't help, reading the docs or looking into the source code could give you an idea.
I don't have any experience in zooming with LibGDX, but an idea would be saving the initialDistance
in a variable and use it instead of the original one (expect for the first time to get the initial value).
@Override
public boolean zoom(float initialDistance, float distance) {
if(savedDistance == 0)
savedDistance = initialDistance
float scale = savedDistance / distance;
camera.zoom = scale;
return false;
}
If this doesn't help, reading the docs or looking into the source code could give you an idea.
answered 2 days ago
Stampler
163
163
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203832%2fscale-camera-in-libgdx-not-save-dimensions%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password