You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
alienSignal/tools.go

82 lines
1.9 KiB

package main
import(
"math"
"github.com/veandco/go-sdl2/sdl"
"github.com/veandco/go-sdl2/ttf"
)
var running bool
var levelState int // Current Level
var gameState int // 0 - Exit; 1 - toMenu; 2 - inLevel
var xScale float32
var yScale float32
var HugeFont *ttf.Font
var font *ttf.Font
var smallFont *ttf.Font
func init() {
ttf.Init()
smallFont, _ = ttf.OpenFont("./assets/josefin-sans/JosefinSans-Regular.ttf", 70)
font, _ = ttf.OpenFont("./assets/josefin-sans/JosefinSans-Regular.ttf", 120)
HugeFont, _ = ttf.OpenFont("./assets/josefin-sans/JosefinSans-Regular.ttf", 170)
running = true
levelState = 1
gameState = 1
Init()
}
func timingFunc(x int) uint8{
return uint8(255 / (1+math.Exp(6+float64(x)*-0.1)))
}
func min(a, b int) int {
if a < b {
return a
} else {
return b
}
}
func max(a, b int) int {
if a < b {
return b
} else {
return a
}
}
func shiftLeft(array []string, elem string) []string {
dstArray := []string{}
for i := 0; i < len(array) - 1; i++ {
dstArray = append(dstArray, array[i + 1])
}
dstArray = append(dstArray, elem)
return dstArray
}
func escapeListener(scancode sdl.Scancode) {
if scancode == sdl.SCANCODE_ESCAPE {
running = false
gameState = 1
}
}
func waitForInteraction() {
running := true
RegisterKeypressHandler(func(sc sdl.Scancode){if sc == sdl.SCANCODE_RETURN{running = false}; if sc == sdl.SCANCODE_ESCAPE{gameState = 1}})
for running {
UpdateEvents()
}
}
func createTextText(renderer *sdl.Renderer, txt string, font *ttf.Font, color sdl.Color, posx, posy int32) (*sdl.Texture, *sdl.Rect) {
i, _ := font.RenderUTF8Blended(txt, color)
defer i.Free()
image, _ := renderer.CreateTextureFromSurface(i)
_, _, width, height, _ := image.Query()
rect := &sdl.Rect{posx - width / 2, posy - height / 2, width, height}
return image, rect
}