Skip to content

Releases: setanarut/kamera

v2.96.2

04 Mar 18:47
Compare
Choose a tag to compare

fixed SetCenter() bug.

BUG: The SetCenter() method does not set the TempTargetX and TempTargetY values ​​when the cam.SmoothType value is SmoothDamp or Lerp.

Full Changelog: v2.96.1...v2.96.2

v2.96.1

18 Feb 14:44
Compare
Choose a tag to compare

fix: platformer example window size.

Full Changelog: v2.96.0...v2.96.1

v2.96.0

04 Feb 03:42
Compare
Choose a tag to compare
  • Removed unnecessary getter/setter methods. (breaking change.)
  • All Camera fields were made public so it is possible to serialize the camera to the json file.
  • Unnecessary Camera fields have been removed.

Full Changelog: v2.95.2...v2.96.0

v2.95.2

17 Jan 23:09
Compare
Choose a tag to compare

Change Log

  • Added: (c *Camera) SetCenter(x, y float64)
  • SetCenter() and SetTopLeft() resets follow position

v2.95.1

26 Dec 01:27
Compare
Choose a tag to compare

Change Log

Added

// Right returns the right edge position of the camera in world-space.
func (cam *Camera) Right() float64 {
	return cam.TopLeftX + cam.w
}

// Bottom returns the bottom edge position of the camera in world-space.
func (cam *Camera) Bottom() float64 {
	return cam.TopLeftY + cam.h
}

// SetTopLeft sets top-left position of the camera in world-space.
//
// Unlike the LookAt() method, the position is set directly without any smoothing.
//
// Useful for static cameras.
func (cam *Camera) SetTopLeft(x, y float64) {
	cam.TopLeftX, cam.TopLeftY = x, y
}

Changed

cam.topLeftX and cam.topLeftY are now exported.

cam.topLeftX -> cam.TopLeftX
cam.topLeftY -> cam.TopLeftY

v2.95.0

22 Dec 22:41
Compare
Choose a tag to compare

Change Log

  • Fixed the issue where axis smoothing could not be disabled.
  • Optimization with per-axis calculation has been improved.

Added:

(cam *Camera) XAxisSmoothingDisabled bool
(cam *Camera) YAxisSmoothingDisabled bool

(cam *Camera) smoothDampX(targetX float64) float64 // internal
(cam *Camera) smoothDampY(targetY float64) float64 // internal

Removed:

(cam *Camera) smoothDamp(targetX, targetY float64) (float64, float64)  // internal

v2.94.0

17 Dec 17:48
Compare
Choose a tag to compare

Change Log

Added

  • (c *Camera) DrawWithColorM()
  • /director_colorm example

Removed

  • BB{}
  • (c *Camera) BB()
  • Internal vec2 struct

Renamed

CameraShakeOptions -> ShakeOptions
SmoothingOptions -> SmoothOptions
cam.Smoothing -> cam.SmoothType

Fixed

  • retract v2.93.0
  • Missing doc comments
  • Bugs in examples

Updated

  • Refactoring
  • smoothDamp() belongs to the camera class and does not use vec2.

v2.92.0

09 Dec 23:15
Compare
Choose a tag to compare

Changelog

  • Closes the #9 (Ability to control X and Y axes separately for smoothing settings.)
    func DefaultSmoothOptions() *SmoothOptions {
        return &SmoothOptions{
      	  LerpSpeedX:          0.09,
      	  LerpSpeedY:          0.09,
      	  SmoothDampTimeX:     0.2,
      	  SmoothDampTimeY:     0.2,
      	  SmoothDampMaxSpeedX: 1000.0,
      	  SmoothDampMaxSpeedY: 1000.0,
        }
    }
  • Refactoring

v2.9.1

01 Dec 10:20
Compare
Choose a tag to compare

Fix: enable shake for director example

Full Changelog: v2.9.0...v2.9.1

v2.9.0

01 Dec 01:25
Compare
Choose a tag to compare

Change Log

Added

  • (cam *Camera) ApplyCameraTransformToPoint(x, y float64) (float64, float64)
  • None, Lerp, SmoothDamp
  • SmoothOptions{}
  • Platformer demo example
  • Director demo example
const (
	// None is instant movement to the target. No smoothing.
	None SmoothingType = iota
	// Lerp is Lerp() function.
	Lerp
	// SmoothDamp is SmoothDamp() function.
	SmoothDamp
)

func DefaultSmoothOptions() *SmoothOptions {
	return &SmoothOptions{
		LerpSpeed:          0.09,
		SmoothDampTime:     0.2,
		SmoothDampMaxSpeed: 1000.0,
	}
}

Removed

  • LerpEnabled

Full Changelog: v2.8.1...v2.9.0