我正在尝试使用Processing和PeasyCam创建一个简单的草图,其中有一个平面,最终将在其上移动一个角色(例如《帝国时代》风格的视频游戏,其中相机可以在地图上方旋转) 。
拖动鼠标时,我希望相机围绕平面中心旋转。根据文档,我应该能够通过调用cam.lookAt(x, y)
来将对象设置在平面的中间,然后对cam.rotateY(amount)
的后续调用应使相机绕y轴旋转。但是,我发现旋转轴是相对于摄像机而不是平面。因此,当相机旋转时,它与平面成一定角度并最终与平面相交。这是在运行以下代码然后将平面旋转一点之后:
这是我目前拥有的代码:
import peasy.*;
Camera camera;
public class Camera {
PeasyCam cam;
Camera(Waste scene, float posX, float posY){
cam = new PeasyCam(scene, posX-50, posY, 100, 200);
cam.lookAt(posX, posY, 0);
cam.setActive(false);
}
void rotate(){
cam.rotateY(0.05);
}
}
void setup() {
size(800, 600, P3D);
camera = new Camera(this, 0, 0);
}
void draw() {
background(0);
stroke(200);
box(100, 100, 5);
}
void mouseDragged(){
camera.rotate();
}
有没有一种简单的方法可以实现我的追求?