Skip to content

Commit

Permalink
add interfaces const
Browse files Browse the repository at this point in the history
  • Loading branch information
Pavel Lakosnikov committed Aug 28, 2020
1 parent 6572c93 commit f580220
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 31 deletions.
47 changes: 18 additions & 29 deletions game/game.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ type Game struct {
window *pixelgl.Window
player actors.User

lastID int64
lastID int64
}

func (g *Game) Init() {
Expand All @@ -44,30 +44,21 @@ func (g *Game) Init() {
// Создаем ресурс-менеджер
g.rm = resource_manager.NewResourceManager("resources/textures.png")
// создаем физику
g.physics = physics.New(33 * time.Millisecond, 16, 3)
// ЗАГРУЖАЕМ НА СЦЕНУ КАРТУ
//mapObjects := g.rm.LoadMap("")
//for _, obj := range mapObjects {
// g.scene.AddObject(obj)
//}
//// Ищем точки РЕСПА ИГРОКА и Врагов
//var userSpawn interfaces.SceneObject
//var enemySpawns []interfaces.SceneObject
//userSpawn = nil
//for _, obj := range mapObjects {
// if obj.GetObjectType() == consts.ObjectTypePlayerSpawn {
// userSpawn = obj
// continue
// }
// if obj.GetObjectType() == consts.ObjectTypeAISpawn {
// enemySpawns = append(enemySpawns, obj)
// }
//}
userSpawn := g.scene.MakeEmptyObj(consts.ObjectTypeEmpty)
pos := g.window.Bounds().Center()
userSpawn.SetPos(&pos)
if userSpawn == nil {
panic("userSpawn not found on map")
g.physics = physics.New(33*time.Millisecond, 16, 3)
// Стартуем первый уровень
g.fillSceneByMap("resources/level1.json")
// Ищем точки РЕСПА ИГРОКА и Врагов
var userSpawn interfaces.SceneObject
var enemySpawns []interfaces.SceneObject
userSpawn = nil
for _, obj := range g.scene.GetObjects() {
if obj.GetObjectType() == consts.ObjectTypePlayerSpawn {
userSpawn = obj
continue
}
if obj.GetObjectType() == consts.ObjectTypeAISpawn {
enemySpawns = append(enemySpawns, obj)
}
}

// Создаем объект танка
Expand All @@ -83,8 +74,6 @@ func (g *Game) Init() {
func (g *Game) StartLevel() {
last := time.Now()
g.lastID = 0
// Стартуем первый уровень
g.fillSceneByMap("resources/level1.json")
for !g.window.Closed() {
dt := time.Since(last)
last = time.Now()
Expand All @@ -107,7 +96,7 @@ func (g *Game) fillSceneByMap(levelMapPath string) {
var sceneObjects []interfaces.SceneObject
for y, row := range levelMap {
for x, objType := range row {
currentPos := pixel.V(float64(x * consts.MapTileSize), g.window.Bounds().Max.Y - float64(y * consts.MapTileSize))
currentPos := pixel.V(float64(x*consts.MapTileSize), g.window.Bounds().Max.Y-float64(y*consts.MapTileSize))

sceneObj := g.getGameObjectByType(objType, currentPos)
if sceneObj != nil {
Expand Down Expand Up @@ -136,5 +125,5 @@ func (g *Game) getGameObjectByType(typ consts.ObjectType, pos pixel.Vec) interfa
func (g *Game) MakeTank() *tank.Tank {
obj := g.scene.MakeEmptyObj(consts.ObjectTypePlayerTank1)
obj.SetSpriteList(g.rm.GetSpriteMap(consts.ObjectTypePlayerTank1))
return tank.NewTank(obj, 3)
return tank.NewTank(obj, 5)
}
30 changes: 30 additions & 0 deletions physics/move_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package physics

import (
"github.com/faiface/pixel"
object "github.com/shamanr/battle_citty/scene/objects"
"testing"
)

func Test_isMoving(t *testing.T) {
tests := []struct {
name string
vec pixel.Vec
want bool
}{
{
name: "Двигается!",
vec: pixel.V(10000, -3000),
want: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
obj := object.Object{}
obj.SetSpeed(&tt.vec)
if got := isMoving(&obj); got != tt.want {
t.Errorf("isMoving() = %v, want %v", got, tt.want)
}
})
}
}
4 changes: 2 additions & 2 deletions scene/objects/tank/tank.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ func (t *Tank) move() {

// Stop остановка танка
func (t *Tank) Stop() {
//s := pixel.V(0, 0)
//t.SetSpeed(&s)
s := pixel.V(0, 0)
t.SetSpeed(&s)
}

// Shoot стрельба
Expand Down

0 comments on commit f580220

Please sign in to comment.