engine

package
v0.0.0-...-9794d0e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 29, 2023 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package engine provides function for render and world object manipulations

Index

Constants

View Source
const (
	CenterAlign = iota
	TopAlign
	BottomAlign
)

Sprite alignment

Variables

View Source
var Map [][]int

Map structure

View Source
var Sprites []*Sprite

Sprites information

View Source
var TileTextures = map[int][][]uint32{}

TileTextures - Texture sets for tile values

View Source
var TimeElapsed float64

TimeElapsed is elapsed time in seconds since previous frame. Could be used to stabilize time-dependent operations like moving or animations

Functions

func IntersectsWithMap

func IntersectsWithMap(x, y float64) (intersects bool, tile int, tilePoint float64)

IntersectsWithMap returns intersect status and tile value

func RenderView

func RenderView(screen screen.Screen)

RenderView renders a frame

func StrafePlayerH

func StrafePlayerH(dDist float64)

StrafePlayerH moves player horizontally (left, right) by a given dist (related to it's angle)

func StrafePlayerV

func StrafePlayerV(dDist float64)

StrafePlayerV moves player vertically (forward, backward) by a given dist (related to it's angle)

func TurnPlayer

func TurnPlayer(dAngle float64)

TurnPlayer turns player around by a given angle (minus is left, plus is right)

Types

type Camera

type Camera struct {
	X, Y     float64
	POV      *Vector
	FOV      float64
	ViewDist float64
}

func NewPlayer

func NewPlayer() *Camera

func (*Camera) Collision

func (p *Camera) Collision(x, y float64) bool

Collision determines if the given point collides with anny solid object

func (*Camera) Position

func (p *Camera) Position(x, y, angle float64)

Position sets player global position relative to world coordinates

func (*Camera) ShiftFov

func (p *Camera) ShiftFov(fov float64)

ShiftFov changes FOV by a given amount

func (*Camera) StrafePlayerH

func (p *Camera) StrafePlayerH(dDist float64)

StrafePlayerH moves player horizontally (left, right) by a given dist (related to it's angle)

func (*Camera) StrafePlayerV

func (p *Camera) StrafePlayerV(dDist float64)

StrafePlayerV moves player vertically (forward, backward) by a given dist (related to it's angle)

func (*Camera) TurnPlayer

func (p *Camera) TurnPlayer(dAngle float64)

TurnPlayer turns player around by a given angle (minus is left, plus is right)

type Loader

type Loader struct {
	// contains filtered or unexported fields
}

Loader is used to initialize game objects and scenes

func (Loader) ConvertImageToTexture

func (ldr Loader) ConvertImageToTexture(fname string) [][]uint32

ConvertImageToTexture converts actual image file to engine texture object

func (*Loader) Flush

func (ldr *Loader) Flush()

Flush clears all loaded data and removes it from world and from memory

func (*Loader) LoadScene

func (ldr *Loader) LoadScene(scene string)

LoadScene loads scene by scene file path

type Sprite

type Sprite struct {
	X, Y    float64
	Align   int
	Scale   float64
	Texture [][]uint32
	Solid   bool
}

Sprite represents one sprite object on a map

type Vector

type Vector struct {
	X, Y float64
}

Vector represents 2d vector

func (*Vector) Angle

func (v *Vector) Angle() float64

Angle transforms vector to angle (relative to positive X-axis)

func (*Vector) Magnitude

func (v *Vector) Magnitude() float64

Magnitude calculates vector scalar length

func (*Vector) NewFromAngle

func (v *Vector) NewFromAngle(angle float64) Vector

NewFromAngle returns a unit vector for a given angle (relative to positive X-axis)

func (*Vector) NewRotated

func (v *Vector) NewRotated(angle float64) Vector

NewRotated creates a new rotated vector

func (*Vector) Rotate

func (v *Vector) Rotate(angle float64)

Rotate rotates vector

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL