3D编程技巧全解析
1. 多触摸支持提示
在开发中添加多触摸支持是个很棒的想法。可以不采用轮询方式,而是使用实际的触摸事件。当触发“touch down”事件时,检查按钮是否被点击。若被点击,标记与之关联的指针ID,使其在对应的“touch up”事件发出前不能产生滑动手势。而其他指针ID的触摸事件可被解释为滑动手势。
2. 视角相机(Look - At Camera)
视角相机是游戏中常见的另一种相机类型,它由以下要素定义:
- 空间中的位置。
- 上向量:可想象为相机平放在水平表面时,贴在相机背面的“此面朝上”贴纸所对应的箭头。
- 空间中的注视位置或方向向量,这里采用前者。
- 视角范围(以度为单位)。
- 视口宽高比。
- 近裁剪面距离和远裁剪面距离。
以下是实现视角相机的代码:
package com.badlogic.androidgames.framework.gl;
import javax.microedition.khronos.opengles.GL10;
import android.opengl.GLU;
import com.badlogic.androidgames.framework.math.Vector3;
public class LookAtCamera {
final Vector3 position;
final Vector3 up;
final Vector3 lookAt;
float fieldOfView;
float aspe