item and npc rendering
This commit is contained in:
BIN
assets/images/items/sword.ase
Normal file
BIN
assets/images/items/sword.ase
Normal file
Binary file not shown.
BIN
assets/images/items/sword.png
Normal file
BIN
assets/images/items/sword.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 234 B |
BIN
assets/images/npcs/test_npc.ase
Normal file
BIN
assets/images/npcs/test_npc.ase
Normal file
Binary file not shown.
BIN
assets/images/npcs/test_npc.png
Normal file
BIN
assets/images/npcs/test_npc.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 221 B |
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 226 B After Width: | Height: | Size: 214 B |
@@ -11,6 +11,8 @@ type Domain struct {
|
|||||||
|
|
||||||
func (d *Domain) Init() {
|
func (d *Domain) Init() {
|
||||||
d.InitObjectType()
|
d.InitObjectType()
|
||||||
|
d.InitItemType()
|
||||||
|
d.InitNPCType()
|
||||||
d.InitMenu()
|
d.InitMenu()
|
||||||
d.InitDialog()
|
d.InitDialog()
|
||||||
d.InitLevel()
|
d.InitLevel()
|
||||||
|
|||||||
@@ -2,8 +2,19 @@ package domain
|
|||||||
|
|
||||||
import "game/konstructor"
|
import "game/konstructor"
|
||||||
|
|
||||||
|
const (
|
||||||
|
SwordItemType konstructor.ItemTypeMapKey = "sword"
|
||||||
|
)
|
||||||
|
|
||||||
func (d *Domain) InitItemType() {
|
func (d *Domain) InitItemType() {
|
||||||
d.ItemTypeMap = konstructor.ItemTypeMap{}
|
d.ItemTypeMap = konstructor.ItemTypeMap{
|
||||||
|
SwordItemType: {
|
||||||
|
ID: "sword",
|
||||||
|
Render: konstructor.Render{
|
||||||
|
Image: "assets/images/items/sword.png",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Domain) GetItemTypeMap() konstructor.ItemTypeMap {
|
func (d *Domain) GetItemTypeMap() konstructor.ItemTypeMap {
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ func (d *Domain) InitLevel() {
|
|||||||
Y: 10,
|
Y: 10,
|
||||||
Z: 0,
|
Z: 0,
|
||||||
},
|
},
|
||||||
Type: d.GetObjectType("TestObjectType"),
|
Type: d.GetObjectType(TestObjectType),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ID: "test_object2",
|
ID: "test_object2",
|
||||||
@@ -29,7 +29,29 @@ func (d *Domain) InitLevel() {
|
|||||||
Y: 50,
|
Y: 50,
|
||||||
Z: 0,
|
Z: 0,
|
||||||
},
|
},
|
||||||
Type: d.GetObjectType("TestObjectType"),
|
Type: d.GetObjectType(TestObjectType),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Items: []konstructor.Item{
|
||||||
|
{
|
||||||
|
ID: "sword_1",
|
||||||
|
Position: konstructor.Position{
|
||||||
|
X: 100,
|
||||||
|
Y: 100,
|
||||||
|
Z: 0,
|
||||||
|
},
|
||||||
|
Type: d.GetItemType(SwordItemType),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
NPCs: []konstructor.NPC{
|
||||||
|
{
|
||||||
|
ID: "test_npc_1",
|
||||||
|
Position: konstructor.Position{
|
||||||
|
X: 220,
|
||||||
|
Y: 180,
|
||||||
|
Z: 0,
|
||||||
|
},
|
||||||
|
Type: d.GetNPCType(TestNPCType),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,8 +2,18 @@ package domain
|
|||||||
|
|
||||||
import "game/konstructor"
|
import "game/konstructor"
|
||||||
|
|
||||||
|
const (
|
||||||
|
TestNPCType konstructor.NPCTypeMapKey = "test"
|
||||||
|
)
|
||||||
|
|
||||||
func (d *Domain) InitNPCType() {
|
func (d *Domain) InitNPCType() {
|
||||||
d.NPCTypeMap = konstructor.NPCTypeMap{}
|
d.NPCTypeMap = konstructor.NPCTypeMap{
|
||||||
|
TestNPCType: {
|
||||||
|
Render: konstructor.Render{
|
||||||
|
Image: "assets/images/npcs/test_npc.png",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Domain) GetNPCTypeMap() konstructor.NPCTypeMap {
|
func (d *Domain) GetNPCTypeMap() konstructor.NPCTypeMap {
|
||||||
|
|||||||
@@ -2,9 +2,13 @@ package domain
|
|||||||
|
|
||||||
import "game/konstructor"
|
import "game/konstructor"
|
||||||
|
|
||||||
|
const (
|
||||||
|
TestObjectType konstructor.ObjectTypeMapKey = "test"
|
||||||
|
)
|
||||||
|
|
||||||
func (d *Domain) InitObjectType() {
|
func (d *Domain) InitObjectType() {
|
||||||
d.ObjectTypeMap = konstructor.ObjectTypeMap{
|
d.ObjectTypeMap = konstructor.ObjectTypeMap{
|
||||||
"TestObjectType": konstructor.ObjectType{
|
TestObjectType: konstructor.ObjectType{
|
||||||
ID: "test_object_type",
|
ID: "test_object_type",
|
||||||
Render: konstructor.Render{
|
Render: konstructor.Render{
|
||||||
Image: "assets/images/objects/test_object.png",
|
Image: "assets/images/objects/test_object.png",
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ func (e *Engine) PlaygroundUpdate() {
|
|||||||
func (e *Engine) PlaygroundDraw(screen *ebiten.Image) {
|
func (e *Engine) PlaygroundDraw(screen *ebiten.Image) {
|
||||||
e.PlaygroundBackgroundDraw(screen)
|
e.PlaygroundBackgroundDraw(screen)
|
||||||
e.PlaygroundObjectsDraw(screen)
|
e.PlaygroundObjectsDraw(screen)
|
||||||
|
e.PlaygroundItemsDraw(screen)
|
||||||
|
e.PlaygroundNPCsDraw(screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Engine) PlaygroundBackgroundDraw(screen *ebiten.Image) {
|
func (e *Engine) PlaygroundBackgroundDraw(screen *ebiten.Image) {
|
||||||
@@ -38,6 +40,32 @@ func (e *Engine) PlaygroundObjectsDraw(screen *ebiten.Image) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (e *Engine) PlaygroundItemsDraw(screen *ebiten.Image) {
|
||||||
|
playground := e.GetPlayground()
|
||||||
|
geoM := ebiten.GeoM{}
|
||||||
|
for _, object := range playground.Items {
|
||||||
|
render := object.Type.Render
|
||||||
|
geoM.Reset()
|
||||||
|
geoM.Translate(float64(object.Position.X), float64(object.Position.Y))
|
||||||
|
screen.DrawImage(e.GetImage(render), &ebiten.DrawImageOptions{
|
||||||
|
GeoM: geoM,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Engine) PlaygroundNPCsDraw(screen *ebiten.Image) {
|
||||||
|
playground := e.GetPlayground()
|
||||||
|
geoM := ebiten.GeoM{}
|
||||||
|
for _, object := range playground.NPCs {
|
||||||
|
render := object.Type.Render
|
||||||
|
geoM.Reset()
|
||||||
|
geoM.Translate(float64(object.Position.X), float64(object.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]
|
||||||
|
|||||||
2
main.go
2
main.go
@@ -13,7 +13,7 @@ func main() {
|
|||||||
EngineWrapper: &easy_ebitengine.EngineWrapper{},
|
EngineWrapper: &easy_ebitengine.EngineWrapper{},
|
||||||
Domain: &domain.Domain{},
|
Domain: &domain.Domain{},
|
||||||
KContext: &konstructor.KContext{
|
KContext: &konstructor.KContext{
|
||||||
ScreenType: konstructor.DialogScreenType,
|
ScreenType: konstructor.PlaygroundScreenType,
|
||||||
ActiveMenu: domain.MainMenu,
|
ActiveMenu: domain.MainMenu,
|
||||||
ActiveDialog: domain.DialogTest,
|
ActiveDialog: domain.DialogTest,
|
||||||
CurrentLevel: 0,
|
CurrentLevel: 0,
|
||||||
|
|||||||
Reference in New Issue
Block a user