restructure domain-presenter relation
This commit is contained in:
@@ -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{},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
31
main.go
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user