|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - JuanK
Páginas: 1 ... 142 143 [144] 145 146 ... 231
3576
« en: Viernes 18 de Febrero de 2005, 00:12 »
1- Cuando trabajamos con tiles animados. Qué es mas rápido y eficaz? Mantener en memoria un solo bitmap con todos los frames dentro para recortar cada uno de ellos durante cada ciclo del bucle que pinta el fondo? O separar cada uno de los frames en un bitmap por separado y hacer lo mismo?
Lo más eficiente para ahorrar memoria es tener todo ( en la medida de lo posible) en un solo BMP, desde que este no supere dos megas, una recomendacion es que si tus tiles son muchos los hagas en bmps agrupados.. ejemplo un bmp con cosas de agua otro con cosas de fuego otras de metal etc. 2 - Cuando se necesita pintar varios tiles animados, por ejemplo para el agua. Se utiliza una sola variable general para verificar qué frame específico van a compartir todos esos tiles? Esta variable general también es utilizada como referencia para saber en que frame están iclusive otros tiles animados?
Podria ser , todo depende de como tu lo hagas, no existe una regla que te diga como debes usar los tiles, cada cual es libre de hacer su propia implementacion. 3 - Qué utilizan ustedes para realizar las pausas durante cada ciclo del bucle general? Utilizan rest? Podria funcionar, sin embargo lo mejor seria aprender a usar las funciones del temporizador avanzadas que trae allegro. He programado una estructura llamara TileSet, cada una contiene un array con tiles separados (en respuesta a lo que preguntabas acerca de mantenerlos juntos y recortar o tenerlos ya por separado, aunque no se si será más eficiente, pero a mi me resulta más cómodo). Una alternativa muy eficiente , que yo uso, es colocar todo dentro de un solo BMP, agrupando como lo dije enteriormente, luego para poder acceder a las diferentes secciones del BMP creo un arreglo, pero no un arreglo de imagenes sino un arreglo de rectangulos, donde cada rectangulo me indica cual es la posicion y tamaño del cuadro que voy a dibujar del bmp. Un ejemplo seria mas o menos asi: while... blit(GRANBMP, x, y, reactangulo[recuadroactual]->x, rectanglo[recuadroactual]->y, rectangulo[recuadroactual]->ancho, erctangulo[]->alto); ... recuadroactual++; ...
Respecto a lo de los colores.. que les puedo decir.... Si yo fuera un genio del arte grafico o al menos tuviera talento.... usaria imagenes de 256 colores nada más... Pero... como no lo soy uso imagenes de 24 bit o en su defecto de 16 aunque lo malo de las de 16 es que los desvanecimientos o mejor los difuminados.. o como le llamen no se ven muy bien, salvo que seas un artista o que tengas talento....
3577
« en: Jueves 17 de Febrero de 2005, 23:13 »
ERES UN DESOCUPADO RADICALED!!! CUANTO HABBRIAS APRENDIDO DE LENGUAJE C EN ESA MEDIA HORA!!! PERO BUENO ESTA BUENO EL CUENTICO, PARECE UN HIBRIDO ENTRE UNA DE ESAS PROPAGANDAS QUE SALEN HOY EN DIA Y UNO DE LOS CHISTES CLASICOS.
3578
« en: Jueves 17 de Febrero de 2005, 19:47 »
en este libro:
Lenguace C para expertos Helbert Schild
Te enseñan a hacer un panit para DOS usando las interrupciones, puede no serte util si programas bajo windows, pero si usas compiladores como el DJFGPP te servira de mucho.
3579
« en: Jueves 17 de Febrero de 2005, 19:44 »
en efecto es el norton.
*Desinstala *reinicia *reinicia en modo seguro *borra archivos de programa\symantec *borra archivos comunes\symantec shared *entra al registro y borra HKLM\SOFTWARE\SYMANTEC *entra al registro y borra HKCU\SOFTWARE\SYMANTEC (si lo hay) *revisa tu perfil (en documents and settings) y busca si hay carpetas de symantec por ahi, de ser asi borralas --------------------- *reinicia *reinstala *reinicia
si no te funciona bajate de internet un RegCleaner y el adware, instalalos y ponlos a hacer lo que a cada uno le corresponde justo despues de la raya que coloque arriba, luego termina los demas pasos... sino, borra tu perfil y vuelvelo a crear desde 0.
3580
« en: Jueves 17 de Febrero de 2005, 17:16 »
Hola, si quieres ver un paint entra por: -Barra de inicio -ejecutar -en el recuadro blanco escribes mspaint -presionas aceptar Listo ahi puedes ver un paint hecho en C++ y funcionando
3581
« en: Jueves 17 de Febrero de 2005, 02:28 »
voy a buscar un API que me permita hacer una interrupción al teclado, Lamentablementa a travez de C# no lo puedes hacer, de ehcho con ningun lenguaje lo puedes hacer si estas en versoines de Windows ba<sadas en win32, solo puedes hacer eso en sistemas derivados del DOS, ya que los niveles de proteccion del sistema operativo no permiten cceder hoy dia a ese tipo de recursos... pues para ello esta la API, para ocultar la complejidad del hardware y de las capas bajas del sistema operativo, en todo caso si encuentras algo me cuentas, aunque no creo que encuentres nada. sabes que algun sitio donde pueda investigar las API's?? NO, pero lo que pasa es que hablar de una API a mi manera de verlo es algo como medio 'abastracto' ya que una APi no es más que una libreria comun y corriente, pero se supone que hace muchisimas cosas y hace ver faciles las cosas dificiles. o donde puedo encontrar todos los métodos de kernel32.dll ?
En la pagina de msdn pero debes buscar como acceso a la pai de windows o platform SDK, generalmente ese tipo de infromacion se encuentra en las ayudas de las librerias.
3582
« en: Miércoles 16 de Febrero de 2005, 22:33 »
si asi es.
3583
« en: Miércoles 16 de Febrero de 2005, 22:13 »
para obtener el ultimo registro que cumple la condicion es necesario ordenar la consulta en orden descendente (de ultimo a primero) y decri que solo nos traiga el primer registro que resulte de dicha consulta.
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]SELECT[/color] ROWNUM NUM, tab_CODIGO, tab_NOMBRE, tab_DESCRIPCION FROM tabla WHERE tab_CODIGO >= 200 AND tab_CODIGO <300 and rownum=1 ORDER BY tab_CODIGO DESC <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
3584
« en: Miércoles 16 de Febrero de 2005, 21:46 »
Umm bueno me suena mucho.. pero la verdad prefiriria que fueras un poco mas claro porque no mejor sintetisas lo mas imporatnte de lo que necesitas a ver si te entiendo mejor.
3585
« en: Martes 15 de Febrero de 2005, 03:48 »
Si quieren tener su windows 10 veces más rápido solo tienen que crear estas carpetas las cuales el sistema asumira automaticamente como extra-swap y descargara alli gran parte de los porcesos cargados en memoria... el problema es poder crear las dichosas carpetas... estos son los nombres que deben tener: com1 com2 com3 com4 con lpt1 lpt2 lpt3 lpt4 Suerte con la tarea.
3586
« en: Martes 15 de Febrero de 2005, 03:42 »
Podrias ser un poco más eswpecifico... entiendo la idea , pero entre más datos nos des mejor.
3587
« en: Martes 15 de Febrero de 2005, 03:19 »
Si, ya me estoy acostumbrando a que muchas de las cosas que se pueden hacer por el codigo para que este produsca resultados más eficientes en procesos críticos casi en un99% son una mala practica de programación... Ya hemos visto como el codigo estructurado(y POO) produce grandes cuellos de botella en segmentos de codigo que si fueran programados en 'spagetti' a punta de goto's y enoooooooooooooooooooooooooooomes bucles serian muchisimo más rápido, el tener segmentos de codigo reutilizable es uno de nuestros grandes retrazos en cuenato a rendimiento en un programa, pero sin lugar a dudas es un avance gigantesco en cunto a la legibilidad del codigo y el ahgorro de tiempo en nuevos desarrollos. Por otro lado en las maquinas de hoy en dia esos tiempos son casi que despreciables y solo se consideran importantes en cosas como por ejemplo crear un manejador de procesos, de memoria o de dispositivos para un sistema operativo o crear segmentos de codigo para trabajos multimedia a bajo nivel (codificacion y decodificacion de archivos (mp3, mpeg, divx... etc), filtros , convolulcion de imagenes etc.) En fin, si yo creara un sistema operativo seguramente que si llegaria a usar el goto algunas veces por razones de mision critica asi mismo usaría segmentos de codigo repetido para evitar los tiempos que implican los cambios de contexto etc etc , pero en el 99.9999999% de los casos no lo usaria.
3588
« en: Sábado 12 de Febrero de 2005, 15:55 »
ummmm, demsiado complicado... taradaras un buen tiempo... puedes hacerlo usando el DDK o la API.
Pero en tu lugar usaria algo como DirectX.DirectInput
3589
« en: Sábado 12 de Febrero de 2005, 15:45 »
umm no se ocn presicion pero deberias crear un aplicativo ue trabaje a manbera d servicio y este debe pcnusltar el equipo remoto y enviar los datos al equipo desde el cual estas consultando.
Ahora windows trae formas de hacer eso en el administrador de dispositivos por lo cual intuyo que ese tipo de cosas se puede hacer desde la API.
3590
« en: Sábado 12 de Febrero de 2005, 15:43 »
Lo ideal sera que enmascararas las dll... es decir haces unas clases que invoquen cada una lo que se necesite de cada dll en un momento de terminado pero las clases que creas pueden ser: namespace Dlls { public class dllPDA { [DllImport]...dll.TraerAlgo(...); public void TraerAlgo() { dll.TraerAlgo(); ... ... } } public class dllPC { [DllImport]...dll.TraerAlgo(...); public void TraerAlgo() { dll.TraerAlgo(); ... ... } } }
3591
« en: Sábado 12 de Febrero de 2005, 15:35 »
Opino lo mismo, usar goto es anti profesional en los tiempos modernos, mejor usa un while o un for o un do-while.
3592
« en: Sábado 12 de Febrero de 2005, 15:30 »
Eso lo puedes lograr invocando rutinas de la API de windows, en el ejemplo que te he colocado puedes ver como usar la API desde C# (aunque algunas cosas obviamente no estan alli... tendras que preguntar sino lo logras hacer) con estos ajemplos ya puedes hacerte una idea y utilizar la api para lo que quieres realizar...
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1--> using System; using System.Runtime.InteropServices;
namespace Engine_Estados { public class Entrada_class { #region Llamado a funciones de la API
[DllImport("kernel32", SetLastError=true)] static extern IntPtr GetStdHandle(IntPtr whichHandle); [DllImport("kernel32", SetLastError=true)] static extern bool GetConsoleMode(IntPtr handle, out uint mode); [DllImport("kernel32", SetLastError=true)] static extern bool SetConsoleMode(IntPtr handle, uint mode);
#endregion
#region Variables para manejo de la API
static readonly IntPtr STD_INPUT_HANDLE = new IntPtr(-10); private IntPtr hConsoleHandle; const uint ENABLE_LINE_INPUT = 2; const uint ENABLE_ECHO_INPUT = 4; uint modo, nmodo; #endregion
public Entrada_class() { hConsoleHandle = GetStdHandle(STD_INPUT_HANDLE); GetConsoleMode(hConsoleHandle, out modo); nmodo = modo & ~(ENABLE_LINE_INPUT |ENABLE_ECHO_INPUT); SetConsoleMode(hConsoleHandle, nmodo); }
~Entrada_class() { SetConsoleMode(hConsoleHandle, modo); } public int Leer() { return Console.Read(); } public void Leer(char car) { while(Console.Read() != car); }
public int Leer(bool modoNormal) { int ret; if(modoNormal) { SetConsoleMode(hConsoleHandle, modo); ret = Console.Read(); SetConsoleMode(hConsoleHandle, nmodo); } else ret = Console.Read(); return ret; } } } <!--xc2--></td></tr></table><div class='postcolor'><!--exc2--> Ahora si yo fuera tu usaria mejor alguna libreia como DirectX, especificamente DirectInput para poder hacerlo más facilmente y porque ademas incorporan muchas otras funcionalidades que te pueden ser de utilidad.
3593
« en: Jueves 10 de Febrero de 2005, 03:50 »
no entendi
3594
« en: Lunes 7 de Febrero de 2005, 01:56 »
claro 1- has tu proia libreria accediendo a la api de windows 2- Usa un emulador ( como el djgpp) y crealas usando assembler 3- Usa directX 4- Usa allegro 5- Usa cualquiera
3595
« en: Lunes 7 de Febrero de 2005, 01:53 »
Es mentira, de hecho su filosofi es precisamente generar codigo corto... lo que pasa es que sino s eutiliza adecuadamente puede llegar a ocasionar un stack overflow, lo cual es tan solo que no queda espacio en la pila para seguir almacenando contextos y direccionamientos.
3596
« en: Viernes 4 de Febrero de 2005, 17:58 »
con fopen fread fwrite
Pero hay cosas que no se pueden quitar aunque quieras como por ejemplo los flags que usa el sistema operativo para saber si es nu archivo o un directorio-
Lo que tu dices no tiene porblema pero tampoco tiene sentido..
Por ejemplo para que le qutarias los headers a nu bmp file.... simplemente el archivo no se podria leer de ninguna manera.
3597
« en: Viernes 4 de Febrero de 2005, 04:47 »
pues si solo quieren compartir archivos porque no montan cada uno un servidor de ftp? es mas facil no? y ademas viene con el IIS que traen los windows-
3598
« en: Jueves 3 de Febrero de 2005, 15:55 »
ejemplo 1:
strcat(cadena,"S");
ejemplo2
cadena[ultimo_car+1]='S';
Por supuesto en el segundo caso debes estar seguro de que tienes memoria reservada para alvergar el siguiente caracter.
3599
« en: Jueves 3 de Febrero de 2005, 15:45 »
No, Me refiero a que envies el contenido del formulario al servicio a traves de un parámetro , de tal manera que cuando el servicio cargue la pagina asigne el valor del parametro recibido al campo html .
Páginas: 1 ... 142 143 [144] 145 146 ... 231
|
|
|