Class GameCamera

java.lang.Object
com.codename1.gaming.GameCamera

public class GameCamera extends Object

The camera a GameView renders through. It has two modes:

  • #MODE_ORTHO_2D (the default) is the classic 2D mode: an orthographic camera mapping one world unit to one screen pixel, origin at the top left with y pointing down. Sprites are flat, positioned in pixels, and the camera scrolls via Scene#setCamera(int, int). You never need to touch GameCamera for a 2D game.

  • #MODE_PERSPECTIVE turns the same scene into a 3D world: sprites become camera-facing billboards positioned in 3D space (Sprite#setPosition(double, double, double)), and 3D meshes can be drawn alongside them. You drive the view with #setPerspective(float, float, float), #setPosition(float, float, float) and #setTarget(float, float, float) -- e.g. an over-the-shoulder or top-down perspective camera that moves with the player.

// switch a GameView into 3D and place the camera
getCamera()
    .setPerspective(60, 0.1f, 500f)
    .setPosition(0, 6, 12)
    .setTarget(0, 0, 0);

In 3D mode world coordinates are right-handed with y up (the convention the com.codename1.gpu package uses), and sprite sizes are world units rather than pixels -- use Sprite#setSize(float, float) or Sprite#setScale(float) to pick a world-space size.

  • Field Details

    • MODE_ORTHO_2D

      public static final int MODE_ORTHO_2D
      Orthographic, pixel-space 2D rendering (the default).
      See Also:
    • MODE_PERSPECTIVE

      public static final int MODE_PERSPECTIVE
      Perspective 3D rendering with billboarded sprites.
      See Also:
  • Constructor Details

    • GameCamera

      public GameCamera()
  • Method Details

    • getMode

      public int getMode()
    • setPerspective

      public GameCamera setPerspective(float fovYDegrees, float near, float far)

      Switches to perspective 3D rendering and sets the lens.

      Parameters
      • fovYDegrees: vertical field of view in degrees (e.g. 60)

      • near: near clip distance (> 0)

      • far: far clip distance

    • setOrthographic2D

      public GameCamera setOrthographic2D()
      Switches back to the default orthographic 2D mode.
    • setPosition

      public GameCamera setPosition(float x, float y, float z)
      The eye position in world space (perspective mode).
    • setTarget

      public GameCamera setTarget(float x, float y, float z)
      The point the camera looks at, in world space (perspective mode).
    • setUp

      public GameCamera setUp(float x, float y, float z)
      The camera up vector (defaults to 0,1,0).
    • getEyeX

      public float getEyeX()
    • getEyeY

      public float getEyeY()
    • getEyeZ

      public float getEyeZ()
    • getTargetX

      public float getTargetX()
    • getTargetY

      public float getTargetY()
    • getTargetZ

      public float getTargetZ()
    • getFov

      public float getFov()