mirror of
https://github.com/genxium/DelayNoMore
synced 2024-12-25 11:18:55 +00:00
Added simple map for calibration.
This commit is contained in:
parent
f2c8d4cd65
commit
1122f4d71c
@ -1152,17 +1152,19 @@ func (pR *Room) applyInputFrameDownsyncDynamics(fromRenderFrameId int32, toRende
|
||||
baseChange := player.Speed * pR.RollbackEstimatedDt * decodedInputSpeedFactor
|
||||
dx := baseChange * float64(decodedInput[0])
|
||||
dy := baseChange * float64(decodedInput[1])
|
||||
dyInResolv := -dy
|
||||
|
||||
collisionPlayerIndex := COLLISION_PLAYER_INDEX_PREFIX + joinIndex
|
||||
playerCollider := pR.CollisionSysMap[collisionPlayerIndex]
|
||||
if collision := playerCollider.Check(dx, dy, "Barrier"); collision != nil {
|
||||
if collision := playerCollider.Check(dx, dyInResolv, "Barrier"); collision != nil {
|
||||
changeWithCollision := collision.ContactWithObject(collision.Objects[0])
|
||||
Logger.Info(fmt.Sprintf("Collided: roomId=%v, playerId=%v, orig dx=%v, orig dy=%v, new dx =%v, new dy=%v", pR.Id, player.Id, dx, dy, changeWithCollision.X(), changeWithCollision.Y()))
|
||||
dx = changeWithCollision.X()
|
||||
dy = changeWithCollision.Y()
|
||||
dyInResolv = changeWithCollision.Y()
|
||||
dy = -dyInResolv
|
||||
}
|
||||
playerCollider.X += dx
|
||||
playerCollider.Y += dy
|
||||
playerCollider.Y += dyInResolv
|
||||
// Update in "collision space"
|
||||
playerCollider.Update()
|
||||
|
||||
@ -1198,7 +1200,7 @@ func (pR *Room) refreshColliders() {
|
||||
|
||||
space := resolv.NewSpace(int(spaceW), int(spaceH), int(pR.StageTileW), int(pR.StageTileH)) // allocate a new collision space everytime after a battle is settled
|
||||
for _, player := range pR.Players {
|
||||
playerCollider := resolv.NewObject(player.X+spaceOffsetX, player.Y+spaceOffsetY, playerColliderRadius*2, playerColliderRadius*2)
|
||||
playerCollider := resolv.NewObject(player.X+spaceOffsetX, -player.Y+spaceOffsetY, playerColliderRadius*2, playerColliderRadius*2)
|
||||
playerColliderShape := resolv.NewCircle(0, 0, playerColliderRadius*2)
|
||||
playerCollider.SetShape(playerColliderShape)
|
||||
space.Add(playerCollider)
|
||||
@ -1231,10 +1233,9 @@ func (pR *Room) refreshColliders() {
|
||||
barrierColliderShape.AddPoints(p.X, p.Y)
|
||||
}
|
||||
|
||||
barrierCollider := resolv.NewObject(barrier.Boundary.Anchor.X+spaceOffsetX, barrier.Boundary.Anchor.Y+spaceOffsetY, w, h, "Barrier")
|
||||
barrierCollider := resolv.NewObject(barrier.Boundary.Anchor.X+spaceOffsetX, -barrier.Boundary.Anchor.Y+spaceOffsetY, w, h, "Barrier")
|
||||
barrierCollider.SetShape(barrierColliderShape)
|
||||
space.Add(barrierCollider)
|
||||
pR.printBarrier(barrierCollider)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -85,7 +85,9 @@ type Game struct {
|
||||
|
||||
func NewGame() *Game {
|
||||
|
||||
stageDiscreteW, stageDiscreteH, stageTileW, stageTileH, playerPosMap, barrierMap, err := parseStage("richsoil")
|
||||
stageName := "simple" // Use this for calibration
|
||||
// stageName := "richsoil"
|
||||
stageDiscreteW, stageDiscreteH, stageTileW, stageTileH, playerPosMap, barrierMap, err := parseStage(stageName)
|
||||
if nil != err {
|
||||
panic(err)
|
||||
}
|
||||
|
@ -35,17 +35,17 @@ func NewWorldColliderDisplay(game *Game, stageDiscreteW, stageDiscreteH, stageTi
|
||||
spaceOffsetX := float64(spaceW) * 0.5
|
||||
spaceOffsetY := float64(spaceH) * 0.5
|
||||
|
||||
// TODO: Move collider y-axis transformation to a "dnmshared"
|
||||
playerColliderRadius := float64(12) // hardcoded
|
||||
space := resolv.NewSpace(int(spaceW), int(spaceH), int(stageTileW), int(stageTileH))
|
||||
for _, player := range playerList {
|
||||
playerCollider := resolv.NewObject(player.X+spaceOffsetX, player.Y+spaceOffsetY, playerColliderRadius*2, playerColliderRadius*2, "Player")
|
||||
playerCollider := resolv.NewObject(player.X+spaceOffsetX, -player.Y+spaceOffsetY, playerColliderRadius*2, playerColliderRadius*2, "Player")
|
||||
playerColliderShape := resolv.NewCircle(0, 0, playerColliderRadius*2)
|
||||
playerCollider.SetShape(playerColliderShape)
|
||||
Logger.Info("player shape added:", zap.Any("shape", playerColliderShape))
|
||||
space.Add(playerCollider)
|
||||
}
|
||||
|
||||
|
||||
barrierLocalId := 0
|
||||
for _, barrier := range barrierList {
|
||||
var w float64 = 0
|
||||
@ -66,12 +66,12 @@ func NewWorldColliderDisplay(game *Game, stageDiscreteW, stageDiscreteH, stageTi
|
||||
}
|
||||
|
||||
barrierColliderShape := resolv.NewConvexPolygon()
|
||||
for i := len(barrier.Points)-1; i >= 0; i-- {
|
||||
for i := 0; i < len(barrier.Points); i++ {
|
||||
p := barrier.Points[i]
|
||||
barrierColliderShape.AddPoints(p.X, p.Y)
|
||||
}
|
||||
|
||||
barrierCollider := resolv.NewObject(barrier.Anchor.X+spaceOffsetX, barrier.Anchor.Y+spaceOffsetY, w, h, "Barrier")
|
||||
barrierCollider := resolv.NewObject(barrier.Anchor.X+spaceOffsetX, -barrier.Anchor.Y+spaceOffsetY, w, h, "Barrier")
|
||||
barrierCollider.SetShape(barrierColliderShape)
|
||||
|
||||
Logger.Info("barrier shape added:", zap.Any("barrierLocalId", barrierLocalId), zap.Any("shape", barrierColliderShape))
|
||||
@ -98,7 +98,7 @@ func (world *WorldColliderDisplay) Draw(screen *ebiten.Image) {
|
||||
ebitenutil.DrawRect(screen, o.X, o.Y, o.W, o.H, drawColor)
|
||||
}
|
||||
|
||||
world.Game.DebugDraw(screen, world.Space)
|
||||
// world.Game.DebugDraw(screen, world.Space)
|
||||
|
||||
if world.Game.ShowHelpText {
|
||||
|
||||
|
@ -1,170 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"image/color"
|
||||
"strconv"
|
||||
|
||||
"github.com/hajimehoshi/ebiten/v2"
|
||||
"github.com/hajimehoshi/ebiten/v2/ebitenutil"
|
||||
"github.com/solarlune/resolv"
|
||||
)
|
||||
|
||||
type WorldLineTest struct {
|
||||
Game *Game
|
||||
Space *resolv.Space
|
||||
Player *resolv.Object
|
||||
}
|
||||
|
||||
func NewWorldLineTest(game *Game) *WorldLineTest {
|
||||
w := &WorldLineTest{Game: game}
|
||||
w.Init()
|
||||
return w
|
||||
}
|
||||
|
||||
func (world *WorldLineTest) Init() {
|
||||
|
||||
gw := float64(world.Game.Width)
|
||||
gh := float64(world.Game.Height)
|
||||
|
||||
cellSize := 8
|
||||
|
||||
world.Space = resolv.NewSpace(int(gw), int(gh), cellSize, cellSize)
|
||||
|
||||
// Construct geometry
|
||||
geometry := []*resolv.Object{
|
||||
|
||||
resolv.NewObject(0, 0, 16, gh),
|
||||
resolv.NewObject(gw-16, 0, 16, gh),
|
||||
resolv.NewObject(0, 0, gw, 16),
|
||||
resolv.NewObject(0, gh-24, gw, 32),
|
||||
resolv.NewObject(0, gh-24, gw, 32),
|
||||
|
||||
resolv.NewObject(200, -160, 16, gh),
|
||||
}
|
||||
|
||||
world.Space.Add(geometry...)
|
||||
|
||||
for _, o := range world.Space.Objects() {
|
||||
o.AddTags("solid")
|
||||
}
|
||||
|
||||
world.Player = resolv.NewObject(160, 160, 16, 16)
|
||||
world.Player.AddTags("player")
|
||||
world.Space.Add(world.Player)
|
||||
|
||||
}
|
||||
|
||||
func (world *WorldLineTest) Update() {
|
||||
|
||||
dx, dy := 0.0, 0.0
|
||||
moveSpd := 2.0
|
||||
|
||||
if ebiten.IsKeyPressed(ebiten.KeyW) {
|
||||
dy = -moveSpd
|
||||
}
|
||||
|
||||
if ebiten.IsKeyPressed(ebiten.KeyS) {
|
||||
dy += moveSpd
|
||||
}
|
||||
|
||||
if ebiten.IsKeyPressed(ebiten.KeyA) {
|
||||
dx = -moveSpd
|
||||
}
|
||||
|
||||
if ebiten.IsKeyPressed(ebiten.KeyD) {
|
||||
dx += moveSpd
|
||||
}
|
||||
|
||||
if col := world.Player.Check(dx, 0, "solid"); col != nil {
|
||||
dx = col.ContactWithObject(col.Objects[0]).X()
|
||||
}
|
||||
|
||||
world.Player.X += dx
|
||||
|
||||
if col := world.Player.Check(0, dy, "solid"); col != nil {
|
||||
dy = col.ContactWithObject(col.Objects[0]).Y()
|
||||
}
|
||||
|
||||
world.Player.Y += dy
|
||||
|
||||
world.Player.Update()
|
||||
|
||||
}
|
||||
|
||||
func (world *WorldLineTest) Draw(screen *ebiten.Image) {
|
||||
|
||||
for _, o := range world.Space.Objects() {
|
||||
drawColor := color.RGBA{60, 60, 60, 255}
|
||||
if o.HasTags("player") {
|
||||
drawColor = color.RGBA{0, 255, 0, 255}
|
||||
}
|
||||
ebitenutil.DrawRect(screen, o.X, o.Y, o.W, o.H, drawColor)
|
||||
}
|
||||
|
||||
mouseX, mouseY := ebiten.CursorPosition()
|
||||
|
||||
mx, my := world.Space.WorldToSpace(float64(mouseX), float64(mouseY))
|
||||
|
||||
cx, cy := world.Player.CellPosition()
|
||||
|
||||
sightLine := world.Space.CellsInLine(cx, cy, mx, my)
|
||||
|
||||
interrupted := false
|
||||
|
||||
for i, cell := range sightLine {
|
||||
|
||||
if i == 0 { // Skip the beginning because that's the player
|
||||
continue
|
||||
}
|
||||
|
||||
drawColor := color.RGBA{255, 255, 0, 255}
|
||||
|
||||
// if interrupted {
|
||||
// drawColor = color.RGBA{0, 0, 255, 255}
|
||||
// }
|
||||
|
||||
if !interrupted && cell.ContainsTags("solid") {
|
||||
drawColor = color.RGBA{255, 0, 0, 255}
|
||||
interrupted = true
|
||||
}
|
||||
|
||||
ebitenutil.DrawRect(screen,
|
||||
float64(cell.X*world.Space.CellWidth),
|
||||
float64(cell.Y*world.Space.CellHeight),
|
||||
float64(world.Space.CellWidth),
|
||||
float64(world.Space.CellHeight),
|
||||
drawColor)
|
||||
|
||||
if interrupted {
|
||||
break
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if world.Game.Debug {
|
||||
world.Game.DebugDraw(screen, world.Space)
|
||||
}
|
||||
|
||||
if world.Game.ShowHelpText {
|
||||
|
||||
world.Game.DrawText(screen, 16, 16,
|
||||
"~ Line of sight test ~",
|
||||
"WASD keys: Move player",
|
||||
"Mouse: Hover over impassible objects",
|
||||
"to get the closest wall to the player.",
|
||||
fmt.Sprintf("Mouse X: %d, Mouse Y: %d", mouseX, mouseY),
|
||||
"Clear line of sight: "+strconv.FormatBool(!interrupted),
|
||||
"",
|
||||
"F1: Toggle Debug View",
|
||||
"F2: Show / Hide help text",
|
||||
"R: Restart world",
|
||||
"E: Next world",
|
||||
"Q: Previous world",
|
||||
fmt.Sprintf("%d FPS (frames per second)", int(ebiten.CurrentFPS())),
|
||||
fmt.Sprintf("%d TPS (ticks per second)", int(ebiten.CurrentTPS())),
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
}
|
7
frontend/assets/resources/map/simple/BackgroundMap.meta
Normal file
7
frontend/assets/resources/map/simple/BackgroundMap.meta
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"ver": "1.0.1",
|
||||
"uuid": "2f0bdedd-7215-4462-ae54-b71c054cffbe",
|
||||
"isSubpackage": false,
|
||||
"subpackageName": "",
|
||||
"subMetas": {}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 96 KiB |
@ -0,0 +1,34 @@
|
||||
{
|
||||
"ver": "2.3.3",
|
||||
"uuid": "c71de11b-4efc-4b7a-bbc7-eb926d08baf6",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"Tile_W256_H128_S01": {
|
||||
"ver": "1.0.4",
|
||||
"uuid": "b4fba8f6-ffc7-468b-9086-ec855c73388a",
|
||||
"rawTextureUuid": "c71de11b-4efc-4b7a-bbc7-eb926d08baf6",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 831,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 2048,
|
||||
"height": 386,
|
||||
"rawWidth": 2048,
|
||||
"rawHeight": 2048,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<tileset version="1.2" tiledversion="1.2.2" name="Tile_W256_H128_S01" tilewidth="256" tileheight="128" tilecount="128" columns="8">
|
||||
<image source="Tile_W256_H128_S01.png" width="2048" height="2048"/>
|
||||
</tileset>
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"ver": "2.0.0",
|
||||
"uuid": "356c1165-6c15-40fe-95d0-baf11b053ada",
|
||||
"subMetas": {}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 229 KiB |
@ -0,0 +1,34 @@
|
||||
{
|
||||
"ver": "2.3.3",
|
||||
"uuid": "ad433d85-5c88-4067-b4b7-129be0f54d57",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"Tile_W256_H256_S01": {
|
||||
"ver": "1.0.4",
|
||||
"uuid": "6c14c41c-4946-4992-b75d-8b580de43c83",
|
||||
"rawTextureUuid": "ad433d85-5c88-4067-b4b7-129be0f54d57",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 64,
|
||||
"width": 1280,
|
||||
"height": 896,
|
||||
"rawWidth": 1280,
|
||||
"rawHeight": 1024,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<tileset version="1.2" tiledversion="1.2.2" name="Tile_W256_H256_S01" tilewidth="256" tileheight="256" tilecount="20" columns="5">
|
||||
<grid orientation="isometric" width="256" height="128"/>
|
||||
<image source="Tile_W256_H256_S01.png" width="1280" height="1024"/>
|
||||
<terraintypes>
|
||||
<terrain name="grass" tile="1"/>
|
||||
<terrain name="dirt" tile="2"/>
|
||||
</terraintypes>
|
||||
<tile id="1" terrain="0,0,0,0"/>
|
||||
<tile id="2" terrain="1,1,1,1"/>
|
||||
<tile id="3" terrain="0,1,1,1"/>
|
||||
<tile id="4" terrain="1,1,0,1"/>
|
||||
<tile id="5" terrain="1,1,1,0"/>
|
||||
<tile id="6" terrain="1,0,1,1"/>
|
||||
<tile id="7" terrain="1,0,1,0"/>
|
||||
<tile id="8" terrain="0,0,1,1"/>
|
||||
<tile id="9" terrain="0,1,0,1"/>
|
||||
<tile id="11" terrain="1,1,0,0"/>
|
||||
<tile id="12" terrain="1,0,0,0"/>
|
||||
<tile id="13" terrain="0,0,1,0"/>
|
||||
<tile id="14" terrain="0,0,0,1"/>
|
||||
<tile id="15" terrain="0,1,0,0"/>
|
||||
</tileset>
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"ver": "2.0.0",
|
||||
"uuid": "e76fd642-3e97-4917-b6c7-0fc679a17644",
|
||||
"subMetas": {}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 52 KiB |
@ -0,0 +1,34 @@
|
||||
{
|
||||
"ver": "2.3.3",
|
||||
"uuid": "2a91275b-bb80-44b8-9932-0913c465e4ea",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"Tile_W256_H256_S02": {
|
||||
"ver": "1.0.4",
|
||||
"uuid": "55ca9649-0476-4fdb-9faa-3721ec0a0d5a",
|
||||
"rawTextureUuid": "2a91275b-bb80-44b8-9932-0913c465e4ea",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 19.5,
|
||||
"offsetY": 3.5,
|
||||
"trimX": 89,
|
||||
"trimY": 0,
|
||||
"width": 1409,
|
||||
"height": 251,
|
||||
"rawWidth": 1548,
|
||||
"rawHeight": 258,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<tileset version="1.2" tiledversion="1.2.3" name="Tile_W256_H256_S02" tilewidth="256" tileheight="256" tilecount="6" columns="6">
|
||||
<image source="Tile_W256_H256_S02.png" width="1548" height="258"/>
|
||||
<tile id="0">
|
||||
<objectgroup draworder="index">
|
||||
<object id="1" x="120" y="-59">
|
||||
<properties>
|
||||
<property name="boundary_type" value="LowScoreTreasure"/>
|
||||
</properties>
|
||||
<polyline points="-1,73 -104,182 -42,283 74,287 125,147"/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
</tile>
|
||||
<tile id="1">
|
||||
<objectgroup draworder="index">
|
||||
<object id="1" x="117" y="-36">
|
||||
<properties>
|
||||
<property name="boundary_type" value="HighScoreTreasure"/>
|
||||
</properties>
|
||||
<polyline points="13,41 -100,107 -101,236 19,265 119,248 123,105"/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
</tile>
|
||||
<tile id="4">
|
||||
<objectgroup draworder="index">
|
||||
<object id="2" x="135" y="-96">
|
||||
<properties>
|
||||
<property name="boundary_type" value="GuardTower"/>
|
||||
</properties>
|
||||
<polyline points="0,0 -202,72 -240,408 295,406 189,51"/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
</tile>
|
||||
</tileset>
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"ver": "2.0.0",
|
||||
"uuid": "0f6bb2a2-d39f-4055-a636-4e6dc3472a18",
|
||||
"subMetas": {}
|
||||
}
|
129
frontend/assets/resources/map/simple/BackgroundMap/map.tmx
Normal file
129
frontend/assets/resources/map/simple/BackgroundMap/map.tmx
Normal file
@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.2" tiledversion="1.2.3" orientation="isometric" renderorder="right-down" width="46" height="46" tilewidth="256" tileheight="128" infinite="0" nextlayerid="19" nextobjectid="167">
|
||||
<tileset firstgid="1" source="Tile_W256_H256_S01.tsx"/>
|
||||
<tileset firstgid="21" source="Tile_W256_H256_S02.tsx"/>
|
||||
<layer id="11" name="GroundFloor" width="46" height="46">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztmNsOAyEIRNXem97+/2urSU0MEbs2A9XIwzwtuocJLrjBORdMJpPJtIyeUZeKHhtiaJwWW9I+alfRuVh/ZWJoHJqZY2tpK/dJyPfWOxHcUvxa3Oi6eUUdmHd4sLLv0p570P6h4NbwfHRuzvMZuGuez8Bd83wWbur5LNyZ/fbRyNypz3PfUzR39uPesYZ7lmo692AqNDdyTatHo7mR88m3Po/ktj4/L3fr3jAyt+a5NG7974nN33y9SNzTJObvPD9wdYOS1D+VMgcujyOJaYmuR/bMWj1yefTMdNz5kfIceSZruffk/U9uLRn3etzoO5JxG/cq3P7H/bfu/QamEBWW
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="13" name="FirstFloor" width="46" height="46">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztmdEKwyAMRfsXjv7/h449CEWSNNFrvMoOlIHdktMsWtddl8xtHNb7NKx4nhhW7DaHRAk6eK9Lyh/5bCR+SxHyIvB6M+LpQUbevFmR1oP6ankX41wP0XjWOsaM5o3kA473Q+uTmTkRvHkzot2nmdH6mGlOSmtMpjdyjuxQb4mIN9OaYnkzs5t3uyduiXij9ygedqv3k6g3y/xE1zvruk7rEzZ36Xvs3X+vWEueZPxumMHfO5dTvOsYm7tnTaljbO4t1rNaZvcTnxHW82zuXic294gLwh21P4i6MNU96oF0H9mz9zr0+ve6tj02UruVfTOad5U7Iifi/0JtTOsrVL2y647MleU+I8+ddMwge55+AUD0Fwk=
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="14" name="PlayerStartingPos">
|
||||
<object id="104" x="1310" y="4034">
|
||||
<point/>
|
||||
</object>
|
||||
<object id="105" x="3752" y="1312">
|
||||
<point/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
<objectgroup id="15" name="Barrier">
|
||||
<properties>
|
||||
<property name="type" value="barrier_and_shelter"/>
|
||||
</properties>
|
||||
<object id="103" x="-216" y="3488">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="106" x="-168" y="3560">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="107" x="-230" y="3518">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="0,0 2552,2504 3028,2476 150,-326"/>
|
||||
</object>
|
||||
<object id="108" x="-340" y="3508">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="0,0 630,610 616,624 1194,-3762 -56,-3784"/>
|
||||
</object>
|
||||
<object id="109" x="-184" y="-136">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="0,0 4,452 6116,524 6088,-72"/>
|
||||
</object>
|
||||
<object id="110" x="1586" y="5406">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="0,0 402,582 4556,708 4516,-36 250,-106"/>
|
||||
</object>
|
||||
<object id="111" x="4958" y="-342">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="0,0 294,6626 1488,6640 1138,70"/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
<objectgroup id="16" name="LowScoreTreasure">
|
||||
<object id="144" gid="21" x="1342" y="1786" width="256" height="256"/>
|
||||
<object id="145" gid="21" x="1186" y="2158" width="256" height="256"/>
|
||||
<object id="146" gid="21" x="2714" y="3198" width="256" height="256"/>
|
||||
<object id="147" gid="21" x="2616" y="3680" width="256" height="256"/>
|
||||
<object id="148" gid="21" x="3172" y="3676" width="256" height="256"/>
|
||||
<object id="149" gid="21" x="3526" y="3498" width="256" height="256"/>
|
||||
<object id="150" gid="21" x="3834" y="3150" width="256" height="256"/>
|
||||
<object id="151" gid="21" x="2826" y="2318" width="256" height="256"/>
|
||||
<object id="152" gid="21" x="2960" y="3056" width="256" height="256"/>
|
||||
<object id="153" gid="21" x="3336" y="2752" width="256" height="256"/>
|
||||
<object id="154" gid="21" x="1730" y="2294" width="256" height="256"/>
|
||||
<object id="155" gid="21" x="1480" y="632" width="256" height="256"/>
|
||||
<object id="156" gid="21" x="1116" y="1100" width="256" height="256"/>
|
||||
<object id="157" gid="21" x="3952" y="2528" width="256" height="256"/>
|
||||
<object id="158" gid="21" x="4942" y="3562" width="256" height="256"/>
|
||||
<object id="159" gid="21" x="5032" y="2896" width="256" height="256"/>
|
||||
<object id="160" gid="21" x="2606" y="722" width="256" height="256"/>
|
||||
<object id="161" gid="21" x="3026" y="710" width="256" height="256"/>
|
||||
<object id="162" gid="21" x="1828" y="740" width="256" height="256"/>
|
||||
<object id="163" gid="21" x="1678" y="890" width="256" height="256"/>
|
||||
<object id="164" gid="21" x="1060" y="1324" width="256" height="256"/>
|
||||
<object id="165" gid="21" x="4606" y="2242" width="256" height="256"/>
|
||||
<object id="166" gid="21" x="3848" y="1936" width="256" height="256"/>
|
||||
</objectgroup>
|
||||
<objectgroup id="17" name="HighScoreTreasure">
|
||||
<object id="125" gid="22" x="1926" y="4586" width="256" height="256"/>
|
||||
<object id="126" gid="22" x="2274" y="4990" width="256" height="256"/>
|
||||
<object id="127" gid="22" x="1326" y="3410" width="256" height="256"/>
|
||||
<object id="128" gid="22" x="704" y="3696" width="256" height="256"/>
|
||||
<object id="129" gid="22" x="1520" y="2944" width="256" height="256"/>
|
||||
<object id="130" gid="22" x="886" y="3058" width="256" height="256"/>
|
||||
<object id="131" gid="22" x="3120" y="4968" width="256" height="256"/>
|
||||
<object id="132" gid="22" x="2584" y="4504" width="256" height="256"/>
|
||||
<object id="133" gid="22" x="4344" y="4472" width="256" height="256"/>
|
||||
<object id="134" gid="22" x="4504" y="4208" width="256" height="256"/>
|
||||
<object id="135" gid="22" x="3490" y="1982" width="256" height="256"/>
|
||||
<object id="136" gid="22" x="4068" y="2916" width="256" height="256"/>
|
||||
<object id="137" gid="22" x="4578" y="3150" width="256" height="256"/>
|
||||
<object id="138" gid="22" x="2326" y="762" width="256" height="256"/>
|
||||
<object id="139" gid="22" x="2276" y="1348" width="256" height="256"/>
|
||||
<object id="140" gid="22" x="3366" y="2418" width="256" height="256"/>
|
||||
<object id="141" gid="22" x="4526" y="2586" width="256" height="256"/>
|
||||
<object id="142" gid="22" x="4586" y="1174" width="256" height="256"/>
|
||||
<object id="143" gid="22" x="4126" y="666" width="256" height="256"/>
|
||||
</objectgroup>
|
||||
<objectgroup id="18" name="GuardTower">
|
||||
<object id="112" gid="25" x="904" y="3384" width="256" height="256"/>
|
||||
<object id="113" gid="25" x="1714" y="4158" width="256" height="256"/>
|
||||
<object id="114" gid="25" x="2734" y="5074" width="256" height="256"/>
|
||||
<object id="115" gid="25" x="2180" y="3324" width="256" height="256"/>
|
||||
<object id="116" gid="25" x="3108" y="4076" width="256" height="256"/>
|
||||
<object id="117" gid="25" x="4634" y="4934" width="256" height="256"/>
|
||||
<object id="118" gid="25" x="1094" y="1690" width="256" height="256"/>
|
||||
<object id="119" gid="25" x="2004" y="884" width="256" height="256"/>
|
||||
<object id="120" gid="25" x="2956" y="892" width="256" height="256"/>
|
||||
<object id="121" gid="25" x="3488" y="624" width="256" height="256"/>
|
||||
<object id="122" gid="25" x="4798" y="2626" width="256" height="256"/>
|
||||
<object id="123" gid="25" x="4842" y="4494" width="256" height="256"/>
|
||||
<object id="124" gid="25" x="4632" y="3624" width="256" height="256"/>
|
||||
</objectgroup>
|
||||
</map>
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"ver": "2.0.2",
|
||||
"uuid": "e310a2ad-1d44-41ed-858a-380474175aed",
|
||||
"subMetas": {}
|
||||
}
|
BIN
frontend/assets/resources/map/simple/Tile_W300_H300_S01.png
Normal file
BIN
frontend/assets/resources/map/simple/Tile_W300_H300_S01.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 45 KiB |
@ -0,0 +1,34 @@
|
||||
{
|
||||
"ver": "2.3.3",
|
||||
"uuid": "b6b4c575-6690-4f1d-8165-a0098509066c",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"Tile_W300_H300_S01": {
|
||||
"ver": "1.0.4",
|
||||
"uuid": "8844352b-c6ac-4f30-8c8a-83955b2241b1",
|
||||
"rawTextureUuid": "b6b4c575-6690-4f1d-8165-a0098509066c",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 4,
|
||||
"offsetY": -24.5,
|
||||
"trimX": 97,
|
||||
"trimY": 85,
|
||||
"width": 114,
|
||||
"height": 179,
|
||||
"rawWidth": 300,
|
||||
"rawHeight": 300,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
14
frontend/assets/resources/map/simple/Tile_W300_H300_S01.tsx
Normal file
14
frontend/assets/resources/map/simple/Tile_W300_H300_S01.tsx
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<tileset version="1.2" tiledversion="1.2.3" name="Tile_W300_H300_S01" tilewidth="300" tileheight="300" tilecount="1" columns="1">
|
||||
<image source="Tile_W300_H300_S01.png" width="300" height="300"/>
|
||||
<tile id="0">
|
||||
<objectgroup draworder="index">
|
||||
<object id="1" x="-27" y="-64">
|
||||
<properties>
|
||||
<property name="boundary_type" value="GuardTower"/>
|
||||
</properties>
|
||||
<polyline points="0,0 -95,179 18,407 361,434 458,168 333,-7"/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
</tile>
|
||||
</tileset>
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"ver": "2.0.0",
|
||||
"uuid": "e8f0b0b6-6274-4931-bf88-af35ca68c4cc",
|
||||
"subMetas": {}
|
||||
}
|
BIN
frontend/assets/resources/map/simple/Tile_W64_H64_S01.png
Normal file
BIN
frontend/assets/resources/map/simple/Tile_W64_H64_S01.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 45 KiB |
@ -0,0 +1,34 @@
|
||||
{
|
||||
"ver": "2.3.3",
|
||||
"uuid": "a6ef7a2f-0696-49d7-8e62-d2e495a2d032",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"Tile_W64_H64_S01": {
|
||||
"ver": "1.0.4",
|
||||
"uuid": "f6779fb1-4117-459a-a175-ff9f3abf1545",
|
||||
"rawTextureUuid": "a6ef7a2f-0696-49d7-8e62-d2e495a2d032",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"rawWidth": 256,
|
||||
"rawHeight": 256,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
24
frontend/assets/resources/map/simple/Tile_W64_H64_S01.tsx
Normal file
24
frontend/assets/resources/map/simple/Tile_W64_H64_S01.tsx
Normal file
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<tileset version="1.2" tiledversion="1.2.3" name="Tile_W64_H64_S01" tilewidth="64" tileheight="64" tilecount="16" columns="4">
|
||||
<image source="Tile_W64_H64_S01.png" width="256" height="256"/>
|
||||
<tile id="12">
|
||||
<objectgroup draworder="index">
|
||||
<object id="1" x="16" y="17">
|
||||
<properties>
|
||||
<property name="boundary_type" value="LowScoreTreasure"/>
|
||||
</properties>
|
||||
<polyline points="16,-48 88,3 26,93 -45,33"/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
</tile>
|
||||
<tile id="15">
|
||||
<objectgroup draworder="index">
|
||||
<object id="1" x="7" y="4">
|
||||
<properties>
|
||||
<property name="boundary_type" value="HighScoreTreasure"/>
|
||||
</properties>
|
||||
<polyline points="-39,-35 106,-34 106,103 -37,103"/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
</tile>
|
||||
</tileset>
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"ver": "2.0.0",
|
||||
"uuid": "04f5911f-c460-41ee-8a6c-c1fec92fdcfe",
|
||||
"subMetas": {}
|
||||
}
|
88
frontend/assets/resources/map/simple/map.tmx
Normal file
88
frontend/assets/resources/map/simple/map.tmx
Normal file
@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.2" tiledversion="1.2.3" orientation="isometric" renderorder="right-down" width="50" height="50" tilewidth="64" tileheight="64" infinite="0" nextlayerid="11" nextobjectid="214">
|
||||
<tileset firstgid="1" source="Tile_W64_H64_S01.tsx"/>
|
||||
<tileset firstgid="17" source="Tile_W300_H300_S01.tsx"/>
|
||||
<layer id="1" name="GroundFloor" width="50" height="50" locked="1">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztz0ENACAMALGR4F8zNspyjwronZm7xPlcD0sPSw9LD0sPSw9LD0sPSw9LD0sPSw9LD0sPSw9LD0sPSw9LD0sPSw9LD0sPy7bHBg/ldQwR
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="2" name="PlayerStartingPos">
|
||||
<object id="135" x="1689.33" y="1872">
|
||||
<point/>
|
||||
</object>
|
||||
<object id="137" x="2200" y="1800">
|
||||
<point/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
<layer id="3" name="FirsrtFloor" width="50" height="50">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztmd0OwiAMRheNv/P9n9eY2BtCgVJbvs6em8WauJ64wQdsW5L4cq7ULu5d6Ni/11vlu1oNkb34HNGldCDugzUETkydc0OmfF4iOhDkEtmBuK5uIAk3x7VAnxckHMnF+j2P+AzX8uaHSP97K2+26kiM5M1WHQEuC0Ry6eUZLicjufQcImS2dMDgCA7cGpKI4EBw40wkByLXw5iM5GS0rKvpx3rulvam6cfaRfr7/+DyMriXFK2LZNx6CO8lZdYFceyVujxNuvgNSGscLStduD2XWVa49PZcZvF0Gd1zmcXDRXLGp8HSxfuMz9LFe03j4eI1r1rmijzjSxIdb64rAxM=
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="4" name="Barrier">
|
||||
<properties>
|
||||
<property name="type" value="barrier_and_shelter"/>
|
||||
</properties>
|
||||
<object id="1" x="234" y="730">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="0,0 -74,78 178,330 250,258"/>
|
||||
</object>
|
||||
<object id="2" x="804" y="156">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="0,0 -74,78 178,330 250,258"/>
|
||||
</object>
|
||||
<object id="3" x="230" y="410">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="250,-258 -74,78 178,330 504,0"/>
|
||||
</object>
|
||||
<object id="4" x="2470" y="2650">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="250,-258 -74,78 178,330 504,0"/>
|
||||
</object>
|
||||
<object id="5" x="1082.23" y="1537.08">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="548.339,-547.082 -94.2284,95.4898 230.657,408.918 867.772,-230"/>
|
||||
</object>
|
||||
<object id="9" x="311.741" y="1916">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="-22,30 -93.7407,98.1818 867.593,1062 938.259,992.909"/>
|
||||
</object>
|
||||
<object id="11" x="1015.74" y="1852">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="-26,26 -93.7407,98.1818 304.26,489.333 364.259,426.909"/>
|
||||
</object>
|
||||
<object id="14" x="1975.74" y="896">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="-26,26 -93.7407,98.1818 296.26,480 362.926,414.909"/>
|
||||
</object>
|
||||
<object id="15" x="1917.74" y="1798">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="-26,26 -93.7407,98.1818 285.593,472 352.259,402.909"/>
|
||||
</object>
|
||||
<object id="213" x="1044" y="1852">
|
||||
<properties>
|
||||
<property name="boundary_type" value="barrier"/>
|
||||
</properties>
|
||||
<polyline points="511.333,246 276.926,484.848 336.26,537.333 570.926,302.909"/>
|
||||
</object>
|
||||
</objectgroup>
|
||||
</map>
|
5
frontend/assets/resources/map/simple/map.tmx.meta
Normal file
5
frontend/assets/resources/map/simple/map.tmx.meta
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"ver": "2.0.2",
|
||||
"uuid": "0fe4d0fd-d537-4440-93f7-fffda8897ab1",
|
||||
"subMetas": {}
|
||||
}
|
Loading…
Reference in New Issue
Block a user