Update modules
This commit is contained in:
parent
f0edd24743
commit
60f06875ad
4 changed files with 0 additions and 6 deletions
90
examples/_easings/easings/main.go
Normal file
90
examples/_easings/easings/main.go
Normal file
|
@ -0,0 +1,90 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/gen2brain/raylib-go/easings"
|
||||
"github.com/gen2brain/raylib-go/raygui"
|
||||
rl "github.com/gen2brain/raylib-go/raylib"
|
||||
)
|
||||
|
||||
func main() {
|
||||
screenWidth := int32(800)
|
||||
screenHeight := int32(450)
|
||||
|
||||
rl.SetConfigFlags(rl.FlagVsyncHint)
|
||||
rl.InitWindow(screenWidth, screenHeight, "raylib [easings] example - easings")
|
||||
|
||||
currentTime := 0
|
||||
duration := float32(60)
|
||||
startPositionX := float32(screenWidth) / 4
|
||||
finalPositionX := startPositionX * 3
|
||||
currentPositionX := startPositionX
|
||||
|
||||
ballPosition := rl.NewVector2(startPositionX, float32(screenHeight)/2)
|
||||
|
||||
comboActive := int32(0)
|
||||
comboLastActive := int32(0)
|
||||
|
||||
easingTypes := []string{"SineIn", "SineOut", "SineInOut", "BounceIn", "BounceOut", "BounceInOut", "BackIn", "BackOut", "BackInOut"}
|
||||
ease := easingTypes[comboActive]
|
||||
|
||||
//rl.SetTargetFPS(60)
|
||||
|
||||
for !rl.WindowShouldClose() {
|
||||
if rl.IsKeyDown(rl.KeyR) {
|
||||
currentTime = 0
|
||||
currentPositionX = startPositionX
|
||||
ballPosition.X = currentPositionX
|
||||
}
|
||||
|
||||
if comboLastActive != comboActive {
|
||||
currentTime = 0
|
||||
currentPositionX = startPositionX
|
||||
ballPosition.X = currentPositionX
|
||||
|
||||
ease = easingTypes[comboActive]
|
||||
comboLastActive = comboActive
|
||||
}
|
||||
|
||||
if currentPositionX < finalPositionX {
|
||||
switch ease {
|
||||
case "SineIn":
|
||||
currentPositionX = easings.SineIn(float32(currentTime), startPositionX, finalPositionX-startPositionX, duration)
|
||||
case "SineOut":
|
||||
currentPositionX = easings.SineOut(float32(currentTime), startPositionX, finalPositionX-startPositionX, duration)
|
||||
case "SineInOut":
|
||||
currentPositionX = easings.SineInOut(float32(currentTime), startPositionX, finalPositionX-startPositionX, duration)
|
||||
case "BounceIn":
|
||||
currentPositionX = easings.BounceIn(float32(currentTime), startPositionX, finalPositionX-startPositionX, duration)
|
||||
case "BounceOut":
|
||||
currentPositionX = easings.BounceOut(float32(currentTime), startPositionX, finalPositionX-startPositionX, duration)
|
||||
case "BounceInOut":
|
||||
currentPositionX = easings.BounceInOut(float32(currentTime), startPositionX, finalPositionX-startPositionX, duration)
|
||||
case "BackIn":
|
||||
currentPositionX = easings.BackIn(float32(currentTime), startPositionX, finalPositionX-startPositionX, duration)
|
||||
case "BackOut":
|
||||
currentPositionX = easings.BackOut(float32(currentTime), startPositionX, finalPositionX-startPositionX, duration)
|
||||
case "BackInOut":
|
||||
currentPositionX = easings.BackInOut(float32(currentTime), startPositionX, finalPositionX-startPositionX, duration)
|
||||
}
|
||||
|
||||
ballPosition.X = currentPositionX
|
||||
currentTime++
|
||||
}
|
||||
|
||||
rl.BeginDrawing()
|
||||
rl.ClearBackground(rl.RayWhite)
|
||||
|
||||
raygui.Label(rl.NewRectangle(20, 20, 200, 20), "Easing Type:")
|
||||
comboActive = raygui.ComboBox(rl.NewRectangle(20, 40, 200, 20), strings.Join(easingTypes, ";"), comboActive)
|
||||
|
||||
raygui.Label(rl.NewRectangle(20, 80, 200, 20), "Press R to reset")
|
||||
|
||||
rl.DrawCircleV(ballPosition, 50, rl.Maroon)
|
||||
|
||||
rl.EndDrawing()
|
||||
}
|
||||
|
||||
rl.CloseWindow()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue