2018-07-04 17:27:22 -05:00
|
|
|
package supervisor
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/faiface/pixel/pixelgl"
|
2018-07-05 15:25:34 -05:00
|
|
|
"github.com/faiface/pixel/examples/community/ASharedJourney/shared"
|
2018-07-04 17:27:22 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
//transition Direction in x , y coordinates
|
|
|
|
type Direction struct {
|
|
|
|
X int
|
|
|
|
Y int
|
|
|
|
}
|
|
|
|
|
|
|
|
//get the key values that was pressed
|
|
|
|
//old directions
|
|
|
|
var prevKeyPressed pixelgl.Button
|
|
|
|
var keyAlreadyPressed int
|
|
|
|
|
|
|
|
func key() Direction {
|
|
|
|
var pressed pixelgl.Button
|
|
|
|
|
|
|
|
var newDir = Direction{
|
|
|
|
X: 0,
|
|
|
|
Y: 0,
|
|
|
|
}
|
|
|
|
|
|
|
|
//check if key was just pressed
|
|
|
|
if shared.Win.Pressed(pixelgl.KeyLeft) {
|
|
|
|
pressed = pixelgl.KeyLeft
|
|
|
|
newDir.X = -1
|
|
|
|
goto end
|
|
|
|
} else if shared.Win.Pressed(pixelgl.KeyRight) {
|
|
|
|
pressed = pixelgl.KeyRight
|
|
|
|
newDir.X = 1
|
|
|
|
goto end
|
|
|
|
} else if shared.Win.Pressed(pixelgl.KeyDown) {
|
|
|
|
newDir.X = 0
|
|
|
|
newDir.Y = -1
|
|
|
|
pressed = pixelgl.KeyDown
|
|
|
|
goto end
|
|
|
|
} else if shared.Win.Pressed(pixelgl.KeyUp) {
|
|
|
|
newDir.X = 0
|
|
|
|
newDir.Y = 1
|
|
|
|
pressed = pixelgl.KeyUp
|
|
|
|
goto end
|
|
|
|
} else {
|
|
|
|
//no key pressed
|
|
|
|
prevKeyPressed = pixelgl.Key0 //default
|
|
|
|
return newDir
|
|
|
|
}
|
|
|
|
|
|
|
|
end:
|
|
|
|
//check if key repressed
|
|
|
|
if pressed == prevKeyPressed {
|
|
|
|
//time penalty
|
|
|
|
if keyAlreadyPressed == 5 {
|
|
|
|
keyAlreadyPressed = 0
|
|
|
|
return newDir
|
|
|
|
} else {
|
|
|
|
newDir = Direction{0, 0}
|
|
|
|
}
|
|
|
|
keyAlreadyPressed += 1
|
|
|
|
} else {
|
|
|
|
keyAlreadyPressed = 0
|
|
|
|
}
|
|
|
|
prevKeyPressed = pressed
|
|
|
|
return newDir
|
|
|
|
}
|