Fixed backend tmx parsing for ortho map.

This commit is contained in:
genxium 2022-11-16 21:32:25 +08:00
parent 7e12853a73
commit 7b9172c27b
3 changed files with 21 additions and 4 deletions

View File

@ -36,7 +36,7 @@ func NewWorldColliderDisplay(game *Game, stageDiscreteW, stageDiscreteH, stageTi
virtualGridToWorldRatio := 0.1
playerDefaultSpeed := 20
minStep := (int(float64(playerDefaultSpeed)*virtualGridToWorldRatio) << 2)
playerColliderRadius := float64(24)
playerColliderRadius := float64(16)
playerColliders := make([]*resolv.Object, len(playerPosList.Eles))
space := resolv.NewSpace(int(spaceW), int(spaceH), minStep, minStep)
for i, playerPos := range playerPosList.Eles {
@ -56,7 +56,7 @@ func NewWorldColliderDisplay(game *Game, stageDiscreteW, stageDiscreteH, stageTi
world.Space = space
moveToCollide := true
moveToCollide := false
if moveToCollide {
newVx, newVy := int32(-2959), int32(-2261)
effPushback := Vec2D{X: float64(0), Y: float64(0)}

View File

@ -406,6 +406,12 @@ type TileRectilinearSize struct {
}
func (pTmxMapIns *TmxMap) continuousObjLayerVecToContinuousMapNodeVec(continuousObjLayerVec *Vec2D) Vec2D {
if "orthogonal" == pTmxMapIns.Orientation {
return Vec2D{
X: continuousObjLayerVec.X,
Y: continuousObjLayerVec.Y,
}
}
var tileRectilinearSize TileRectilinearSize
tileRectilinearSize.Width = float64(pTmxMapIns.TileWidth)
tileRectilinearSize.Height = float64(pTmxMapIns.TileHeight)
@ -428,6 +434,17 @@ func (pTmxMapIns *TmxMap) continuousObjLayerVecToContinuousMapNodeVec(continuous
}
func (pTmxMapIns *TmxMap) continuousObjLayerOffsetToContinuousMapNodePos(continuousObjLayerOffset *Vec2D) Vec2D {
if "orthogonal" == pTmxMapIns.Orientation {
layerOffset := Vec2D{
X: float64(pTmxMapIns.Width*pTmxMapIns.TileWidth) * 0.5,
Y: float64(pTmxMapIns.Height*pTmxMapIns.TileHeight) * 0.5,
}
return Vec2D{
X: continuousObjLayerOffset.X - layerOffset.X,
Y: continuousObjLayerOffset.Y - layerOffset.Y,
}
}
// "isometric" == pTmxMapIns.Orientation
layerOffset := Vec2D{
X: 0,
Y: float64(pTmxMapIns.Height*pTmxMapIns.TileHeight) * 0.5,

View File

@ -8,10 +8,10 @@
</data>
</layer>
<objectgroup id="1" name="PlayerStartingPos">
<object id="135" x="365.33" y="482">
<object id="135" x="512" y="512">
<point/>
</object>
<object id="137" x="620" y="587">
<object id="137" x="640" y="640">
<point/>
</object>
</objectgroup>