Processing + PeasyCam围绕对象旋转相机

时间:2019-12-14 09:54:55

标签: java processing p5.js

我正在尝试使用Processing和PeasyCam创建一个简单的草图,其中有一个平面,最终将在其上移动一个角色(例如《帝国时代》风格的视频游戏,其中相机可以在地图上方旋转) 。

enter image description here

拖动鼠标时,我希望相机围绕平面中心旋转。根据文档,我应该能够通过调用cam.lookAt(x, y)来将对象设置在平面的中间,然后对cam.rotateY(amount)的后续调用应使相机绕y轴旋转。但是,我发现旋转轴是相对于摄像机而不是平面。因此,当相机旋转时,它与平面成一定角度并最终与平面相交。这是在运行以下代码然后将平面旋转一点之后:

enter image description here

这是我目前拥有的代码:

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();
}

有没有一种简单的方法可以实现我的追求?

0 个答案:

没有答案