(libgdx小结)照相机

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气的东哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值