|
12
|
Foros Generales / Dudas Generales / ¿Cómo compartir una lista de youtube?
|
en: 7 Julio 2025, 00:19 am
|
Pregunta tonta o que debería serlo pero TY me hace dar muchas vueltas para casi todo. Lo pude hacer pero no sé cómo y no puedo volver a hacerlo. Busqué info y tampoco encontré. Por ejemplo esto: https://www.youtube.com/watch?v=qla5PqXF274A mí se me ve así:  No hay opción de copiar link, obtener enlace, etc. Si entro en la lista y copio el enlace, ajá, podría ser, pero eso da un link más largo y de un video en específico, creo. Yo vi un modo de obtener un link más corto. Y lo tengo copiado en el bloc de notas, pero como YT no mostraba los videos en el orden que le dije (y tuve que buscar cómo se ordenaban, pero no se aplica) no me sirve, no sé si andará bien ese link, tuve que quitar los videos de las listas y volverlos a poner. Quejas extras: - Tampoco me dejó poner el video entero, lo tuve que cortar. Lo intenté unas 3 veces. - Siempre me pregunta si es para niños. No, no, no, NO, ¡NO! No me vuelvas a preguntar por favor. - Que si es público. Sí, la mayoría lo será, para eso es, debería haber una opción especial, cliqueable, OPCIONAL, no que me obligue a cliquear una cosa un otra. Que esté marcado como público y si lo desmarco me de otras opciones. - Votar las listas está deshabilitado por defecto @_@ Son la empresa más usada y grande del mundo ¿es tan difícil hacerlo bien?
|
|
|
13
|
Programación / Programación General / Empujado mientras se aleja más rápido que el empujador ¿por qué?
|
en: 5 Julio 2025, 10:15 am
|
Deberían agregar un ícono de confusión. Esta es la salida: Caminó a la derecha: 0.5 Caminó a la izquierda: 0 Caminó a la izquierda: -0.5 Caminó a la derecha: 0 Caminó a la derecha: 0.5 Caminó a la izquierda: 0 Caminó a la izquierda: -0.5 Mario empujado mientras caminaba a: -0.5 El EmpujeaDKMario es: 0 Distancia: 60.7 Empuje negativo, no debería ocurrir Mario empujado mientras caminaba a: -0.5 y se repite. Esos mensajes indican la velocidad pixeles por frame, conque Mario se está moviendo, y la distancia respecto a Donkey Kong, que está a su derecha, moviéndose hacia él: Mario <-DK Los mensajes de movimientos son sobre Mario. La velocidad de ambos es 0.5. Así que... voy a poner que la distancia se muestre más seguido, pero no es un error que pueda obtener a voluntad. Distancia: 57.8 Mario empujado mientras caminaba a: 0.5 El EmpujeaDKMario es: 2.93 Moving por ser empujado: -2.43 Caminó a la derecha contra gran empuje: -2.4007 Distancia: 59.75 Mario empujado mientras caminaba a: -2.4007 El EmpujeaDKMario es: -5.569051 Empuje negativo, no debería ocurrir Casi seguro que es cuando presiono izquierda justo antes de que sea empujado o en el mismo momento. No puedo explicar lo que no entiendo, pero quedan tan cerca que hay colisión, cuando Mario caminaba a la derecha, así que es empujado a la izquierda, bastante, no debería haber colisión de nuevo en ese momento, pero hay... ¿por qué? ¿Cómo lo puedo entender más? Viendo mensajes que no puse (son muchas líneas que parecen irrelevantes) veo que con 58.8 no ocurre colisión: Distancia: 59.8 Distancia: 58.8 Distancia: 57.8 Mario empujado mientras caminaba a: 0.5 ...pero en lo que puse antes dice que se detectó a 59.75, o sea, a mayor distancia sí se detectó colisión, no puede ser. Les dejo lo que me parece relevante del código, espero no resumir de más. Ah, un detalle: Cuando Mario es empujado, su velocidad tarda en normalizarse, dependiendo de si camina contra el empuje, si se queda quieto o camina a favor, pero dudo que eso sea la causa del problema, creo que es en la parte de DK. // Player: attachMovie("sDKMario", "Player", 1001); setProperty ("Player", _x, 620); setProperty ("Player", _y, 568); // Velocidad conque se está moviendo y dirección: Player.Moving = 0; DKMarioSpeed = 0.5; // IA: attachMovie("sDK", "IA", 1000); setProperty ("IA", _x, 780); setProperty ("IA", _y, 568); IA.Moving = 0; DKSpeed = 0.5; // ///////////////////////////////////////////// // ////////////////// Most /////////////////// // ///////////////////////////////////////////// // Nota: Creo que no estoy usando esto: function FrenoPorFriccion (ID, Character) { if (Math.abs(eval(ID+".Moving")) > eval(Character+"Speed")) { set(ID+".Moving", (eval(ID+".Moving")+eval(Character+"Speed")*eval(ID+".Facing"))/2); } } // ///////////////////////////////////////////// // ////////////////// Mario ////////////////// // ///////////////////////////////////////////// function WalkToRight () { // Si no está empujado a la derecha con más velocidad a la propia: if (Player.Moving < DKMarioSpeed) { // Si no está empujado a la izquierda con más velocidad a la propia: if (Player.Moving >= -DKMarioSpeed) { // Aumenta su velocidad hacia la derecha sin exceder el máximo: Player.Moving = Math.min(DKMarioSpeed, Player.Moving+DKMarioSpeed); trace("Caminó a la derecha: "+Player.Moving); } else { // Aumenta su velocidad un poco hacia la derecha sin exceder el máximo: Player.Moving = Math.min(DKMarioSpeed, (Player.Moving*99+DKMarioSpeed)/100); trace("Caminó a la derecha contra gran empuje: "+Player.Moving); } } else if (Player.Moving > DKMarioSpeed) { // Reducción de la velocidad: Player.Moving = (Player.Moving*99+DKMarioSpeed)/100; trace("Derecha con empuje: "+Player.Moving); } Player._x = Player._x+Player.Moving; } function WalkToLeft () { // Si no está empujado a la izquierda con más velocidad a la propia: if (Player.Moving > -DKMarioSpeed) { // Si no está empujado a la derecha con más velocidad a la propia: if (Player.Moving <= DKMarioSpeed) { // Aumenta su velocidad hacia la izquierda sin exceder el máximo: Player.Moving = Math.max(-DKMarioSpeed, Player.Moving-DKMarioSpeed); trace("Caminó a la izquierda: "+Player.Moving); } else { // Esto no ocurre por ahora (haber sido empujado a la derecha). } } else if (Player.Moving < -DKMarioSpeed) { // Reducción de la velocidad: Player.Moving = (Player.Moving*99-DKMarioSpeed)/100; trace("Izquierda con empuje: "+Player.Moving); } Player._x = Player._x+Player.Moving; } function Frenar () { if (Player.Moving > DKMarioSpeed) { // Si está moviéndose a la derecha más rápido de lo normal // (porque está empujado), poca reducción de la velocidad: Player.Moving = 0.99*Player.Moving; trace("Frenando naturalmente: "+Player.Moving); Player._x = Player._x+Player.Moving; } else if (Player.Moving < -DKMarioSpeed) { // Si está moviéndose a la izq más rápido de lo normal // (porque está empujado), poca reducción de la velocidad: Player.Moving = 0.99*Player.Moving; trace("Frenando naturalmente: "+Player.Moving); Player._x = Player._x+Player.Moving; } } // ///////////////////////////////////////////// // /////////////////// DK //////////////////// // ///////////////////////////////////////////// function DKVsDKMario () { Distancia = IA._x-Player._x; trace("Distancia: "+Distancia); if (Distancia > 0) { // DK está a la derecha de Mario: IA._x = IA._x-DKSpeed; if (IA.hitTest(Player)) { if (Player.Action2 == "Walking") { EmpujeaDKMario = (DKSpeed+Player.Moving)*((DKPeso-DKMarioPeso)/100); trace("Mario empujado mientras caminaba a: "+Player.Moving); trace("El EmpujeaDKMario es: "+EmpujeaDKMario); } else { EmpujeaDKMario = DKSpeed*((DKPeso-DKMarioPeso)/100); trace("Mario empujado mientras estaba quieto."); trace("EmpujeaDKMario: "+EmpujeaDKMario); } if (EmpujeaDKMario > 0) { Player.Moving = Player.Moving-EmpujeaDKMario; trace("Moving por ser empujado: "+Player.Moving); } else { trace("Empuje negativo, no debería ocurrir"); } } } else if (Distancia < 0) { // DK está a la izquierda de Mario, esto tampoco ocurre por ahora. } else { // DK está en el mismo lugar que DKMario, tampoco. } }
Resumiendo el código acá me di cuenta de que el empuje no es necesariamente negativo, lo dice el if... Puede ser 0, de hecho al inicio dice que es 0, no lo había visto. Pero en la 2nda salida es negativo. El cálculo es: EmpujeaDKMario = (DKSpeed+Player.Moving)*((DKPeso-DKMarioPeso)/100); Supongo que resulta negativo porque Player.Moving es negativo, lo cual como expliqué no sé cómo ocurre en ese momento, parece que a veces se capta una colisión a una distancia menor, pero que yo sepa el tamaño de los dibujos (animados) no varía tanto. ¿Necesitan algo más? O sea, estaba a Distancia 57.8, hubo colisión, fue empujado a la izquierda, caminó a la derecha intentando oponerse, pero estaba a distancia mayor que antes, y aún así se detectó otra colisión. ¿Acaso el caminar se está aplicando luego de que se dice la distancia, antes de terminar el frame? Digo, puede que la salida esté desordenada, chequearé eso.
|
|
|
14
|
Informática / Software / ¿Método para "reiniciar" el monitor?
|
en: 2 Julio 2025, 23:10 pm
|
A veces cuando enciendo la PC, el monitor muestra imagen y luego nada. Tengo que apagarlo y prenderlo muchas veces para que quede... un poco rojo u oscuro en un costado, pero "bien". Una forma más cómoda es abrir ZSNES, un programa de DOS parece, y hacer alt+tab cada vez que el monitor deja de mostrar imagen. Porque ir a "DOS" y volver a Windows, o viceversa, hace que el monitor se apague o algo así por un momento.
Lo dejo encendido siempre ya con la esperanza de que no dé problemas, pero estar como 5 minútos o no sé cuánto, haciendo alt+tab sin poder hacer mucho más, es como, desastrozo. No puedo mandar a arreglarlo ni conseguir otro.
Pregunto cómo podría, con un programa o test, causar el efecto de "reinicio" de monitor, o apagado y reencendido, como expliqué. Recuerdo que sucedía con los test de Direct X, posiblemente también con un emulador de Playstation y posiblemente con el cambio de tamaño del escritorio o pantalla en Windows. Imaginen que no pueden ver. Yo muevo el mouse para un costado, hago clic, apreto Z, sé que se selecciona el ZSNES que está en el escritorio, pongo un juego y empiezo a hacer alt+tab como ¿boludo? hasta que el monitor quede bien. Me gustaría algo más simple, algo que lo ponga en el monitor, lo abra así con una tecla (puedo ponerle un nombre con X por ejemplo), y que luego tenga el efecto usando sólo 1 tecla.
¿Qué se les ocurre?
Hablando con GPT me dijo algo de crear un programa que se ponga en pantalla completa. Tendría que cerrarse cuando yo le diga. Que se abra con Enter, claro, y en lo posible con Enter también se cierre, pero que el detector de Enter empiece luego de unos segundos para que no se cierre enseguida. Pero no cualquier pantalla completa sirve. Por ejemplo la de Chrome creo que no sirve, debe ser una que "reinicie" al monitor.
|
|
|
15
|
Programación / Programación General / Cuando las cartas tienen opciones.
|
en: 1 Julio 2025, 04:49 am
|
En mi proyecto de juego en Macromedia Flash 5, se le daba una carta al jugador, se le decía cual, y había una pausa hasta que presionara A. Sólo tiene 1 carta. Quisiera que cuando la carta tiene opciones (causar un efecto u otro), eso se diga al jugador y haya una pausa hasta que presione arriba, o abajo, u otra tecla según cuántas opciones sean. Parece claro que se puede hacer creando, para cada carta, una variable que marque si la carta tiene opciones o no, y poniendo un if para que dependiendo de eso ponga la pausa básica o la pausa con opciones. Mi duda es si hay una mejor forma de hacerlo porque no me gusta crear tantas variables ni usar un if cada vez que se obtiene la carta. Se me ocurre: - Cuando se obtiene, se busca el valor de una variable llamada Opciones, por ejemplo si se obtiene la carta DKMario se busca una variable llamada DKMarioOpciones. - Si no tiene valor es que no existe, no tiene opciones, hace la pausa normal. Sino, hace la pausa con opciones. Eso usa un if pero en vez de crear variables para todas las cartas, crea sólo para las que tienen opciones. El tema de las pausas también se complica un poco, yo tenía: // Frame 1: La IA recibe una carta, el humano también. // F2: Un objeto repite TurnoDeHumano hasta que se presione A. // F3: Pequeña pausa. // F4: Turno de la IA. ...ahora debería ser: // Frame 1: La IA recibe una carta, el humano también. // F2: Si la carta no tiene opciones, se inserta un objeto que genera la pausa normal. Sino otro que genera la pausa con opciones. ...el resto igual. Supongo que eso es mejor que crear un frame para la pausa normal y otro para la otra y que vaya para un frame u otro según el caso. ¿Se les ocurre algo mejor? Uno pregunta porque tiene la esperanza de hallar una respuesta, pero ahora me pregunto para qué preguntar si probablemente no entienda la respuesta: Tu razonamiento es **muy sólido** y demuestra una buena comprensión de cómo organizar lógica condicional en Flash 5, que tiene sus limitaciones. Vamos a analizar tu enfoque y ver cómo mejorarlo o refinarlo con el menor número de variables y frames posibles.
---
## 🎯 Objetivo
- Tienes cartas que pueden o no tener múltiples opciones. - Quieres pausar el juego hasta que el jugador elija una opción (una tecla). - No quieres crear una variable por cada carta. - No quieres duplicar frames innecesariamente.
---
## ✅ Lo Bueno de Tu Enfoque
Tu idea de usar una **nomenclatura dinámica** como `DKMarioOpciones` es muy buena para evitar crear estructuras repetitivas o usar `if` para cada carta. En Flash 5 (ActionScript 1.0), puedes usar esta técnica:
```actionscript var opcionesVar = this[NombreDeCarta + "Opciones"]; ```
Si `opcionesVar` es `undefined`, entonces no hay opciones.
Esto te permite tener una lista como:
```actionscript DKMarioOpciones = ["Arriba", "Abajo"]; CartaFuegoOpciones = ["Izquierda", "Derecha", "Abajo"]; ```
Y no necesitas definir ninguna variable para cartas que no tienen opciones. Perfecto.
---
## 💡 Mejora Propuesta: Usar una Sola Función y el Mismo Frame
Si quieres evitar duplicar frames o insertar objetos distintos según el tipo de carta, puedes hacer esto:
### 1. Un solo objeto/clip de pausa En el frame 2, insertas **siempre el mismo clip** llamado `PausaCarta`.
Ese clip tiene el siguiente código en su `onClipEvent(enterFrame)`:
```actionscript onClipEvent(enterFrame) { var opciones = _root[_root.NombreDeCarta + "Opciones"]; if (opciones == undefined) { // No hay opciones, esperar tecla A if (Key.isDown(Key.A)) { _root.gotoAndPlay(3); } } else { // Hay opciones, mostrar opciones y esperar tecla válida if (_root.mostrandoOpciones != true) { _root.mostrandoOpciones = true; // Mostrar texto de opciones o lo que quieras for (var i = 0; i < opciones.length; i++) { trace("Opción " + (i+1) + ": " + opciones); } }
// Aquí podrías detectar teclas según cantidad de opciones if (Key.isDown(Key.UP)) { _root.opcionElegida = 0; _root.gotoAndPlay(3); } else if (Key.isDown(Key.DOWN)) { _root.opcionElegida = 1; _root.gotoAndPlay(3); } // etc. } } ```
Este objeto es universal: maneja ambas situaciones.
Solo necesitas asegurarte de que:
- `_root.NombreDeCarta` esté definido antes de entrar al frame 2. - Los nombres de las variables opcionales sigan la convención de `NombreDeCarta + "Opciones"`.
---
### 2. Limpieza al salir del frame
En el Frame 3 podrías resetear cosas:
```actionscript mostrandoOpciones = false; opcionElegida = -1; ```
---
## 🧠 Alternativa Más Limpia (Con Objetos)
Si quieres hacer algo más estructurado, puedes usar un objeto (diccionario) para definir las opciones:
```actionscript CartasConOpciones = { "DKMario": ["Arriba", "Abajo"], "CartaFuego": ["Izquierda", "Derecha", "Abajo"] }; ```
Y luego:
```actionscript var opciones = CartasConOpciones[NombreDeCarta]; ```
Esto sigue siendo dinámico pero más organizado.
---
## ✅ Conclusión
Tu idea:
- Es válida - Es eficiente - Se puede mejorar levemente con objetos o clips genéricos
Lo que te propongo:
- Usa **un solo frame** y **un solo clip de pausa inteligente** - Usa un objeto o variables dinámicas para definir solo las cartas que tienen opciones - Evita `if` por cada carta o duplicación de clips
Esto te da un sistema **escalable**, **fácil de mantener** y muy en línea con las capacidades de Flash 5.
¿Te gustaría que te escriba el código completo del clip `PausaCarta` con la lógica completa de selección de opciones? Lo que entendí es que su "Un solo objeto/clip de pausa" implica hacer ifs a cada rato (120 por segundo creo), así que no me sirve. Me perdí en lo de diccionario. Quizá está pensando en cosas que aún no pensé.
|
|
|
16
|
Seguridad Informática / Hacking / Re: Ayuda con página
|
en: 29 Junio 2025, 20:34 pm
|
Entiendo pero ¿no pueden ignorar la página? Bloqueen a quienes envían mensajes desde ella. O sea, gente criticando a otra no es tan anormal, aunque suele ser a gente famosa.
Uds tienen su grupo, ellos el otro ¿no? Querer eliminarlo o perjudicarlo es un poco como hacer lo que ellos hacen. Ignórenlos, que les envíen mensajes es otra cosa, pero la página en sí no sé si corresponde borrarla. Por ejemplo, hay gente que critica videojuegos. ¿La empresa debería querer borrarle los videos? Si mienten puede ser, pero la gente debería darse cuenta.
Tendrían que cambiarse de sitio quizá, y poner un bloqueador de algún tipo, que reconozca patrones, ya que IP no sirve. Deben poner lo que se conoce como ghostbaned o algo así, es un ban en que los baneados ven sus mensajes pero los demás no.
Para casos como esos es que existen los moderadores.
Otra cosa no sé, en estos casos se recomienda hablar con policías.
El problema es la gente irracional, o sea, yo conocí a un par que se creían mejor que yo y por eso me criticaban, pero en general por su cuenta no hacían cosas parecía, sólo criticaban, y si ñles decías que ya que son tan inteligentes por qué no hacen algo mejor que andar criticando, bueno, cada uno tenía su excusa, pero podrías probar decirles algo así. Además hay que ver qué tipo de acoso, una cosa es insultar y otra pedir charlar un rato, por ejemplo.
|
|
|
17
|
Foros Generales / Dudas Generales / Re: Consulta sobre bloqueo de usuarios en Telegram
|
en: 27 Junio 2025, 04:01 am
|
Podrías crearte otra cuenta para averiguar ese tipo de cosas. O pedirle a algún conocido que te ayude a hacer el experimento. Luego nos cuentas.
Yo tengo una duda similar con Facebook: No sé si las sugerencias de amistad son algo que aparece automáticamente cuando visitas o visitan tu perfil o si FB detecta simitud de gustos... o si son algo enviado.
|
|
|
18
|
Foros Generales / Foro Libre / Re: Nunca pude escuchar un video de Tik Tok.
|
en: 25 Junio 2025, 21:35 pm
|
No era lo que dijiste, pero me hiciste dar cuenta cual era la falla  Tenía deshabilitado el sonido para esa página, había un ícono en la barra, se ve que deshabilité el sonido hace muuucho, ni me acordaba, por algún motivo... En cuanto al señor, yo siempre lo puse en duda, y aún, pero si la abre o descubre algo realmente revolucionario quiero saberlo. Me da rabia que no la abra, parece un chanta, estar haciendo un show. Lo de las momias tengo entendido que quien prohíbe investigarlas es algún organismo de Perú, no dejan llevárselas de ahí y no sé si dejan ir a científicos tampoco.
|
|
|
20
|
Sistemas Operativos / Windows / Re: Abrir PNG rápido con Chrome aunque esté configurado con Paint.
|
en: 24 Junio 2025, 02:27 am
|
Encontré una solución. Había probado arrastrar la imagen a la barra de inicio donde está Chrome, pero me preguntaba si quería anclarla nada más. Pero si al archivo lo arrastro hacia el ícono de nueva pestaña, lo abre. Lo del bat está bueno pero como tenía que achicar la ventana del explorador no me convenció del todo. Lo del edit lo sabía, implica abrir el menú así que es igual... Mi menú:  Imprimir no lo necesito. Ni establecer como fondo. Ni editar con Notepad++. Ni vista previa, no sé qué es. Ni girar, no sé qué hace (en un editor de imágenes sí pero en el explorador ¿?). Ni enviar por email. Y Poweriso no recuerdo bien qué es, creo que para abrir isos, creo que tampoco lo necesito ahí. Si me dicen cómo quitar esas opciones me podría servir. Y cómo reestablecerlas, por las dudas.
|
|
|
|
|
|
|