add offline moving platform logic: implement dynamic platform detection and movement handling in offline mode
All checks were successful
Dynamic Branch Deploy / build-and-deploy (push) Successful in 1m49s
All checks were successful
Dynamic Branch Deploy / build-and-deploy (push) Successful in 1m49s
This commit is contained in:
@@ -202,21 +202,26 @@ func (g *Game) spawnOfflineChunk(atX float64) {
|
||||
chunkDef := g.world.ChunkLibrary[randomID]
|
||||
for i, obj := range chunkDef.Objects {
|
||||
asset, ok := g.world.Manifest.Assets[obj.AssetID]
|
||||
// In Solo gibt es keine MovingPlatformData, Plattformen sind statisch
|
||||
if ok && asset.Type == "moving_platform" {
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
|
||||
// Check ob es eine bewegende Plattform ist (entweder Typ oder explizite Daten)
|
||||
if obj.MovingPlatform != nil {
|
||||
mpData := obj.MovingPlatform
|
||||
p := &MovingPlatform{
|
||||
ChunkID: randomID,
|
||||
ObjectIdx: i,
|
||||
AssetID: obj.AssetID,
|
||||
StartX: atX + obj.X,
|
||||
StartY: obj.Y,
|
||||
EndX: atX + obj.X,
|
||||
EndY: obj.Y,
|
||||
Speed: 0,
|
||||
StartX: atX + mpData.StartX,
|
||||
StartY: mpData.StartY,
|
||||
EndX: atX + mpData.EndX,
|
||||
EndY: mpData.EndY,
|
||||
Speed: mpData.Speed,
|
||||
Direction: 1.0,
|
||||
IsActive: false,
|
||||
CurrentX: atX + obj.X,
|
||||
CurrentY: obj.Y,
|
||||
IsActive: true,
|
||||
CurrentX: atX + mpData.StartX,
|
||||
CurrentY: mpData.StartY,
|
||||
HitboxW: asset.Hitbox.W,
|
||||
HitboxH: asset.Hitbox.H,
|
||||
DrawOffX: asset.DrawOffX,
|
||||
@@ -225,6 +230,11 @@ func (g *Game) spawnOfflineChunk(atX float64) {
|
||||
HitboxOffY: asset.Hitbox.OffsetY,
|
||||
}
|
||||
g.offlineMovingPlatforms = append(g.offlineMovingPlatforms, p)
|
||||
} else if asset.Type == "moving_platform" || asset.Type == "platform" {
|
||||
// Statische Plattform (oder Fallback)
|
||||
// Wir fügen sie NICHT zu offlineMovingPlatforms hinzu, da sie über
|
||||
// den statischen World-Collider Check in physics.go bereits erfasst wird.
|
||||
// (Vorausgesetzt der Typ ist "platform")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user