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() {
|
||||
d.InitObjectType()
|
||||
d.InitItemType()
|
||||
d.InitNPCType()
|
||||
d.InitMenu()
|
||||
d.InitDialog()
|
||||
d.InitLevel()
|
||||
|
||||
@@ -2,8 +2,19 @@ package domain
|
||||
|
||||
import "game/konstructor"
|
||||
|
||||
const (
|
||||
SwordItemType konstructor.ItemTypeMapKey = "sword"
|
||||
)
|
||||
|
||||
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 {
|
||||
|
||||
@@ -20,7 +20,7 @@ func (d *Domain) InitLevel() {
|
||||
Y: 10,
|
||||
Z: 0,
|
||||
},
|
||||
Type: d.GetObjectType("TestObjectType"),
|
||||
Type: d.GetObjectType(TestObjectType),
|
||||
},
|
||||
{
|
||||
ID: "test_object2",
|
||||
@@ -29,7 +29,29 @@ func (d *Domain) InitLevel() {
|
||||
Y: 50,
|
||||
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"
|
||||
|
||||
const (
|
||||
TestNPCType konstructor.NPCTypeMapKey = "test"
|
||||
)
|
||||
|
||||
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 {
|
||||
|
||||
@@ -2,9 +2,13 @@ package domain
|
||||
|
||||
import "game/konstructor"
|
||||
|
||||
const (
|
||||
TestObjectType konstructor.ObjectTypeMapKey = "test"
|
||||
)
|
||||
|
||||
func (d *Domain) InitObjectType() {
|
||||
d.ObjectTypeMap = konstructor.ObjectTypeMap{
|
||||
"TestObjectType": konstructor.ObjectType{
|
||||
TestObjectType: konstructor.ObjectType{
|
||||
ID: "test_object_type",
|
||||
Render: konstructor.Render{
|
||||
Image: "assets/images/objects/test_object.png",
|
||||
|
||||
@@ -17,6 +17,8 @@ func (e *Engine) PlaygroundUpdate() {
|
||||
func (e *Engine) PlaygroundDraw(screen *ebiten.Image) {
|
||||
e.PlaygroundBackgroundDraw(screen)
|
||||
e.PlaygroundObjectsDraw(screen)
|
||||
e.PlaygroundItemsDraw(screen)
|
||||
e.PlaygroundNPCsDraw(screen)
|
||||
}
|
||||
|
||||
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 {
|
||||
level := e.Domain.GetLevel(e.KContext.CurrentLevel)
|
||||
return level.Playgrounds[e.KContext.CurrentPlayground]
|
||||
|
||||
2
main.go
2
main.go
@@ -13,7 +13,7 @@ func main() {
|
||||
EngineWrapper: &easy_ebitengine.EngineWrapper{},
|
||||
Domain: &domain.Domain{},
|
||||
KContext: &konstructor.KContext{
|
||||
ScreenType: konstructor.DialogScreenType,
|
||||
ScreenType: konstructor.PlaygroundScreenType,
|
||||
ActiveMenu: domain.MainMenu,
|
||||
ActiveDialog: domain.DialogTest,
|
||||
CurrentLevel: 0,
|
||||
|
||||
Reference in New Issue
Block a user