restructure domain-presenter relation

This commit is contained in:
2023-06-30 17:14:08 +02:00
parent bab177a71d
commit bd63d00ad9
5 changed files with 37 additions and 40 deletions

View File

@@ -1,11 +1,11 @@
package domain
type User struct {
name string
Name string
}
type Player struct {
name string
Name string
}
type GameField struct {
@@ -24,10 +24,3 @@ type Context struct {
CurrentGameField GameField
CurrentPosition Position
}
func CreateContext() Context {
return Context{
Player: Player{},
User: User{},
}
}

View File

@@ -1,16 +1,10 @@
package domain
type PresenterInterface interface {
Init()
}
type Domain struct {
Context Context
Presenter PresenterInterface
}
func (d Domain) Init() {
d.Presenter.Init()
menu_manager := MenuManager{}
menu_manager.Init()
// level_manager := LevelManager{}

31
main.go
View File

@@ -3,16 +3,35 @@ package main
import (
"game/domain"
"game/presenter"
"github.com/hajimehoshi/ebiten"
)
func main() {
context := domain.CreateContext()
domain := domain.Domain{
Context: context,
Presenter: presenter.Presenter{
Context: context,
Context: domain.Context{
Player: domain.Player{
Name: "Player One",
},
User: domain.User{
Name: "John Doe",
},
},
}
domain.Init()
presenter := presenter.Presenter{
Domain: domain,
Keyboard: presenter.Keyboard{
KeyMap: presenter.KeyMap{
Up: ebiten.KeyUp,
Down: ebiten.KeyDown,
Right: ebiten.KeyRight,
Left: ebiten.KeyLeft,
Action0: ebiten.KeySpace,
Action1: ebiten.KeyAlt,
Action2: ebiten.KeyControl,
Action3: ebiten.KeyEscape,
},
},
}
presenter.Init()
}

View File

@@ -24,19 +24,6 @@ type Keyboard struct {
KeyMap KeyMap
}
func CreateDefaultKeyMap() KeyMap {
return KeyMap{
Up: ebiten.KeyUp,
Down: ebiten.KeyDown,
Right: ebiten.KeyRight,
Left: ebiten.KeyLeft,
Action0: ebiten.KeySpace,
Action1: ebiten.KeyAlt,
Action2: ebiten.KeyControl,
Action3: ebiten.KeyEscape,
}
}
func (k *Keyboard) Watch() {
values := reflect.ValueOf(k.KeyMap)

View File

@@ -7,8 +7,14 @@ import (
"github.com/hajimehoshi/ebiten"
)
type DomainInterface interface {
Init()
}
type Presenter struct {
Context domain.Context
Domain DomainInterface
Keyboard Keyboard
}
func (p Presenter) Init() {
@@ -16,9 +22,7 @@ func (p Presenter) Init() {
ebiten.SetWindowTitle("Game")
if err := ebiten.RunGame(&GameEngine{
Context: p.Context,
Keyboard: Keyboard{
KeyMap: CreateDefaultKeyMap(),
},
Keyboard: p.Keyboard,
}); err != nil {
log.Fatal(err)
}