一、初始化方法及常见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

	}

}



三、效果图

(libgdx小结)照相机_源码下载