glb

package
v0.0.0-...-308dbb7 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2023 License: GPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IS_DEBUG_ON = false

	APP_NAME       = "Digger"
	APP_VERSION    = "0.1"
	CONF_FILE_NAME = ".digger.properties"
	FONT_FILE_NAME = "OpenSans-Regular.ttf"
	ICON_FILE_NAME = "digger.png"
	FONT_SIZE      = 12

	TICK                        float64 = 1.0 / 200.0
	SPRITE_UPDATE_RATE                  = 18
	CHASE_PATH_UPDATE_RATE              = 10
	DIGGER_SPEED                        = 4 //less is faster
	MONSTER_SPEED                       = 4
	DIGGER_DIE_SPEED                    = 8
	DIGGER_GRAVE_SPEED                  = SPRITE_UPDATE_RATE * 2
	BAG_PUSH_SPEED                      = 8
	FIRE_SPEED                          = 2
	BAG_FALL_SPEED                      = 2
	EM_SOUND_DELTA_MS                   = 700
	HOLD_WAIT_STEPS             uint64  = 80 //bound to DIGGER_SPEED
	CHASE_LINK_OPEN_COEFFICIENT         = 0.6

	SCREEN_LOGICAL_WIDTH  = 320
	SCREEN_LOGICAL_HEIGHT = 240
	CELLS_HORIZONTAL      = 15
	CELLS_VERTICAL        = 10
	CELL_WIDTH            = 20
	CELL_HEIGHT           = 20
	CELLS_OFFSET          = 10
	FIELD_OFFSET_Y        = 20

	WINDOW_XPOS_KEY   = "WINDOW_XPOS_KEY"
	WINDOW_YPOS_KEY   = "WINDOW_YPOS_KEY"
	WINDOW_WIDTH_KEY  = "WINDOW_WIDTH_KEY"
	WINDOW_HEIGHT_KEY = "WINDOW_HEIGHT_KEY"
	WINDOW_STATE_KEY  = "WINDOW_STATE_KEY"

	DIGGER_COLLISION_TAG  = "digger"
	MONSTER_COLLISION_TAG = "monster"
	EMERALD_COLLISION_TAG = "emerald"
	BAG_COLLISION_TAG     = "bag"
	FIRE_COLLISION_TAG    = "fire"

	GCW_BUTTON_UP    = sdl.K_UP
	GCW_BUTTON_DOWN  = sdl.K_DOWN
	GCW_BUTTON_LEFT  = sdl.K_LEFT
	GCW_BUTTON_RIGHT = sdl.K_RIGHT

	GCW_BUTTON_A = sdl.K_LCTRL
	GCW_BUTTON_B = sdl.K_LALT
	GCW_BUTTON_X = sdl.K_SPACE
	GCW_BUTTON_Y = sdl.K_LSHIFT

	GCW_BUTTON_L1 = sdl.K_TAB
	GCW_BUTTON_R1 = sdl.K_BACKSPACE

	GCW_BUTTON_L2 = sdl.K_PAGEUP
	GCW_BUTTON_R2 = sdl.K_PAGEDOWN

	GCW_BUTTON_SELECT = sdl.K_ESCAPE
	GCW_BUTTON_START  = sdl.K_RETURN
	GCW_BUTTON_MENU   = sdl.K_HOME

	GCW_VOLUMEUP   = sdl.K_VOLUMEUP
	GCW_VOLUMEDOWN = sdl.K_VOLUMEDOWN

	GCW_BUTTON_L3 = sdl.K_KP_DIVIDE
)

Variables

View Source
var (
	COLOR_RED    = sdl.Color{R: 192, G: 64, B: 64, A: 255}
	COLOR_GREEN  = sdl.Color{R: 64, G: 192, B: 64, A: 255}
	COLOR_GRAY   = sdl.Color{R: 192, G: 192, B: 192, A: 255}
	COLOR_WHITE  = sdl.Color{R: 255, G: 255, B: 255, A: 255}
	COLOR_PURPLE = sdl.Color{R: 255, G: 0, B: 255, A: 255}
	COLOR_YELLOW = sdl.Color{R: 255, G: 255, B: 0, A: 255}
	COLOR_BLUE   = sdl.Color{R: 0, G: 255, B: 255, A: 255}
	COLOR_BLACK  = sdl.Color{R: 0, G: 0, B: 0, A: 255}

	BGR_COLOR = [4]uint8{0, 0, 0, 255} //black

	JoyButtonEventsMap = map[uint8]sdl.Keycode{
		6: GCW_BUTTON_UP,
		7: GCW_BUTTON_DOWN,
		8: GCW_BUTTON_LEFT,
		9: GCW_BUTTON_RIGHT,

		0: GCW_BUTTON_B,
		1: GCW_BUTTON_A,
		2: GCW_BUTTON_X,
		3: GCW_BUTTON_Y,

		10: GCW_BUTTON_SELECT,
		15: GCW_BUTTON_START,
		4:  GCW_BUTTON_L1,
		12: GCW_BUTTON_L2,
		5:  GCW_BUTTON_R1,
		13: GCW_BUTTON_R2,
	}
)

Functions

func Bytes

func Bytes(s uint64) string

func Collide

func Collide(rect1 *sdl.Rect, rect2 *sdl.Rect) bool

func DrawRectLines

func DrawRectLines(rect *sdl.Rect)

Renderer.DrawRect is not available in some older versions of SDL2. This is a workaround to solve hanging on my PocketGo2v2

func GetNextSpritePointerAndInc

func GetNextSpritePointerAndInc(currentPointer int, spritePointerInc int, spritesLen int) (int, int)

func If

func If[T any](cond bool, vTrue, vFalse T) T

Types

type BagState

type BagState int64
const (
	BAG_SET BagState = iota
	BAG_PUSHED
	BAG_HOLD
	BAG_MOVING
	BAG_WOBBLE
	BAG_FALLING
	BAG_GOLD_FALLING
	BAG_GOLD
)

type DiggerState

type DiggerState int64
const (
	DIGGER_ALIVE DiggerState = iota
	DIGGER_DIE
	DIGGER_GRAVE
)

type Direction

type Direction int64
const (
	UP Direction = iota
	DOWN
	LEFT
	RIGHT
	NONE
)

func Opposite

func Opposite(dir Direction) Direction

type FireState

type FireState int64
const (
	FIRE_MOVING FireState = iota
	FIRE_STOPPED
	FIRE_FINISHED
)

type MonsterState

type MonsterState int64
const (
	MONSTER_NOBBIN MonsterState = iota
	MONSTER_HOBBIN
	MONSTER_DIE
)

type Point

type Point struct {
	X, Y int32
}

type SurfTexture

type SurfTexture struct {
	W int32
	H int32
	T *sdl.Texture
	S *sdl.Surface
}

func DrawText

func DrawText(txt string, color sdl.Color) *SurfTexture

Jump to

Keyboard shortcuts

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