mirror of
https://github.com/stevenhowes/GoRetro.git
synced 2026-05-26 15:53:31 +01:00
47 lines
997 B
Go
47 lines
997 B
Go
package GoRetro
|
|
|
|
/*
|
|
* --------------------
|
|
* BounderScreen
|
|
* --------------------
|
|
* A bounder which resets the position to the opposite of
|
|
* whichever bound was hit
|
|
*/
|
|
|
|
type bounderScreenResetting struct {
|
|
container *Element
|
|
}
|
|
|
|
func NewBounderScreenResetting(container *Element) *bounderScreenResetting {
|
|
return &bounderScreenResetting{container: container}
|
|
}
|
|
|
|
func (bounder *bounderScreenResetting) onDraw() error {
|
|
return nil
|
|
}
|
|
|
|
func (bounder *bounderScreenResetting) onUpdate() error {
|
|
b := bounder.container
|
|
|
|
// If any position exceeds the screen dimensions, wrap it to the
|
|
// opposite side
|
|
if b.Position.X > float64(Config.ScreenWidth) {
|
|
b.Position.X = 0
|
|
}
|
|
if b.Position.X < 0 {
|
|
b.Position.X = float64(Config.ScreenWidth)
|
|
}
|
|
if b.Position.Y > float64(Config.ScreenHeight) {
|
|
b.Position.Y = 0
|
|
}
|
|
if b.Position.Y < 0 {
|
|
b.Position.Y = float64(Config.ScreenWidth)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (bounder *bounderScreenResetting) onCollision(other *Element) error {
|
|
return nil
|
|
}
|