|
91
|
Programación / Programación General / Re: ¿Cómo crear una función a la que se le de un parámetro y usarlo?
|
en: 16 Agosto 2024, 02:07 am
|
Tanto Eval, Set y demás instrucciones están por compatibilidad a versiones anteriores a Flash 5 donde no se podían usar Arrays y el acceso a las propiedades y métodos de los objetos era medio rara. Convendría evitarlas en Flash 5 y posteriores salvo que de verdad sea necesario. function FaceRight () { if (Player.Facing == -1) { Player.Facing = 1; Player._xscale = 100; } } function FaceLeft () { if (Player.Facing == 1) { Player.Facing = -1; Player._xscale = -100; } }
Tienes el Objeto Player y sus Propiedades Facing y _xscale Como función sería: function FaceRight (Character) { if (Character.Facing == -1) { Character.Facing = 1; Character._xscale = 100; } } function FaceLeft (Character) { if (Character.Facing == 1) { Character.Facing = -1; Character._xscale = -100; } }
Para llamar a esas funciones solo tienes que pasarle el Objeto que tenga esas Propiedades, por ejemplo Player según entiendo tu código FaceLeft(Player)
- Llamas a la función FaceLeft y le pasas una variable de tipo Objeto que es Player, luego la función toma esa variable pero para ella se llamará Character y trabajará con ella sin ningún problema siempre y cuando dicha variable sea un objeto que tenga las Propiedades esperadas También podrías añadir un Método al Objeto Player para que sea innato de la clase/objeto/prototipo para poder hacer algo como: Player.FaceRight() pero todo esto va a depender de como estés trabajando, supongo que agregaste la Propiedad Facing de manera similar. Los Objetos pueden tener Propiedades (variables) y Métodos (funciones) que obviamente están ligadas y son parte del Objeto, se acceden a ellas por objeto.variable o objeto.funcion()
|
|
|
92
|
Sistemas Operativos / Windows / Re: ¿Algo que abra una carpeta y además un archivo?
|
en: 15 Agosto 2024, 18:00 pm
|
Entiendo que quieres:
* Un acceso directo que abra una carpeta y luego un archivo en esa carpeta * El archivo debe estar maximizado y debe tener el foco (debe abrirse después de la carpeta)
Si tienes una carpeta C:\Dibujante completo y dentro el archivo Dibujante completo.txt modifica tu acceso directo así:
Destino: cmd /c start . & timeout /t 0 & start "" /max "Dibujante completo.txt"
Iniciar en: C:\Dibujante completo
- He reemplazado start explorer . por start . porque vi que funciona igual
- He agregado timeout /t 0 que lo que hace es esperar 0 segundos antes de lanzar el siguiente comando, probé con 0 y me funciona, pero si aún te sigue abriendo el bloc de notas antes que la carpeta puedes poner 1 o 2
- Para iniciar una aplicación maximizada mediante start se usa /max, al usar parámetros adicionales para start es bueno colocar las "" (título de ventana vació opcional) para evitar bugs: start "" /max "Dibujante completo.txt"
- Como siempre, se usa & para encadenar comandos y ejecutarlos uno a uno
|
|
|
93
|
Sistemas Operativos / Windows / Re: ¿Algo que abra una carpeta y además un archivo?
|
en: 12 Agosto 2024, 19:29 pm
|
Puedes editar un acceso directo para que haga lo que quieres, al menos si es tan sencillo como lo que pides: Un acceso directo que abra una carpeta y un archivo dentro de esa carpeta Primero crear un acceso directo a tu carpeta, para mi ejemplo se llamará: Nueva carpeta - Puedes usar cualquier técnica para crear tu acceso directo, supongo que de los más fáciles son darle a copiar la carpeta (click derecho > copiar, o Ctrl + C), luego pegar en el lugar deseado como acceso directo (click derecho > pegar acceso directo) El segundo paso es editar el acceso directo, basta con darle click derecho > Propiedades al acceso directo, ahí hay tres campos importantes para tu caso: 1. Destino: Es lo que tiene que abrir el acceso directo, como quieres que abra una carpeta y un archivo dentro de esa carpeta puedes llamar comandos, una cmd siempre es útil: cmd /c start explorer . & start foto.jpg- Lo que hace lo anterior es abrir una cmd, con /c le dices que al terminar su trabajo se cierro automáticamente - start es un comando que sirve para abrir cosas, en este caso abriremos un explorador de archivos (explorer) que abra la carpeta actual (.): start explorer .- & sirve para ejecutar otro comando luego de ejecutar el primero, el comando a ejecutar es de nuevo un start pero esta vez llamamos a abrir una imagen: & start foto.jpg2. Iniciar en: Aquí va la dirección de la carpeta que se tomará como base, tendrá que ir la ruta de la carpeta para que al intentar hacer start foto.jpg entienda que esa foto está en esa carpeta. Con cmd y explorer no hay problema porque esos programas están en el Path de Windows y están siempre disponibles desde cualquier lugar.  Ahora dale a Aceptar y ya está. Nota: Luego de dar aceptar y volver a revisar las propiedades del acceso directo verás que se cambió lo que escribiste en Iniciar en a: C:\Windows\System32\cmd.exe /c start explorer . & start foto.jpg- Es normal porque se está resolviendo la ruta completa de cmd y su extensión, también lo podrías haber puesto completo pero como vez no es necesario y el sistema lo entiende y resuelve. - También es posible que se agregen comillas cuando la ruta o nombres de archivo contienen espacios, esto si que deberías tenerlo en cuenta y manualmente ponerlos para evitar problemas - Ah! y la última cosa es el icono, con darle al botón cambiar icono puedes darle otro pero eso ya es de gustos y oara nada debería afectar la funcionalidad del acceso directo
|
|
|
94
|
Sistemas Operativos / Windows / Re: Hacer ícono con transparencia en W7 ¿qué estoy haciendo mal?
|
en: 11 Agosto 2024, 16:09 pm
|
Algo curioso es que el archivo ícono, en el explorador, no se actualiza por más que ponga actualizar o reabra la carpeta, aunque el acceso directo que lo usa sí, ya me había pasado con otro ícono que hice (sin transp), se actualiza luego de reiniciar la PC.
Eso es porque el Explorador de Windows crea una caché de iconos que utiliza para agilizar la presentación de miniaturas, vistas previas y vistas en mosaico donde se visualizan los iconos de los programas y demás. Solución 1: Cambiarle en nombre al archivo al que se le cambió el icono para que piense que es uno nuevo y no use la caché, obviamente es una solución rápida pero no eficiente Solución 2: Usar un navegador de archivos de terceros, por ejemplo WinRAR es muy útil para navegar entre archivos, ver ocultos, ver los iconos correctos porque no usa la cache de Windows, sino que lee el icono directamente del archivo. También es una solución rápida pero todo sigue igual para Windows. Solución 3: Eliminar la caché de iconos y reiniciar el explorer, esta si es una solución real pero más laboriosa. a) El archivo a eliminar es: %LocalAppData%\IconCache.db, ese archivo está oculto por lo que se tendrá que activar la vista de archivos ocultos. b) Reiniciar el proceso Explorer.exe, se puede utilizar el Administrador de Tareas, seleccionar el proceso Explorador de Windows, darle click derecho > Reiniciar, o hacer cualquier cosa que reinicie el explorer como cerrar sesión, reiniciar el PC, etc Para resumirlo en un solo comando sencillo se puede abrir una CMD y ejecutar lo siguiente: Del /A %LocalAppData%\IconCache.db && TsKill explorer - A partir de ese momento bastaría con darle a click derecho > actualizar, al escritorio para ver los nuevos cambios, al menos hasta reiniciar el PC Nota: la cache de iconos (IconCache.db) se vuelve a crear automáticamente al reiniciar el PC, es decir, otra solución es reiniciar el PC
|
|
|
95
|
Sistemas Operativos / Windows / Re: Hacer ícono con transparencia en W7 ¿qué estoy haciendo mal?
|
en: 10 Agosto 2024, 16:42 pm
|
Tengo el dibujo en Flash, mide 32x32 px.
Lo publico como png y gif.
Si les cambio la extensión a ico, no se reconocen como tales, dice que no hay ícono ahí.
Abro el png con paint y lo guardo como bmp. Luego lo cambio a ico, funciona pero no es transparente.
Abro el png con paint y lo guardo como gif. Luego lo cambio a ico, no funciona.
Tal vez hago algo distinto pero es lo que recuerdo y no volveré a probar por ahora porque el frío me está congelando las manos.
Es que cambiar la extensión del archivo no hace que se convierta a otro, si haces eso vas a depender completamente del programa que va a abrir o importar ese archivo, si por ejemplo ese programa soporta png y los reconoce examinando la estructura interna del png, no importa que le pases un .fla si en realidad el archivo es un PNG. Lo correcto es exportar tu icono como .ico nativo, tengo entendido de que tienes IrfanView, pues con él puedes abrir tu PNG con transparencia y guardarlo como .ico con transparencia  Otras opciones son Gimp, InkScape, Photoshop, etc, o utilizar aplicaciones OnLine como las que menciona Songoku, acá también tienes ese editor/conversor de iconos OnLine: https://www.xiconeditor.com/
|
|
|
96
|
Sistemas Operativos / Windows / Re: Disco Rígido al 95%
|
en: 9 Agosto 2024, 16:09 pm
|
Ah, pero que raro que se te escape algo como eso, lo primero sería revisar el tamaño de las particiones y el espacio ocupado ocupado/libre, basta con darle click derecho > propiedades a la partición y ver si todo está bien por ahí, no vaya a ser que tengas particiones ocultas o sin asignar, al final todas las particiones deberían de sumar 160GB o lo más parecido. Si lo anterior está bien te queda analizar el espacio ocupado, aunque es cierto que puedes dar click derecho > propiedades a cada carpeta para ver su tamaño, puede ser laborioso, hay una herramienta de la vieja escuela llamada WinDirStat que analiza el espacio ocupado de todas las particiones de forma muy visual e intuitiva, con esta herramienta puedes ver de forma gráfica en cuadritos de colores los archivos más pesados, mientras más grandes los cuadros más pesado el archivo. WinDirStat v1.1.2.80 Portable: https://mega.nz/file/gkQDlRhK#0IF21k29EoYNkquiAMa7lgH9OUuN2y24SIsi8hH_r-YGeneralmente el problema viene por tener espacio no asignado en las particiones, o archivos muy pesados escondidos por algún sitio, pueden ser backups, videos, hibernación, paginación, etc Cualquier cosa que no entiendas bien tómale una captura de pantalla y súbelo para verlo y explicarte, puedes usar https://postimg.cc/ para subir y compartir tus imágenes, no vaya a ser que borres algo que no debes, como archivos del sistema o copias de seguridad que puedas necesitar.
|
|
|
97
|
Seguridad Informática / Hacking / Re: Ejecutable con clave temporal
|
en: 6 Agosto 2024, 22:04 pm
|
Depende mucho del programa, el método y grado de protección que tenga, los hay muy sencillos y basta con retrasar la fecha/hora del sistema o utilizar el programa que recomendó Mr Byte. Si no funciona puede que use internet para hacer la comprobación, o tenga una "huella" en el sistema, como el registro de windows o algún archivo.
|
|
|
98
|
Sistemas Operativos / Windows / Re: Disco Rígido al 95%
|
en: 6 Agosto 2024, 21:57 pm
|
1. Revisa en tu Administrador de Tareas > Tareas: que aplicación está consumiendo tanto Disco
2. Si no hay ninguna aplicación a la que se le pueda culpar revisa en tu Administrador de Tareas > Rendimiento > Disco: las velocidades de escritura y lectura, si no hay escritura/lectura y el Disco tiene alta Actividad implica que tiene problemas de lectura/escritura ese Disco
3. En todo caso recomiendo cambiar ese HDD por un SSD, siempre puedes revisar la salud de tu Disco con algún programa conocido como Crystal Disk Info o Victoria, yo pienso que ya está muy desgastado y requiere cambio
|
|
|
99
|
Programación / Programación C/C++ / Re: alguien me puede decir en que falla
|
en: 5 Agosto 2024, 21:32 pm
|
Hola, nunca uses letras con acentos en los nombres de variables, funciones o clases porque son considerados caracteres especiales y no son nada recomendable usarlos y seguramente te darán problemas.
En éste caso debes reemplazar la variable de nombre año por anio que es lo más similar e incluso también suena igual al pronunciar la palabra.
Ohh vaya si que es cierto, el foro te cambia la palabra anio por año, entonces en tu código podes haber usado anio y el corrector del foro la cambió.
Saludos
PD: Si se preguntan cómo he logrado que el corrector no modifique la palabra, pueden citar mi post y verán como lo hice.
Lo raro es que CLion no se hace problemas y compila/ejecuta tranquilamente variables con ñ XD. Le echaré un ojo al corrector, no veo que esté mal si ignora lo que sea código o geshi, pero si lo hace mejor lo deshabilito --- Sí lo reemplaza sin importar donde se ponga, mmm... considerando de que anio se usa más a propósito y que el reemplazo se hace siempre mejor "deshabilito" esa regla. Salvo que la gente empiece a abusar de su uso indebido no debería haber problemas XD
|
|
|
100
|
Programación / Programación C/C++ / Re: alguien me puede decir en que falla
|
en: 5 Agosto 2024, 16:26 pm
|
Si estás usando un IDE decente como CLion te debería mandar la alerta en la línea 44: Expression of type 'Lista**' is implicitly converted to incompatible pointer type 'Lista*'#include <stdio.h> #include <stdlib.h> #define N 20 struct Fecha { int dia, mes, anio; }; struct Lista { int tam; //Cantidad de valores del array siguiente struct Fecha vectorFechas[N]; // Array de fechas }; void rellenar_lista(struct Lista *l); void escribir_lista(struct Lista l); int insertar(struct Lista *l,struct Fecha f); int main() { struct Lista l; l.tam=0; rellenar_lista(&l); escribir_lista(l); return 0; } int insertar(struct Lista *l,struct Fecha f){ int insertado=1; if(l->tam<N){ l->vectorFechas[l->tam].dia=f.dia; l->vectorFechas[l->tam].mes=f.mes; l->vectorFechas[l->tam].anio=f.anio; l->tam++; }else{insertado=0;} return insertado; } void rellenar_lista(struct Lista *l){ int acabar=0; struct Fecha f; printf("Introduce fechas, 0 0 0 para acabar."); do{ printf("\nIntroduce dia, mes y anio: "); scanf("%d %d %d",&f. dia,&f. mes,&f. anio); if(f.dia==0 && f.mes==0 && f.anio==0){ acabar=1; } else{ insertar(&l,f); } }while(!acabar); } void escribir_lista(struct Lista l){ int i; if(l.tam!=0){ for(i=0;i<l.tam;i++){ printf("\n\t%02d/%02d/%d",l. vectorFechas[i ]. dia,l. vectorFechas[i ]. mes,l. vectorFechas[i ]. anio); } }else{printf("\nLista vacia");} }
Si analizas: void rellenar_lista(struct Lista *l){ int acabar=0; struct Fecha f; printf("Introduce fechas, 0 0 0 para acabar."); do{ printf("\nIntroduce dia, mes y anio: "); scanf("%d %d %d",&f. dia,&f. mes,&f. anio); if(f.dia==0 && f.mes==0 && f.anio==0){ acabar=1; } else{ insertar(&l,f); } }while(!acabar); }
Ves que esta función recibe como parámetro una estructura como puntero, luego en su línea 12 llamas a la función/procedimiento: insertar quien recibe como parámetros un puntero a una estructura y una estructura: int insertar(struct Lista *l,struct Fecha f){Es detalle es que l en la función/procedimiento rellenar_lista ya es un puntero y a insertar le estarías enviando el puntero del puntero de lSolución: Reemplaza tu línea 44 a: insertar(l,f);
Porque l ya es un puntero y es lo que necesita esa función, y f es una estructura tal cual requiere también esa función
|
|
|
|
|
|
|