一、初始化方法及常见API
camera = new OrthographicCamera();
camera.setToOrtho(false, 480, 800);// 设置视角举行的大小
camera.position.set(240, 400, 0);// 第一个是相机视角中心坐标
camera.update();// 重新计算camera的正投影和视图矩阵,其实就是移动相机。
batch.setProjectionMatrix(camera.combined);// conbined:
// 合并后的投影与视图矩阵。(这是一个 Matrix4
// 的矩阵)。
camera.translate(3, 0, 0);//这3句千万别漏了
camera.update();
batch.setProjectionMatrix(camera.combined);
二、应用举例
单击屏幕,背景移动。其实就是照相机移动了
package com.example.groupactiontest;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.Camera;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
public class MyGame implements ApplicationListener {
OrthographicCamera camera;
SpriteBatch batch;
Texture texture;
InputProcessor inputProcessor;
@Override
public void create() {
batch = new SpriteBatch();
texture = new Texture(Gdx.files.internal("image.jpg"));
camera = new OrthographicCamera();
camera.setToOrtho(false, 480, 800);// 设置视角举行的大小
camera.position.set(240, 400, 0);// 第一个是相机视角中心坐标
camera.update();// 重新计算camera的正投影和视图矩阵,其实就是移动相机。
batch.setProjectionMatrix(camera.combined);// conbined:
// 合并后的投影与视图矩阵。(这是一个 Matrix4
// 的矩阵)。
/**
* 给屏幕注册监听
* 移动照相机
*/
inputProcessor = new InputProcessor() {
@Override
public boolean touchUp(int arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean touchDragged(int arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean touchDown(int arg0, int arg1, int arg2, int arg3) {
camera.translate(3, 0, 0);//这3句千万别漏了
camera.update();
batch.setProjectionMatrix(camera.combined);
return false;
}
@Override
public boolean scrolled(int arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean mouseMoved(int arg0, int arg1) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean keyUp(int arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean keyTyped(char arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean keyDown(int arg0) {
// TODO Auto-generated method stub
return false;
}
};
Gdx.input.setInputProcessor(inputProcessor);
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public void pause() {
// TODO Auto-generated method stub
}
@Override
public void render() {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(texture, 0, 0, 480, 320);// 将照相机中看到的东西画出来
batch.end();
}
@Override
public void resize(int arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void resume() {
// TODO Auto-generated method stub
}
}
三、效果图
四、源码下载
http://download.youkuaiyun.com/detail/caihongshijie6/7009667