private void moveCamera(float pX, float pY) { if (!mCameraMoving) { mLastX = pX; mLastY = pY; mCameraMoving = true; return; } else { if (mLastX == pX && mLastY == pY) { return; } else if (mLastY > pY) { // downwards Camera cam = mWorld.getCamera(); float speed = (mLastY - pY) / slowCamMovement; // slowCamMovement = 100f; cam.moveCamera(Camera.CAMERA_MOVEDOWN, speed); } else { // upwards Camera cam = mWorld.getCamera(); float speed = (mLastY - pY) / slowCamMovement; cam.moveCamera(Camera.CAMERA_MOVEUP, -speed); } lastX = pX; lastY = pY; } }
public void onDrawFrame(GL10 gl) { if (mCameraSpeed < 0) { mWorld.getCamera().moveCamera(Camera.CAMERA_MOVEUP, -mCameraSpeed); } else { mWorld.getCamera().moveCamera(Camera.CAMERA_MOVEDOWN, mCameraSpeed); } mCameraSpeed *= mCameraSlowing; fb.clear(new RGBColor(220, 220, 220)); mWorld.renderScene(fb); mWorld.draw(fb); fb.display(); }
private void moveCamera(float pX, float pY) { if (!mCameraMoving) { lastX = pX; lastY = pY; mCameraMoving = true; return; } else { if (lastX == pX && lastY == pY) { return; } else { mCameraSpeed += (lastY - pY) / 150f; } lastX = pX; lastY = pY; } }