restructure domain-presenter relation
This commit is contained in:
@@ -1,11 +1,11 @@
|
|||||||
package domain
|
package domain
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
name string
|
Name string
|
||||||
}
|
}
|
||||||
|
|
||||||
type Player struct {
|
type Player struct {
|
||||||
name string
|
Name string
|
||||||
}
|
}
|
||||||
|
|
||||||
type GameField struct {
|
type GameField struct {
|
||||||
@@ -24,10 +24,3 @@ type Context struct {
|
|||||||
CurrentGameField GameField
|
CurrentGameField GameField
|
||||||
CurrentPosition Position
|
CurrentPosition Position
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateContext() Context {
|
|
||||||
return Context{
|
|
||||||
Player: Player{},
|
|
||||||
User: User{},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,16 +1,10 @@
|
|||||||
package domain
|
package domain
|
||||||
|
|
||||||
type PresenterInterface interface {
|
|
||||||
Init()
|
|
||||||
}
|
|
||||||
|
|
||||||
type Domain struct {
|
type Domain struct {
|
||||||
Context Context
|
Context Context
|
||||||
Presenter PresenterInterface
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d Domain) Init() {
|
func (d Domain) Init() {
|
||||||
d.Presenter.Init()
|
|
||||||
menu_manager := MenuManager{}
|
menu_manager := MenuManager{}
|
||||||
menu_manager.Init()
|
menu_manager.Init()
|
||||||
// level_manager := LevelManager{}
|
// level_manager := LevelManager{}
|
||||||
|
|||||||
31
main.go
31
main.go
@@ -3,16 +3,35 @@ package main
|
|||||||
import (
|
import (
|
||||||
"game/domain"
|
"game/domain"
|
||||||
"game/presenter"
|
"game/presenter"
|
||||||
|
|
||||||
|
"github.com/hajimehoshi/ebiten"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
context := domain.CreateContext()
|
|
||||||
|
|
||||||
domain := domain.Domain{
|
domain := domain.Domain{
|
||||||
Context: context,
|
Context: domain.Context{
|
||||||
Presenter: presenter.Presenter{
|
Player: domain.Player{
|
||||||
Context: context,
|
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
|
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() {
|
func (k *Keyboard) Watch() {
|
||||||
values := reflect.ValueOf(k.KeyMap)
|
values := reflect.ValueOf(k.KeyMap)
|
||||||
|
|
||||||
|
|||||||
@@ -7,18 +7,22 @@ import (
|
|||||||
"github.com/hajimehoshi/ebiten"
|
"github.com/hajimehoshi/ebiten"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type DomainInterface interface {
|
||||||
|
Init()
|
||||||
|
}
|
||||||
|
|
||||||
type Presenter struct {
|
type Presenter struct {
|
||||||
Context domain.Context
|
Context domain.Context
|
||||||
|
Domain DomainInterface
|
||||||
|
Keyboard Keyboard
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p Presenter) Init() {
|
func (p Presenter) Init() {
|
||||||
ebiten.SetWindowSize(screenWidth*2, screenHeight*2)
|
ebiten.SetWindowSize(screenWidth*2, screenHeight*2)
|
||||||
ebiten.SetWindowTitle("Game")
|
ebiten.SetWindowTitle("Game")
|
||||||
if err := ebiten.RunGame(&GameEngine{
|
if err := ebiten.RunGame(&GameEngine{
|
||||||
Context: p.Context,
|
Context: p.Context,
|
||||||
Keyboard: Keyboard{
|
Keyboard: p.Keyboard,
|
||||||
KeyMap: CreateDefaultKeyMap(),
|
|
||||||
},
|
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user