Ditch keyboard mover, shooter, interval shooter. All of that is game code not engine. Added key handler and scheduler. Can also now duplicate components on an element (key readers for example)

This commit is contained in:
stevenhowes
2022-01-04 22:00:31 +00:00
parent 45c553150c
commit bc5cd16447
7 changed files with 98 additions and 223 deletions
+49
View File
@@ -0,0 +1,49 @@
package GoRetro
/*
* --------------------
* schedulerInterval
* --------------------
* Calls a callback at fixed intervals
*/
import (
"time"
)
type schedulerInterval struct {
container *Element
interval time.Duration // Time between triggers
lastTrigger time.Time // Last trigger
scheduleFunc func(element *Element)
}
func NewSchedulerInterval(container *Element, interval time.Duration, lastTrigger time.Time, Callback func(element *Element)) *schedulerInterval {
return &schedulerInterval{
container: container,
interval: interval,
lastTrigger: lastTrigger,
scheduleFunc: Callback,
}
}
func (scheduler *schedulerInterval) onDraw() error {
return nil
}
func (scheduler *schedulerInterval) onUpdate() error {
//pos := shooter.container.Position
if time.Since(scheduler.lastTrigger) >= scheduler.interval {
scheduler.scheduleFunc(scheduler.container)
scheduler.lastTrigger = time.Now()
}
return nil
}
func (scheduler *schedulerInterval) onCollision(other *Element) error {
return nil
}