Autor Tema: Formar escalera.

0 Usuarios y 1 Visitante están viendo este tema.

03 Marzo, 2026, 01:35 am
Leído 966 veces

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,297
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Lo que tengo:


Quiero esto:


Pero sin que se inserten piezas de más (afuera de la pantalla), no entiendo por qué en los pisos de abajo hay tantas más.

Código: [Seleccionar]
Pisos = 0;
do {
Piso = "Piso"+Pisos;
attachMovie("sDKPiso", Piso, Pisos);
setProperty (Piso, _x, Pisos*16);
setProperty (Piso, _y, 568-Pisos*18);
PartesDelPiso = 0;
PartesRequeridas = 30-Pisos;
do {
Parte = "Parte"+PartesDelPiso;
trace("Insertando "+Parte+" en "+Piso+" con depth "+PartesDelPiso);
eval(Piso).attachMovie("sDKPisoParte", Parte, PartesDelPiso);
RutaDeParte = Piso+"."+Parte;
setProperty (RutaDeParte, _x, 32*PartesDelPiso);
setProperty (RutaDeParte, _y, 0);
PartesDelPiso++;
} while (PartesDelPiso <= PartesRequeridas);
Pisos++;
} while (Pisos < 30);

La 2nda imagen la logré cambiando esto
PartesRequeridas = 30-Pisos;
por esto
PartesRequeridas = 60-Pisos;
pero eso agrega muchas piezas fuera.

¿Por qué en los pisos de abajo hay tantas más piezas? Entiendo que haya más, pues entre más arriba esté el piso menos piezas pongo, pero los pisos de abajo empiezan más en la izquierda ¿por qué terminan tanto más en la derecha?

Por las dudas explico el código aunque no es muy complicado.
Se insertan objetos vacíos llamados Pisos. Cada vez más abajo y a la derecha.
Mientras, en ellos se insertan piezas, más cantidad entre más abajo esté el piso.
Las piezas miden 32 de largo y el punto que marca su posición está en su centro.

¿Necesitan algún otro dato?

03 Marzo, 2026, 12:17 pm
Respuesta #1

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,907
  • País: es
  • Karma: +0/-0
Hola

 La cosa es cada vez que subes un piso estás moviéndote \( 16 \) (media pieza).

 Entonces creo que donde pones:

PartesRequeridas = 30-Pisos;

 debería de ser:

PartesRequeridas = 30-Floor(Pisos/2);

 Aunque así podría aparecer un cierto efecto dentado a la derecha, porque tu programa, entiendo, no dibuja "medias piezas".

 Otra opción es que desplaces la pieza compleja. Dejes PartesRequeridas = 30-Pisos, pero pongas setProperty (Piso, _x, Pisos*32);

Saludos.

03 Marzo, 2026, 02:27 pm
Respuesta #2

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,297
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Hola

 La cosa es cada vez que subes un piso estás moviéndote \( 16 \) (media pieza).

 Entonces creo que donde pones:

PartesRequeridas = 30-Pisos;

 debería de ser:

PartesRequeridas = 30-Floor(Pisos/2);
Siguiendo es muy parecido a lo que se me ocurrió probar
PartesRequeridas = 26-Pisos/2;
pero sigo sin entender por qué debo hacer eso.

Citar
Aunque así podría aparecer un cierto efecto dentado a la derecha, porque tu programa, entiendo, no dibuja "medias piezas".
Exacto, buena forma de describirlo, sucede sí, pero como está afuera de la pantalla no se ve y digamos que el problema está resuelto, pero la duda no.

Citar
Otra opción es que desplaces la pieza compleja. Dejes PartesRequeridas = 30-Pisos, pero pongas setProperty (Piso, _x, Pisos*32);
Creo que lo había probado, eso hace que los escalones sean muy largos.

03 Marzo, 2026, 06:08 pm
Respuesta #3

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,907
  • País: es
  • Karma: +0/-0
Hola

Siguiendo es muy parecido a lo que se me ocurrió probar
PartesRequeridas = 26-Pisos/2;
pero sigo sin entender por qué debo hacer eso.

 Porque si cada vez que subes un escalón quitas media pieza; el número de piezas de ese nuevo escalón no es uno menos que el anterior, sino medio menos que el anterior.

 Si pones:

PartesRequeridas = 30-Pisos;

 estás por cada piso que subes retirando una pieza, pero sólo desplazando media pieza a la derecha por esto te queda ese efecto pirámide.

Por ejemplo_

- si has subido 1 piso, utilizas 30-1=29 piezas y empiezas en la pieza 1/2=0.5 y terminas por tanto en la 29+1/2=29.5.
- si has subido 2 pisos utilizas 30-2=28 piezas y empiezas en la pieza 2/2=1 y terminas por tanto en la 28+1=29.
- si has subido 3 pisos utilizas 30-3=27 piezas y empiezas en la pieza 3/2=1.5 y terminas por tanto en la 27+1.5=28.5.
- si has subido 4 pisos utilizas 30-4=26 piezas y empiezas en la pieza 4/2=2 y terminas por tanto en la 26+2=28.
- si has subido 5 pisos utilizas 30-5=25 piezas y empiezas en la pieza 5/2=2.5 y terminas por tanto en la 25+2.5=27.5.
- si has subido 6 pisos utilizas 30-6=24 piezas y empiezas en la pieza 6/2=3 y terminas por tanto en la 24+3=27
- si has subido 7 pisos utilizas 30-7=23 piezas y empiezas en la pieza 7/2=3.5 y terminas por tanto en la 23+3.5=26.5.

 Ahí ves el efecto pirámide, cada vez empiezas más a la derecha y terminas más a la izquierda.

Saludos.

03 Marzo, 2026, 08:08 pm
Respuesta #4

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,297
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Ok, entendí bastante :aplauso: