player as object
This commit is contained in:
BIN
assets/images/players/default.png
Normal file
BIN
assets/images/players/default.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 214 B |
@@ -15,5 +15,6 @@ func (d *Domain) Init() {
|
|||||||
d.InitNPCType()
|
d.InitNPCType()
|
||||||
d.InitMenu()
|
d.InitMenu()
|
||||||
d.InitDialog()
|
d.InitDialog()
|
||||||
|
d.InitPlayer()
|
||||||
d.InitLevel()
|
d.InitLevel()
|
||||||
}
|
}
|
||||||
|
|||||||
38
domain/type.player.go
Normal file
38
domain/type.player.go
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
package domain
|
||||||
|
|
||||||
|
import "game/konstructor"
|
||||||
|
|
||||||
|
const (
|
||||||
|
DefaultPlayerType konstructor.PlayerTypeID = "default"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (d *Domain) InitPlayer() {
|
||||||
|
d.Players = []konstructor.Player{
|
||||||
|
{
|
||||||
|
ID: "default",
|
||||||
|
Type: konstructor.PlayerType{
|
||||||
|
ID: DefaultPlayerType,
|
||||||
|
Render: konstructor.Render{
|
||||||
|
Image: konstructor.GetPlayerTypeImagePath(DefaultPlayerType),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Position: konstructor.Position{
|
||||||
|
X: 70,
|
||||||
|
Y: 70,
|
||||||
|
Z: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *Domain) GetPlayers() []konstructor.Player {
|
||||||
|
return d.Players
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *Domain) GetPlayer(index int) konstructor.Player {
|
||||||
|
return d.Players[index]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *Domain) GetDefaultPlayer() konstructor.Player {
|
||||||
|
return d.Players[0]
|
||||||
|
}
|
||||||
@@ -19,6 +19,7 @@ func (e *Engine) PlaygroundDraw(screen *ebiten.Image) {
|
|||||||
e.PlaygroundPlatformsDraw(screen)
|
e.PlaygroundPlatformsDraw(screen)
|
||||||
e.PlaygroundItemsDraw(screen)
|
e.PlaygroundItemsDraw(screen)
|
||||||
e.PlaygroundNPCsDraw(screen)
|
e.PlaygroundNPCsDraw(screen)
|
||||||
|
e.PlaygroundDefaultPlayerDraw(screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Engine) PlaygroundBackgroundDraw(screen *ebiten.Image) {
|
func (e *Engine) PlaygroundBackgroundDraw(screen *ebiten.Image) {
|
||||||
@@ -66,6 +67,17 @@ func (e *Engine) PlaygroundNPCsDraw(screen *ebiten.Image) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (e *Engine) PlaygroundDefaultPlayerDraw(screen *ebiten.Image) {
|
||||||
|
player := e.Domain.GetDefaultPlayer()
|
||||||
|
geoM := ebiten.GeoM{}
|
||||||
|
render := player.Type.Render
|
||||||
|
geoM.Reset()
|
||||||
|
geoM.Translate(float64(player.Position.X), float64(player.Position.Y))
|
||||||
|
screen.DrawImage(e.GetImage(render), &ebiten.DrawImageOptions{
|
||||||
|
GeoM: geoM,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func (e *Engine) GetPlayground() konstructor.Playground {
|
func (e *Engine) GetPlayground() konstructor.Playground {
|
||||||
level := e.Domain.GetLevel(e.KContext.CurrentLevel)
|
level := e.Domain.GetLevel(e.KContext.CurrentLevel)
|
||||||
return level.Playgrounds[e.KContext.CurrentPlayground]
|
return level.Playgrounds[e.KContext.CurrentPlayground]
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ type DomainBaseFields struct {
|
|||||||
MenuMap MenuMap
|
MenuMap MenuMap
|
||||||
DialogMap DialogMap
|
DialogMap DialogMap
|
||||||
Levels []Level
|
Levels []Level
|
||||||
|
Players []Player
|
||||||
PlatformTypeMap PlatformTypeMap
|
PlatformTypeMap PlatformTypeMap
|
||||||
ItemTypeMap ItemTypeMap
|
ItemTypeMap ItemTypeMap
|
||||||
NPCTypeMap NPCTypeMap
|
NPCTypeMap NPCTypeMap
|
||||||
@@ -23,6 +24,10 @@ type DomainInterface interface {
|
|||||||
GetLevels() []Level
|
GetLevels() []Level
|
||||||
GetLevel(index int) Level
|
GetLevel(index int) Level
|
||||||
|
|
||||||
|
GetPlayers() []Player
|
||||||
|
GetPlayer(index int) Player
|
||||||
|
GetDefaultPlayer() Player
|
||||||
|
|
||||||
GetPlatformTypeMap() PlatformTypeMap
|
GetPlatformTypeMap() PlatformTypeMap
|
||||||
GetPlatformType(name PlatformTypeMapKey) PlatformType
|
GetPlatformType(name PlatformTypeMapKey) PlatformType
|
||||||
|
|
||||||
|
|||||||
@@ -6,11 +6,7 @@ type KContext struct {
|
|||||||
ActiveDialog DialogMapKey
|
ActiveDialog DialogMapKey
|
||||||
CurrentLevel int
|
CurrentLevel int
|
||||||
CurrentPlayground int
|
CurrentPlayground int
|
||||||
Players []Player
|
Multiplayer bool
|
||||||
}
|
|
||||||
|
|
||||||
func (c *KContext) getPrimaryPlayer() Player {
|
|
||||||
return c.Players[0]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *KContext) ScreenTypeIs(name ScreenType) bool {
|
func (c *KContext) ScreenTypeIs(name ScreenType) bool {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ const (
|
|||||||
ItemObjectType ObjectType = "item"
|
ItemObjectType ObjectType = "item"
|
||||||
NPCObjectType ObjectType = "npc"
|
NPCObjectType ObjectType = "npc"
|
||||||
PlatformObjectType ObjectType = "platform"
|
PlatformObjectType ObjectType = "platform"
|
||||||
|
PlayerObjectType ObjectType = "player"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ObjectDirectoryMap map[ObjectType]string
|
type ObjectDirectoryMap map[ObjectType]string
|
||||||
@@ -14,6 +15,7 @@ var ObjectDirectories = ObjectDirectoryMap{
|
|||||||
ItemObjectType: "items",
|
ItemObjectType: "items",
|
||||||
NPCObjectType: "npcs",
|
NPCObjectType: "npcs",
|
||||||
PlatformObjectType: "platforms",
|
PlatformObjectType: "platforms",
|
||||||
|
PlayerObjectType: "players",
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetObjectDirectory(name ObjectType) string {
|
func GetObjectDirectory(name ObjectType) string {
|
||||||
|
|||||||
29
konstructor/object.player.go
Normal file
29
konstructor/object.player.go
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
package konstructor
|
||||||
|
|
||||||
|
type PlayerTypeID string
|
||||||
|
|
||||||
|
type InventoryItem struct {
|
||||||
|
Item Item
|
||||||
|
Used bool
|
||||||
|
Active bool
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inventory struct {
|
||||||
|
Items []InventoryItem
|
||||||
|
}
|
||||||
|
|
||||||
|
type PlayerType struct {
|
||||||
|
ID PlayerTypeID
|
||||||
|
Render Render
|
||||||
|
}
|
||||||
|
|
||||||
|
type Player struct {
|
||||||
|
ID string
|
||||||
|
Type PlayerType
|
||||||
|
Position Position
|
||||||
|
Inventory Inventory
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetPlayerTypeImagePath(name PlayerTypeID) string {
|
||||||
|
return GetObjectDirectory(PlayerObjectType) + string(name) + ".png"
|
||||||
|
}
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
package konstructor
|
|
||||||
|
|
||||||
type InventoryItem struct {
|
|
||||||
Item Item
|
|
||||||
Used bool
|
|
||||||
Active bool
|
|
||||||
}
|
|
||||||
|
|
||||||
type Inventory struct {
|
|
||||||
Items []InventoryItem
|
|
||||||
}
|
|
||||||
|
|
||||||
type Player struct {
|
|
||||||
ID string
|
|
||||||
Render Render
|
|
||||||
Position Position
|
|
||||||
Inventory Inventory
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user