• Miércoles 20 de Noviembre de 2024, 16:21

Mostrar Mensajes

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 - Amilius

Páginas: 1 ... 11 12 [13] 14 15 ... 27
301
Delphi / Re: Archivos
« en: Domingo 9 de Octubre de 2005, 22:35 »
Actualmente casi todas las máquinas tienen tarjeta de red. para una solución más efectiva podrías chequear la dirección Ethernet (dirección física) de la tarjeta de red.  ;)

Y mejor que usar un archivo es unar el registro de windows, delphi viene con funciones para ello y en lugar de guardar una clave estática podrías generar una especial camuflada que cambie siempre así sea el mismo número (una parte aleatoria que enmascara el resto, los bits aleatorios sólo los conocería tu programa)

Y para asegurarte algo más de protección puedes comprimir tu .exe con el UPX (www.sourceforge.net)

302
Pascal / Re: Vaciar Arbol Binario
« en: Domingo 9 de Octubre de 2005, 16:03 »
Cita de: "Alpha_"
No, está bien... habría que ver qué hace el ArbolVacío(), porque quizás estés con un problema ahí.. pero hasta ahora está perfecto.

Sobre pasar los punteros por valor, Pascal hace una copia del puntero en esa variable. Si hacés un Dispose(ptr), entonces esa memoria se libera, y el puntero pasa a ser nil... pero el puntero original, todavía está apuntando a una zona de memoria, que ya fue liberada, por ende, cuidado con eso.

Es preferible pasarlos siempre por referencia, de modo que siempre se trabaje con el mismo puntero... Bah, por lo menos así pienso yo.

---

Te incluyo como lo haría yo, usaría sólo un procedimiento.

Código: Text
  1. procedure VaciarArbol(var A: Arbol);
  2. begin
  3.   if A <> nil then
  4.   begin
  5.     VaciarArbol(A^.HI);
  6.     VaciarArbol(A^.HD);
  7.     Dispose(A);
  8.   end;
  9. end;
  10.  

Sólo porque pasaba.. xD
Definitivamente faltaba ese A<>nil y queda bastante elegante.

303
Delphi / Re: Division Con Decimales
« en: Domingo 9 de Octubre de 2005, 15:58 »
Puede ser lio de configuración regional. Escribe el número en el formato de configuración regional en tu edit.

304
Programación de Videojuegos / Re: Se Me Ocurrio Una "ocurrencia"
« en: Sábado 8 de Octubre de 2005, 14:29 »
Cita de: "ibito"
Pues no soy un guru en esto de programar videojuegos, y siempre que hago un "engine" de tiles, redibujo todo en pantalla, entonces, se me ocurrio algo para "mejorar" el performance, talvez asi se haga ya profesionalmente o los que saben mas no se, solo quiero ver si le ven ventajas a esto:

En vez de re-dibujar todo, solo se redibujan los 8 tiles (o 9 incluyendo el del sprite) alrededor del sprite que se mueve, si son varios pues solo los tiles de los sprites que se mueven... en caso de que algun tile sea animado pues el tile animado tambien, dejando intactos los demas tiles... no se si me di a entender... no sean muy duros con sus criticas  :ph34r:




 :P
La idea es buena, sería mejor que lo generalices a rectángulos en lugar de grupos de tiles. Si tu algoritmo principal puede dibujar la escena de tu juego limitándose al área de un rectángulo entonces podrías optimizar bastante al evitar transferencias de memoria innecesarias. En el juego de rol que hice, aunque se mueve con scroll, esta es una parte esencial tanto para evitar dibujar en vano en zonas que están tapadas por ejemplo por un menú opaco y además que garantiza control de límites: en los algoritmos que realizan transferencia de memoria ya no tengo que preocuparme si el elemento que estoy dibujando está saliendo de la zona donde puedo dibujar. Si la zona rectangular que voy a dibujar se "sale" de la zona de la pantalla (en general la zona que hay que redibujar), un algoritmo lo recorta y actualiza su posición y dimensiones:

Este código también sirve si aplicarás efecto de reflejo vertical a tus imágenes:
Código: Text
  1.  
  2. function EstaEnPantalla(var rDestino,rOrigen:Trect;const espejo:bytebool):bytebool;
  3. //  Determina si la imagen que debe ser dibujada aparece en pantalla y modifica
  4. //los rectángulos origen y destino si estos exceden las dimensiones adecuadas.
  5. begin
  6. with rDestino do
  7.  if (left&#60;Limites_Lienzo.right) and (right&#62;=Limites_Lienzo.left) and
  8.    (top&#60;Limites_Lienzo.bottom) and (bottom&#62;=Limites_Lienzo.top) then
  9.  begin
  10.    result:=true;
  11.    //Reducir el tamaño del cuadro si sale de pantalla
  12.    if espejo then
  13.    begin//caso del espejo
  14.      if right&#62;Limites_Lienzo.right then
  15.      begin
  16.        right:=Limites_Lienzo.right;
  17.        rOrigen.Left:=rOrigen.Right-right+left;
  18.      end;
  19.      if left&#60;Limites_Lienzo.left then
  20.      begin
  21.        left:=Limites_Lienzo.left;
  22.        rOrigen.right:=rOrigen.left+right-left;
  23.      end;
  24.    end
  25.    else
  26.    begin// caso normal
  27.      if right&#62;Limites_Lienzo.right then
  28.      begin
  29.        right:=Limites_Lienzo.right;
  30.        rOrigen.Right:=rOrigen.Left+right-left;
  31.      end;
  32.      if left&#60;Limites_Lienzo.left then
  33.      begin
  34.        left:=Limites_Lienzo.left;
  35.        rOrigen.Left:=rOrigen.Right-right+left;
  36.      end;
  37.    end;
  38.    if bottom&#62;Limites_Lienzo.bottom then
  39.    begin
  40.      bottom:=Limites_Lienzo.bottom;
  41.      rOrigen.Bottom:=rOrigen.top+bottom-top;
  42.    end;
  43.    if top&#60;Limites_Lienzo.top then
  44.    begin
  45.      top:=Limites_Lienzo.top;
  46.      rOrigen.top:=rOrigen.Bottom-bottom+top;
  47.    end;
  48.  end
  49.  else
  50.    result:=false;
  51. end;
  52.  
  53.  

305
Programación de Videojuegos / Re: Personajes Enemigos
« en: Sábado 8 de Octubre de 2005, 14:08 »
Cita de: "Neko-sama"
Hola a todos!!


la pregunta...

que tecnica usan o usaran para colocar los enemigos en una etapa...

o como le hacen para que aparezca el enemigo en el mismo lugar siempre...

estan tambien en un mapa de tiles??
En mi caso habilite una opción para poner "nidos" de bichos en una determinada posición con un editor de "mapas". Cada cierto tiempo van saliendo los bichos hasta llegar a cierto límite. Alguna vez sólo se quiere que aparezca uno otras veces que aparezcan unos 12.

306
Programación de Videojuegos / Re: Vesa Otra Vez
« en: Sábado 8 de Octubre de 2005, 14:06 »
Cita de: "bob esponja"
a mi la mayoria de los modos me apagan el monitor o me ponen el simbolito de "Hz?" pero algunos si andan en mi maquina, no se poeque el monitor no los soporta pero lo que hace el programa es ver que modos soporta la placa y por ahi al monitor  no le gustan.

lo que me preocupa es que lo hice siguiendo al pie de la letra la especificacion de vesa 2.0

no se si  soy yo o los monitores de ahora son muy "sensibles"
En los monitores antiguos, si mandabas información al azar a los puertos de video podías ver como tu monitor parecía televisor mal sintonizado.  :P No sólo como un mar de pixeles multicolores, sino realmente como televisor en mal estado...

307
C/C++ / Re: Forma Elegante...
« en: Viernes 7 de Octubre de 2005, 07:18 »
bueno, de abreviaciones está lleno el C...  :D puede parecer código "raro" pero es precisamente esas capacidades y facilidades que han hecho tan popular al C y sus descendientes.

308
Visual C++ / Re: Creando Un Array De Estructuras
« en: Domingo 2 de Octubre de 2005, 15:16 »
...textualmente sale:

error C2440: 'initializing' : cannot convert from 'struct Estructura' to 'int'

309
UML / Re: Duda Casos De Uso
« en: Sábado 1 de Octubre de 2005, 19:41 »
Cita de: "Alpha_"
Cita de: "Diodo"
Como dice Alpha es darle la vuelta a la misma tortilla, lo unico que consigues es verla de diferente forma, o incluso que se te queme.
Jajajajajajaj, tal cual. En mi opinión personal resulta muy repetitivo UML, pero útil para luego programar sin ambiguedades.

Para no irme demasiado del tema, diré que lo mismo pasa con los diagramas de clases... tienen 4 o 5 vistas que son lo mismo pero de distintos ángulos.
Pues siempre es mejor que sobre a que falte, siempre y cuando las "vistas" sean del mismo sistema... :P ...es decir que no se contradigan... :rolleyes:

310
Java / Re: Factorial De Un Número Grande
« en: Lunes 26 de Septiembre de 2005, 03:32 »
Busca:
"Huge BCD numbers"

311
HTML / Re: Imagen De Fondo
« en: Lunes 26 de Septiembre de 2005, 03:20 »
Cita de: "sergiotarrillo"
yo he visto que sitios hacen eso con su web, con una imagen hace que pcupen todo el ancho y alto.

Saludos :(
Pues pon los enlaces y aprenderemos como lo hicieron.  ;)
Pero estoy seguro que es algún "truco" con javascript y css.

312
C# / Re: Progressbar En Otro Formulario
« en: Lunes 26 de Septiembre de 2005, 03:13 »
Pues puse un progressbar de ese tipo y siempre aparece animado, aún sin utilizar DoEvents() por que tiene un timer. Me parece que es un timer del tipo que se desactiva cuando tu formulario pierde foco, asi que el DoEvents() no tiene efecto en ese tipo de progressBar, asi que hay que evitar de alguna forma que el timer quede desactivado.

313
Visual C++ / Re: Creando Un Array De Estructuras
« en: Domingo 25 de Septiembre de 2005, 20:13 »
Pues, como suponía, con el VC++ 6 no compila ni uno ni otro.  :P

314
C# / Re: Progressbar En Otro Formulario
« en: Domingo 25 de Septiembre de 2005, 19:58 »
En C#:

Application.DoEvents();

En Delphi:

Application.processMessages();

 :D

315
C# / Re: Download C# Express!
« en: Domingo 25 de Septiembre de 2005, 19:45 »
Pues lo baje y lo instale junto con tropocientos parches.  :P

Hasta ahora no se colgo o pasó nada "raro", está bastante bueno una gran herramienta RAD con lo mejor de Delphi, C, VBasic y Java.

P.D.

Lo único malo es que no es open source.  :P

316
HTML / Re: Imagen De Fondo
« en: Domingo 25 de Septiembre de 2005, 02:05 »
Cita de: "sergiotarrillo"
como hago para que una imagen ocupe todo el ancho y largo!


Saludos,
:D  Que sepa no existe posibilidad de "stretch", por lo menos en el estándar. Con Jscript, ASP, PHP o lo que tengas a mano puedes determinar la resolución de la pantalla del cliente y cargar uno u otro fondo.

317
C# / Re: Problematica Coma Y Punto
« en: Sábado 24 de Septiembre de 2005, 14:46 »
Eso corresponde al usuario en Configuración Regional. Lo mejor es detertar la configuración al inicio y avisar si algo no va como se desea.

318
Pascal / Re: Arreglo Donde Los Indices Son Caracteres
« en: Viernes 23 de Septiembre de 2005, 23:36 »
Usar otro arreglo de traducción:

vect=array[0..255] of byte;

vec[vect[ord('A')]]

o directamente, si no te importa tener posiciones no usadas:

vec[ord('A')]

319
Programación de Videojuegos / Re: Ocutar Archivos
« en: Viernes 23 de Septiembre de 2005, 14:50 »
Cita de: "Neko-sama"
a eso me refiero!

no ocultar propiamente tal...

sino que que no aparezca ARCHIVO.PNG o ARCHIVO.WAV

por lo mismo preguntaba...

tu me dices que es comun utilizar formatos propios... y como lo hiciste en tu juego??

no me imagino creando un nuevo formato de imagen mejor que un png...
quizas un formato donde almacene muchos archivo...     pero tampoco se me ocurre mucho como implementar algo asi...

tienes una idea de como hacer tales cosas???
para ya va mi pregunta...


y gracias por responde...
lastima que no haya mucha gente que responda...
Creas una clase a manera de stream, que pueda guardar/leer todos los archivos de tu juego en otro gigantesco, con una pequeña tabla que indica donde comienza cada archivo y como se llama. Puedes mejorarlo usando un algoritmo de compresión muy ligero y luego aplicando un nivel de encriptación de baja seguridad como un simpre xor a cada byte a partir de números pseudoaleatorios y te aseguro que a menos que sea un craker de verdad no podrá extraer tus archivos. Un lamer por definición no podría crear su propia herramienta para extraer los archivos de tu sistema personalizado, sólo de un sistema bastante extendido para el cual algún craker ya publicó una herramienta.

320
Pascal / Re: Duda Sobre Recursividad
« en: Jueves 22 de Septiembre de 2005, 20:37 »
Si funciona correctamente tiene que apilar todo lo necesario, incluyendo variables locales y parámetros. Imaginate que tengas un "for i" dentro tu recursiva que comparta la variable i entre las llamadas anidadas, ¿Verdad que no funcionaría de la forma esperada?  ;)

321
C# / Re: C# Versus Java
« en: Jueves 22 de Septiembre de 2005, 20:11 »
Cita de: "Eternal Idol"
¿Acaso Windows esta hecho en Java o .NET? ¿Acaso los juegos SERIOS que se venden en todos lados estan hechos en Java o .NET? ¿Acaso viste algun driver hecho en Java o .NET?
Esto si es hilarante, desde el punto de vista de un Ingeniero de Sistemas. Cada herramienta tiene un propósito y es adecuada para ciertos casos. Si existe Java y el .NET es por que en estos tiempos no puedes darte el lujo de hacerlo todo en ASM o incluso en C++. Si no fuera así no existiría Delphi, Visual Foxpro, Visual Basic ni otras herramientas diseñadas para satisfacer necesidades tan variadas y distintas.

Y hablando de juegos 100% diseñados para ser comerciales: ya NO se hacen desde 0 y generalmente se prefiere comprar licencias de un motor de juego 3d, un motor de juego cliente-servidor, mejor si es configurable con scripts para no tener que programar los aspectos específicos del juego, además de adquirir lo que sea necesario para tenerlo listo lo antes posible. Si desarrollas una aplicación de base de datos, a menos que sea un caso verdaderamente excepcional, no vas a construir tu propio motor de base de datos.  ;)

322
Programación de Videojuegos / Re: Juego De Rol En Línea
« en: Miércoles 21 de Septiembre de 2005, 19:18 »
Acabo de sacar la versión Beta.47. Tiene varias mejoras, especialmente para crear mapas interesantes con posibilidad de agregar palancas y mecanismos típicos de calabozos. :)

323
Pascal / Re: Un Game Loop Basico?
« en: Lunes 19 de Septiembre de 2005, 04:12 »
Cita de: "Solman"
Hola tu game loop esta bien pero no entiendo crt2?????? y tambien quisiera saber como lo optimizarias con assembler ... porque no convence mucho tu ejemplo.
JA JA JA JA  :D

El ctr original tiene el bug de desbordamiento al calcular el retardo necesario para el delay. El código del tick obviamente necesita optimización y de ser posible una forma de tener granularidad de milésimas de segundo en lugar de 58ms. Pero eso corresponde a la sección del foro para assembler  :D.

324
Pascal / Re: Un Game Loop Basico?
« en: Domingo 18 de Septiembre de 2005, 15:31 »
Ahi va un game loop verificado:  :D

Código: Text
  1.  
  2. program gameloop;
  3. uses dos,crt2;{sin bug}
  4. var
  5.   G_CONTADOR_DE_FRAMES:integer;
  6. const
  7.   {Nota: No soporta menos de 5 por granularidad de 54ms}
  8.   intervalo_entre_ticks=5;{0.05 segundos, unos 20fps}
  9.  
  10.   procedure dibujarFrame;
  11.   var
  12.   Hour, Minute, Second, Sec100: word;
  13.   begin
  14.   getTime(Hour, Minute, Second, Sec100);
  15.   writeln('­Hola mundo! ',G_CONTADOR_DE_FRAMES,' * ',hour,':',minute,':',second,'.',sec100);
  16.   inc(G_CONTADOR_DE_FRAMES);
  17.   end;
  18.  
  19.   procedure realizarBucleMaestro;
  20.  
  21.   function ticks:longint;
  22.   var
  23.     Hour, Minute, Second, Sec100: word;
  24.   begin
  25.     {granularidad: t¡picos 54ms}
  26.     {nota: optimizar con asm}
  27.     getTime(Hour, Minute, Second, Sec100);
  28.     ticks:=sec100+second*100+minute*6000+hour*360000;
  29.   end;
  30.  
  31.   var
  32.   finalizarBucle:boolean;
  33.   tiempo,tiempoAnterior:longint;
  34.   kbd:char;
  35.   begin
  36.   tiempoAnterior:=ticks;
  37.   finalizarBucle:=false;
  38.   repeat
  39.     tiempo:=ticks;
  40.     {evitando bug de media noche}
  41.     if tiempo&#60;tiempoAnterior then tiempoAnterior:=tiempo;
  42.     {control de intervalo}
  43.     if tiempo-tiempoAnterior&#62;=intervalo_entre_ticks then
  44.     begin
  45.     tiempoAnterior:=tiempo;
  46.     dibujarFrame;
  47.     end;
  48.     {procesar teclas presionadas y otros eventos}
  49.     while keypressed=true do
  50.     begin
  51.     kbd:=readkey;
  52.     case kbd of
  53.       #27:exit;
  54.     end;
  55.     end
  56.   until finalizarBucle;
  57.   end;
  58.  
  59. begin
  60.   realizarBucleMaestro;
  61. end.
  62.  
  63.  

P.D. Al hacer copy paste se perdió algo de la tabulación :P

325
ASP .NET / Re: ¿por Qué Usar Asp.net En Lugar Php O Jsp?
« en: Domingo 18 de Septiembre de 2005, 14:23 »
Cita de: "cabeza_nispero"
Cita de: "Serghio"
Usa ASP.NET si quieres aumentar tu productividad, ahora con ASP.NET 2.0, lo que antes hacias en 2 semanas lo haces en un par de horas...

ASP.NET 2.0 por si sólo no implica que aumentes tu productividad, probablemente te refieras al vs.net 2005...
Además no todas las cosas las puedes hacer con wizards (al menos para una aplicación seria)
Si todo nuestro trabajo se hiciera con wizards les aseguro que un dos por tres todos quedamos sin empleo. Esperemos que nunca sea así.  :rolleyes:

"Aplicación seria"  ¿Que es una "aplicación seria"? ¿Una aplicación comercial? ¿Una aplicación que será utilizada por empresas "serias"? ¿Una aplicación que toma más de tres meses implementarla? ¿Una aplicación que si no funciona como es debido te pueden meter preso? ¿Una aplicación que no bromea contigo  :rolleyes:  ?  Me parece una frase demasiado ambigua. Podría significar multitud de cosas y definitivamente no es de las que utilizaría. :P

Páginas: 1 ... 11 12 [13] 14 15 ... 27