⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 camera.java

📁 一个java 3D程序的源代码
💻 JAVA
字号:
import java.awt.*;

public class camera{
	public static vector position;

	public static vector view_Direction;

	public static boolean MOVE_FORWARD, MOVE_BACKWARD, SLIDE_LEFT, SLIDE_RIGHT, UP_TYPED, DOWN_TYPED, RIGHT_TYPED, LEFT_TYPED;

	public static double look_up, look_down, look_right, look_left;

	public static final vector viewDirection = new vector(0, 0, 1);

	public static final Rectangle screen = new Rectangle(0,0,640, 480);

	public static double sinXZ, cosXZ, sinYZ, cosYZ;

	public camera(vector position){
		this.position = position;
		view_Direction = new vector(0, 0, 1);
		look_up = 0;
		look_down = 0;
		look_right =0;
		look_left = 0;
	}

	public static final void update(){
		if(UP_TYPED){
			look_up+=0.05;
			if(look_up > 1.570796326)
				look_up = 1.570796326;
		}

		if(DOWN_TYPED){
			look_up-=0.05;
			if(look_up < -1.570796326)
				look_up = -1.570796326;
		}

		if(RIGHT_TYPED){
			look_right-=0.05;
		}

		if(LEFT_TYPED){
			look_right+=0.05;
		}

		if(MOVE_FORWARD){
			position.subtract(view_Direction, -0.5);
		}

		if(MOVE_BACKWARD){
			position.subtract(view_Direction, 0.5);
		}

		if(SLIDE_LEFT){
			vector left = view_Direction.cross(new vector(-view_Direction.x, -1000000, -view_Direction.z));
			left.unit();
			position.subtract(left, 0.5);
		}

		if(SLIDE_RIGHT){
			vector right = view_Direction.cross(new vector(view_Direction.x, 10000000, view_Direction.z));
			right.unit();
			position.subtract(right, 0.5);
		}

		view_Direction.set(viewDirection);
		view_Direction.rotate_XZ(look_right);
		view_Direction.rotate_vertical(look_up);
		view_Direction.unit();

		sinXZ = Math.sin(-look_right);
		cosXZ = Math.cos(-look_right);
		sinYZ = Math.sin(look_up);
		cosYZ = Math.cos(look_up);
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -