fix view port rendering to include
Some checks failed
Dynamic Branch Deploy / build-and-deploy (push) Has been cancelled
Some checks failed
Dynamic Branch Deploy / build-and-deploy (push) Has been cancelled
This commit is contained in:
@@ -401,7 +401,7 @@ func (g *Game) DrawGame(screen *ebiten.Image) {
|
||||
}
|
||||
|
||||
g.drawBackground(target, snap)
|
||||
g.RenderGround(target, g.camX/snap.viewScale)
|
||||
g.RenderGround(target, g.camX, snap.viewScale)
|
||||
g.drawTeacher(target, snap)
|
||||
g.drawWorldObjects(target, snap)
|
||||
g.drawPlayers(target, snap)
|
||||
@@ -510,7 +510,7 @@ func (g *Game) drawWorldObjects(screen *ebiten.Image, snap renderSnapshot) {
|
||||
// Debug: Boden-Collider visualisieren (GRÜN)
|
||||
if g.showDebug {
|
||||
vector.StrokeRect(screen,
|
||||
float32(-g.camX), float32(WorldToScreenYWithHeight(540, snap.canvasH)),
|
||||
float32(-g.camX*snap.viewScale), float32(WorldToScreenYWithHeight(540, snap.canvasH)),
|
||||
10000, 5000, 2, color.RGBA{0, 255, 0, 255}, false)
|
||||
}
|
||||
}
|
||||
@@ -538,7 +538,7 @@ func (g *Game) drawPlayers(screen *ebiten.Image, snap renderSnapshot) {
|
||||
ratio := float32(i+1) / float32(len(g.trail))
|
||||
alpha := uint8(ratio * 80)
|
||||
r := float32(8 * ratio)
|
||||
tx := float32(tp.X - g.camX)
|
||||
tx := float32((tp.X - g.camX) * snap.viewScale)
|
||||
ty := float32(WorldToScreenYWithHeight(tp.Y, snap.canvasH))
|
||||
vector.DrawFilledCircle(screen, tx, ty, r, color.RGBA{200, 220, 255, alpha}, false)
|
||||
}
|
||||
@@ -550,10 +550,10 @@ func (g *Game) drawPlayers(screen *ebiten.Image, snap renderSnapshot) {
|
||||
if name == "" {
|
||||
name = id
|
||||
}
|
||||
text.Draw(screen, name, basicfont.Face7x13, int(posX-g.camX), int(screenY-25), ColText)
|
||||
text.Draw(screen, name, basicfont.Face7x13, int((posX-g.camX)*snap.viewScale), int(screenY-25), ColText)
|
||||
|
||||
if g.showDebug {
|
||||
g.drawPlayerHitbox(screen, posX, screenY)
|
||||
g.drawPlayerHitbox(screen, posX, screenY, snap.viewScale)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -570,15 +570,15 @@ func (g *Game) selectPlayerSprite(onGround bool, vy float64) string {
|
||||
}
|
||||
|
||||
// drawPlayerHitbox visualisiert die Spieler-Hitbox im Debug-Modus.
|
||||
func (g *Game) drawPlayerHitbox(screen *ebiten.Image, posX, screenY float64) {
|
||||
func (g *Game) drawPlayerHitbox(screen *ebiten.Image, posX, screenY, viewScale float64) {
|
||||
def, ok := g.world.Manifest.Assets["player"]
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
hx := float32(posX + def.DrawOffX + def.Hitbox.OffsetX - g.camX)
|
||||
hx := float32((posX + def.DrawOffX + def.Hitbox.OffsetX - g.camX) * viewScale)
|
||||
hy := float32(screenY + def.DrawOffY + def.Hitbox.OffsetY)
|
||||
vector.StrokeRect(screen, hx, hy, float32(def.Hitbox.W), float32(def.Hitbox.H), 3, color.RGBA{255, 0, 0, 255}, false)
|
||||
vector.DrawFilledCircle(screen, float32(posX-g.camX), float32(screenY), 5, color.RGBA{255, 255, 0, 255}, false)
|
||||
vector.DrawFilledCircle(screen, float32((posX-g.camX)*viewScale), float32(screenY), 5, color.RGBA{255, 255, 0, 255}, false)
|
||||
}
|
||||
|
||||
// drawStatusUI zeichnet das spielzustandsabhängige UI (Countdown, Score, Spectator).
|
||||
@@ -841,7 +841,7 @@ func (g *Game) DrawAsset(screen *ebiten.Image, assetID string, worldX, worldY fl
|
||||
|
||||
canvasW, canvasH := screen.Size()
|
||||
viewScale := GetScaleFromHeight(canvasH)
|
||||
screenX := (worldX - g.camX/viewScale) * viewScale
|
||||
screenX := (worldX - g.camX) * viewScale
|
||||
|
||||
if screenX < -cullingBuffer || screenX > float64(canvasW)+cullingBuffer {
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user