M9a: stationer i flera våningar med trappor
All checks were successful
release / build-release (push) Successful in 1m34s
All checks were successful
release / build-release (push) Successful in 1m34s
- level: Point har Z; banor kan ha floors (lika stora rutnät med namn), gamla grid-banor läses som en våning; trappor U/D på samma x,y en våning upp/ner valideras parvis; Neighbors ger grannar över våningar så att Path, lösbarhet, spärregel och Unreachable fungerar; skyltar har z - sim: att kliva på en trappa flyttar spelaren till andra änden (FloorChanges); dimman är per våning och avslöjar trappans andra ände; tåg hörs/syns bara på egen våning - game: bara spelarens våning ritas (följare på andra våningar döljs), HUD och minikarta visar våningens namn, trappgrafik i genart och färg på minikartan - bana 004 Tokyo (svårighet 3, tre i sällskapet): start under mark på B1, trappa upp till 1F med perronger; generatorn gör våningar med trappor som flaskhalsar; ordboken utökad - testbotar och tools/shots förstår trappor; två våningsbilder - docs/README/wiki uppdaterade Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,8 @@
|
||||
// go run ./tools/genart
|
||||
//
|
||||
// Skriver resources/sprites/tiles.png (en remsa 16×16-rutor i ordningen
|
||||
// vägg, golv, start, perrong, spärr, automat, skylt, tågvagn, toalett, kiosk, räls) och
|
||||
// vägg, golv, start, perrong, spärr, automat, skylt, tågvagn, toalett, kiosk, räls,
|
||||
// trappa upp, trappa ner) och
|
||||
// resources/sprites/player.png (3 bildrutor × 4 riktningar: ner, upp,
|
||||
// vänster, höger; kolumn 0 = stilla, 1–2 = gå). Ritas med enkla rektanglar
|
||||
// så att allt är deterministiskt och lätt att justera.
|
||||
@@ -142,6 +143,26 @@ var tiles = []func(canvas){
|
||||
c.rect(0, 10, 16, 1, metal)
|
||||
c.rect(0, 11, 16, 1, metalDark)
|
||||
},
|
||||
func(c canvas) { // trappa upp: steg som blir ljusare uppåt + pil
|
||||
floor(c)
|
||||
for i := 0; i < 5; i++ {
|
||||
shade := uint8(90 + i*25)
|
||||
c.rect(2, 13-i*3, 12, 3, color.RGBA{shade, shade + 10, shade + 30, 255})
|
||||
}
|
||||
c.rect(7, 1, 2, 4, white) // pil upp
|
||||
c.rect(6, 2, 4, 1, white)
|
||||
c.rect(5, 3, 6, 1, white)
|
||||
},
|
||||
func(c canvas) { // trappa ner: steg som blir mörkare neråt + pil
|
||||
floor(c)
|
||||
for i := 0; i < 5; i++ {
|
||||
shade := uint8(190 - i*25)
|
||||
c.rect(2, 1+i*3, 12, 3, color.RGBA{shade, shade + 10, shade + 30, 255})
|
||||
}
|
||||
c.rect(7, 11, 2, 4, boxDark) // pil ner
|
||||
c.rect(6, 13, 4, 1, boxDark)
|
||||
c.rect(5, 12, 6, 1, boxDark)
|
||||
},
|
||||
func(c canvas) { // kiosk: randig markis och disk
|
||||
floor(c)
|
||||
c.rect(1, 1, 14, 3, awningRed)
|
||||
|
||||
Reference in New Issue
Block a user