• Martes 30 de Noviembre de 2021, 04:16

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.


Temas - Ruben3d

Páginas: [1] 2
1
GNU/Linux / Sombras Y Transparencias En Kde
« en: Lunes 14 de Febrero de 2005, 21:52 »
Hola a todos.

Tengo un artículo sobre cómo hacer que KDE tenga sombras y efectos de transición al estilo Mac OS X, para el que tenga las x.org 6.8.x. Espero que a alguien le sirva de ayuda:
KDE con sombras

Un saludo.

Ruben3d

2
Sobre los Foros de SoloCodigo / ¿por Qué Está En El Perfil Integrity Messenger?
« en: Martes 7 de Septiembre de 2004, 19:38 »
Hola.

Me he fijado en que entre los distintos clientes de mensajería instantánea del perfil de usuario está Integrity Messenger. ¿Es necesario? Según la web, es un cliente multiprotocolo, así que sería lo mismo poner tus identidades de MSN, ICQ, etc. Además, ¿alguien lo utiliza?

Por otro lado, creo que debería aparecer Jabber. Se trata de un protocolo abierto, no manejado por ninguna compañía, y ofrece servicios bastante interesantes. Además, permite configurar pasarelas para hablar con gente de otros protocolos (MSN, Yahoo, etc). Yo particularmente me he creado una cuenta en el servidor jabber.org y uso como cliente Gaim (que me permite conectar con todas las cuentas de diferentes protocolos simultáneamente).

Bueno, eso es todo :P

Un saludo.

Ruben3d

PD: Web de Jabber en español:
JabberES | Mensajería Instantánea Libre

3
La taberna del BIT / F3ll0wsh1p Of Teh R1ng
« en: Sábado 24 de Julio de 2004, 01:29 »
Hola.

Hace algún tiempo me encontré este texto en un foro en inglés (no recuerdo dónde). Se trata de la primera película del Señor de los Anillos narrada como si fuera una partida multijugador. Me reí bastante, pero eso ya depende del sentido del humor y los gustos de cada uno :lol: . Bueno, aqui lo dejo.

Citar
[At Bilbo's 111th Birthday]
Merry: "Omg, I pwn"
Pippin: "Sif, I pwn"
**Rocket goes off
Gandalf: "Pwned!"

Bilbo: "This = shiz, bai foos"
Bilbo has left the server
Frodo: "***!?"

[later, in Bag End]
Gandalf: "Give teh ringz0r to Frodo"
Bilbo: "Sif! It r precious!"
Gandalf: "STFU NOOB!!!"
Bilbo: "ok"
Gandalf has logged on as admin
Bilbo has been kicked from The Shire

**Later
Gandalf: "Show me teh ring, foo!"
**Gandalf rides out, does some research, comes back
Gandalf: "OMGZ, it R teh ring!"
Frodo: "***?"
Gandalf has logged on as admin
Frodo has been kicked from The Shire
Sam has been kicked from The Shire

[At Isengard]
Gandalf: "sup dawg, i r g4nd4lf da gr3y!"
Saruman: "Foo! U R teh noob!"
Gandalf: "***?!"
Saruman: "Sauron pwns joo!"
Gandalf: "Sif, I R leet"
**Sarumon beats the **** out of Gandalf
Saruman: "Pwned!"

[on the road to Bree]
Merry: "look foos, shrooms!"
Pippin: "Woot! Shrooms!"
Frodo: "Ph34r!"
Sam: "Shrooms!"
Frodo: "PH34R!1!1"
**black rider stops, sniffs, goes past
Frodo: "OMG, packetloss!"

[Bree, in the Inn of the Prancing Pony]
**Frodo is drinking and dancing on a table, then slips
Frodo has left the server
Frodo has connected to the server
Frodo: "OMGz, dc'd"
Aragorn: "OMG, noobz"

[at Weathertop]
Merry: "Mmm, shrooms!"
**MERRY IS BROADCASTING HIS IP ADDRESS!!!
Frodo: "Foos! Ph34r teh haxorz"

**the black riders attack
Merry: "OMG!!!"
Sam: "O.M.G!!!11"
Pippin: "***"
Frodo has left the server
**head nazgul stabs Frodo's ghost
Frodo has connected to the server
Frodo: "***... hax!"
**Aragorn lraps into the fray with a flaming brand
Aragorn: "PH34r!!!!!!"
Merry: "LOLOL flamed! "

[on the road to Rivendell]
Aragorn: "ZOMG!Arwen!"
**Arwen rides up
Aragorn: "A/S/L? Wanna net secks?"
Arwen: "Sif! *** is up with Frodo?"
Sam: "teh leet Hax0r "
Arwen: "Firewall?"

**Arwen rides off with Frodo, the nazgul give chase. Arwen crosses the ford at Rivendell.
Arwen: "PH34R!! My dad pwns urs!"
**nazgul start to cross
Arwen: "LOLOLOLO noobs!!1!"
**the ford rises up and washes the nazgul away
Warning: Connection Problems Detected
nazgul has disconnected
nazgul has disconnected
nazgul has disconnected
nazgul has disconnected
nazgul has disconnected
nazgul has disconnected
nazgul has disconnected
Arwen: "Pwnt"

[at the Council of Elrond]
Gimli: "dwarves pwn!"
Legolas: "Sif, Elves pwn!"
Boromir: "OLOLOL noobs, men pwn!"
Elrond: "STFU tards!!1!"
**Frodo puts the ring on the plinth
Gimili: "Sif ring pwns all!"
**Gimli swings his axe at it, which shatters
Elrond: "**sigh, noob"

[Frodo meets up with Bilbo]
Bilbo: "OLOL, me = 10th level thief!"
Frodo: "OMG, u r teh pwn!"
Bilbo: "Do u still have teh ringz0r?"
**Frodo shows Bilbo the One Ring
Bilbo: "OMG u tard, I want to TK you!"
Frodo: "sif!"
Bilbo: "ph34r my mithril"

[The Fellowship leaves Rivendell]
**Gandalf leads the fellowship through the mountains
Legolas: "ZOMG, leet gfx!"
Gimli: "I R dropping frames! FFS"
**There's an avalanche which threatens to knock them off the shelf
Gimli: "Gandalf, teh draw distance is too far!1!!1"
Gandalf: "**Sigh. Moria?"
Gimli votes to change map to Moria
Votes 4 of 4 required
Legolas: "lolol Gimli, time to upgrade!"

[The fellowship approaches the gates of Moria]
Gandalf: "FFS, its too hard! Anyone got a walkthrough?"
**The gates of Mordor open, but the Guardian attacks!
Frodo: "OMG! ph34r!"
Boromir: "GL HF"
Aragorn [broadsword] guardian
Legolas [arrow] guardian
Gandalf: "gg"

[The fellowship enters the mines of Moria]
Gimli: "OMG!!!! PWNED!"

**After travelling some time in the dark the Fellowship come to a chamber with a large well
Gandalf: "teh bookz0r has some clues!"
**Merry knocks a skeleton in armour down the well
Gandalf: "OMG! noob!"
Merry: "d'oh"
**The fellowship hears the ork drums
Boromir: "***?"
Aragorn: "***?"
Frodo: "..."
Gandalf: "Oh ffs >.<"
**the fellowhip shores up the doors as the orks come
Boromir: "TEAMS FFS!"
Aragorn [broadsword] ork
Gimli [axe] ork
Legolas [arrow] ork
Aragorn [broadsword] ork
Aragorn [broadsword] ork
Boromir [broadsword] ork
Gimli [axe] ork
Gimli [axe] ork
ork: "OMG! h4x!"
Gimli: "pwned"!
Legolas [arrow] ork
Legolas [arrow] ork
Legolas: "lol!!"
Boromir [broadsword] ork
Gimli [axe] ork
Gimli: "Foos!"
Legolas [arrow] ork
ork: "ffs, wallhax!"
**The cavetroll enters the chambers destroying the doors
Gandalf: "Oh ffs!"
Boromir: "Omg, its teh boss!"
Aragorn: "Sif noob, we're not at teh end yet!"
**Cavetroll slams Boromir and Aragorn out of the way, and then skewers Frodo
Sam: "OMG!"
Gandalf: "OMG!"
Aragorn: "omg, pwn!"
**Legolas jumps on the cavetroll and shoots arrows down into its head
Legolas [arrow] cavetroll
Ork: "OMG! PWNED!"
Gimli: "LOLOOLOL! noobs"
**The fellowship then runs through Moria, chased the whole way by a horde of orks
Boromir: "FFS! Teams, foos!"
**A flaming shadow starts to follow them, and the orks withdraw
Aragorn: "Now THIS is teh boss!"
Gandalf: "OMG!"
**The fellowship take to long flights of stairs that are starting to crumble and fall. Orks shoot at them with arrows.
Legolas: "LOL, noobs. Chex0r this out!1!"
Legolas [arrow] ork
Legolas [arrow] ork
ork: "AIMBOT!"
ork: "turn it off!"
Legolas: "lolol!"
**The fellowship crosses a bridge, Gandalf stops to confront the balrog
Gandalf: "joo shall not pass!"
Balrog: "***?"
Gandalf: "JOO SHALL NOT PASS!"
Balrog: "Sif, noob"
**Gandalf strikes the bridge with his staff, cracking it and causing it to break under the Balrog's weight
Balrog: "ZOMG! PWNED!"
Frodo: "OMG! Gandalf!"
**The Balrog falls and in a last act of defiance strikes out with its whip, entangling Gandalf
Gandalf: "D'oh"
Frodo: "OMG, joo foo!"
Gandalf: "fly u foos, fly!"
**Gandalf lets go and follows the Balrog into the crevass
Gandalf has left the server
Balrog has disconnected

[After escaping Moria the fellowship finds itself in Loth Lorien]
**The fellowship rests, and in the night Frodo speaks with Galadriel
Galadriel: "For a noob, u r teh leet!"
Frodo: "Sif. I don't want teh ringz0r. Do u want teh ringz0r?"
Galadriel: "******! SIF I want teh ringz0r. I have enough h4x of my own!1"

[The fellowship leaves Loth Lorien and sets out via river]
Saurman: "ph34r my army of uruk hai! Go outz0r, find teh hobbitz and pwnz0r them!"
uruk hai: "leet!"

[stopping at the banks of the river, the Fellowship sets up camp]
**Frodo goes off looking for firewood, Boromir follows and confronts him
Boromir: "Gimmie teh ringz0r so ** hax can fight teh boss!"
Frodo: "Sif, foo. Punkbuster will pwn joo!"
Boromir: "Naw, we play on non-pb servers"
Frodo: "STFU noob"
Frodo has left the server
Boromir: "***! FRODO! Bring teh ringz0r back, faghat!"

**A group of Uruk Hai encounter Boromir
Boromir: "OH FFS, TEAMS!!"
Uruk Hai [arrow] Boromir
Uruk Hai [arrow] Boromir
Uruk Hai [arrow] Boromir
Uruk Hai [arrow] Boromir
Uruk Hai [arrow] Boromir
Uruk Hai [arrow] Boromir
Uruk Hai [arrow] Boromir
Uruk Hai [arrow] Boromir
Boromir: "****ing campers"
**Aragorn comes across the battle
Aragorn: "Boromir joo noob! ***!"
Uruk Hai: "Hah, pwn!"
Aragorn [broadsword] Uruk Hai
Aragorn: "I bring joo teh pwn!"
**Aragorn goes to Boromir
Boromir: "Damn lag!"
Warning: Connection problems detected
Boromir has disconnected
Aragorn: "FFS!"

[Frodo returns to the bank of the river where he gets into a boat. Sam 'sees' him]
Sam: "Frodo! ***! Invisibility h4x!"
Frodo has connected to the server
Frodo: "Sam, STFU and FOAD!"
Sam: "Sif!"
Frodo: "Oh, ffs n00b!"

3Nd!!!!11
:P

Un saludo.

Ruben3d

PD: Si alguien me dice a qué se refieren con 'pwn' le estaría muy agradecido. :hola:

editado: El original está aqui http://www.hohto.to/forums/index.php?board...;threadid=17720

4
ASP .NET / El Servidor No Interpreta Asp.net
« en: Martes 20 de Julio de 2004, 22:20 »
Hola.

Estoy empezando con ASP.NET usando Web Matrix y tengo el problema de que cuando uso como servidor el IIS 5.1 no ejecuta el archivo aspx y lo envia tal cual al cliente (que lo interpreta como si fuese un HTML normal). Si uso el servidor local que trae integrado todo funciona bien (pero la gente no puede acceder desde fuera).

He probado también con el VS.NET en vez del Web Matrix y ocurre lo mismo con el IIS.

He leido que puede ser debido a que he instalado el IIS después del .NET Framework, aunque he ejecutado la reparación de éste último y todo sigue igual.

¿A alguien se le ocurre por qué el IIS se niega a funcionar bien con .NET?

Muchas gracias.

Ruben3d

PD: Para más datos, estoy ejecutando todo en Windows XP Professional. El VS.NET es el 2002, el .NET Framework es el 1.0 y el Web Matrix es el 0.6.812.0, a parte del IIS que es el 5.1.

5
Programación de Videojuegos / Quake 2 En Delphi
« en: Viernes 9 de Julio de 2004, 16:24 »
Hola.

Me he encontrado, navegando por internet, el Quake 2 portado íntegramente a Delphi. Lo dejo aqui a modo de curiosidad:

Quake 2 Delphi Conversion

También puse hace algún tiempo un link a la versión en Java. A ver si lo encuentro en algún otro lenguaje :P.

Un saludo.

Ruben3d

6
C/C++ / [Código Fuente] Programa para postear código con la sintaxis en color.
« en: Martes 29 de Junio de 2004, 15:01 »
Esta aplicación permire formatear el código fuente de Pascal o C++ usando los tag COLOR, para que aparezca la sintaxis coloreada al postearlo en los foros.

El código que genera ha de ser puesto entre los tag XCODE y /XCODE, de efecto similar a CODE, pero que permite el uso del tag COLOR.

El programa está realizado usando el analizador léxico Flex, que es compatible con Lex y se distribuye bajo licencia GNU. Para realizarle modificaciones recomiendo hacerlo en el .l en vez de en el .c.

Si detectáis cualquier error en el funcionamiento del programa avisadme e intentaré solucionarlo.

Un saludo.

Autor: Rubén Moreno Montolíu

http://ruben3d.iespana.es

7
Sobre los Foros de SoloCodigo / Cómo Poner Varios Espacios Seguidos
« en: Viernes 25 de Junio de 2004, 15:33 »
Hola.

He hecho un pequeño programa que lee un fichero de C++ y genera la sintaxis coloreada usando los tags del foro, para que quede el código bien claro. El problema es que si pongo varios espacios seguidos (porque las tabulaciones las convierto en espacios) al postearlo en el foro desaparecen, y pierdo la justificación del código. ¿Hay alguna manera de conservar los espacios sin usar el tag CODE (porque no me deja colorear CODE)?

Muchas gracias.

Ruben3d

PD: Si consigo sulocionar lo de los espacios haré una versión para Pascal.

PD2: Dejo un ejemplo de lo que genera el programa con un fichero de prueba. Se puede ver cómo todos los grupos de uno o más espacios son reducidos a uno al ser mostrado por el foro:


//
// ejcpp.cpp
//

/*

Fichero C++ de ejemplo

todo] Introducir más cosas

*/


#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>

using namespace std;

// Directiva multilinea
#define ASSERT(x)    if (!(x))    \
                    {            \
                        cout << "La condicion \"" << #x << "\" ha fallado en " << __FILE__ << ":" << __LINE__ << endl;    \
                        abort();    \
                    }


/*
    CLASE CEscritor
    Escribe el texto que se le asigne.
*/

class CEscritor
{
public:
    CEscritor(string str) : m_str(str) {}

    // Escribe el texto asignado mediante el constructor o asignar()
    void escribir();

    // Le asigna un texto que se escribirá mediante asignar()
    void asignar(string &str);

private:
    std::string m_str;
};

void CEscritor::escribir()
{
    for (int i=0; i<5; i++)
        cout << m_str << endl;
}

void CEscritor::asignar(string &str)
{
    m_str = str;
}

/* Punto de entrada del programa */
int main(int argc, char **argv[])
{
    CEscritor *pEscritor = new CEscritor(string("Este texto tiene \"comillas dobles\""));
    ASSERT(pEscritor != NULL);            // Comprueba que nada haya fallado.
    pEscritor->escribir();
    delete pEscritor;                    // Libera la memoria
    char c = '\'';
    char ch = '\xA2';
    printf("El valor de 'c' es: %c.\n", c);
    printf("Un float: %02.2f.\n", 4.2356f);
    double d = 3.675;
    unsigned short int usi = 0xA2;
    getchar();
    return 0;
}

8
C/C++ / Problema Con Templates En C++
« en: Jueves 24 de Junio de 2004, 17:25 »
Hola.

He estado intentando separar la implementación de una clase template de su declaración en el .h, ya que es mucho código y está bastante poco claro. Para que veáis un ejemplo, os pongo una simplificación del problema:

Código: Text
  1. // plantilla.h
  2.  
  3. template &#60;class T&#62;
  4. class CPlantilla
  5. {
  6. public:
  7.   CPlantilla(T var)
  8.   {
  9.     m_var = var;
  10.   }
  11. private:
  12.   T m_var;
  13. };
  14.  

Yo lo que quiero es que la implementación del método esté en otro archivo, por lo que éste lo convierto en:
Código: Text
  1. // plantilla.h (nuevo)
  2.  
  3. template &#60;class T&#62;
  4. class CPlantilla
  5. {
  6. public:
  7.   CPlantilla(T var);
  8.  
  9. private:
  10.   T m_var;
  11. };
  12.  

y creo un nuevo .cpp, con la implementación:
Código: Text
  1. // plantilla.cpp
  2.  
  3. #include &#34;plantilla.h&#34;
  4.  
  5. template &#60;class T&#62;
  6. CPlantilla&#60;T&#62;::CPlantilla(T var)
  7. {
  8.   m_var = var;
  9. }
  10.  

De esta manera compila sin problemas, y si utilizo la clase en plantilla.cpp todo funciona bien. El problema está en si yo creo un tercer archivo, de esta manera:
Código: Text
  1. // prueba.cpp
  2.  
  3. #include &#34;plantilla.h&#34;
  4.  
  5. void usarPlantilla()
  6. {
  7.   CPlantilla&#60;int&#62; p(4);
  8. }
  9.  

No tengo problemas al compilar, pero al linkar me dice que no se encuentra la implementación del constructor, que está en plantilla.cpp.

Claramente, esto se puede resolver dejando la implementación de la clase en el archivo de cabecera, pero por lo dicho al principio quiero separar la implementación de la declaración. ¿Alguien sabe cómo llevar esto a cabo?

Muchas gracias.

Un saludo.

Ruben3d

PD: Estoy compilando con eVC++ 4, por si es cosa del soporte del compilador para templates.

EDIT: Acabo de probarlo con el VS 7 y ocurre lo mismo :(
EDIT2: Lo he probado en Dev-C++ y más de lo mismo.

9
Programación de Videojuegos / Quake 2 En Java
« en: Viernes 18 de Junio de 2004, 16:29 »
Hola.

Hace tiempo había por aqui una discusión sobre si se podían hacer juegos en Java, o era demasiado lento. Pues bien, aqui está portado Quake 2 a Java y va a más velocidad de la que me esperaba:
Jake2 - Java port of the Quake2 game engine

Un saludo.

Ruben3d

10
La taberna del BIT / Historia De Los Gui
« en: Miércoles 16 de Junio de 2004, 22:16 »
Hola a todos.

Navegando por internet me he encontrado esta web, que muestra una historia de los GUI, con todas las versiones de Windows y algunas de Linux y Mac.

Para quien le interese, aqui está:
Historia de los GUI

Un saludo.

Ruben3d

11
Programación de Videojuegos / Juego Asteroides
« en: Lunes 14 de Junio de 2004, 21:39 »
Buenas.

Como ahora parece que la gente se ha animado a mostrar sus trabajos a mi también me han dado ganas :P.

Este es el primer juego que programé desde los tiempos del QBasic (si excluyo uno de encontrar las diferencias entre dos imágenes en VB), realizado principalmente en Junio del año pasado, para aprender algo de programación en Windows y OpenGL orientado a 2D (en aquélla época programaba casi exclusivamente en C bajo Linux). Si me decidí a hacerlo es porque un amigo me propuso hacer una versión de ese juego en el menor tiempo posible.

Está en C y coge justo cuando fui a empezar a aprender C++ (usa clases, pero es un burruño). El código es un ejemplo de cómo no han de hacerse las cosas :(, así que por eso no lo incluyo (creedme, es un burruño de aupa). Si alguien quiere saber cómo está hecho algo o el fragmento de código de alguna parte, no me importa ponerlo.

- Asteroids -

Para ver el contenido del fichero PAK podéis usar el QPed.

Un saludo.

Ruben3d

EDIT: Se me olvidaba poner cómo se juega :P. La nave se gira con Cursor Izq y Dcha. Cursor Arriba da potencia. No se puede frenar, así que hay que girar 180º y dar potencia en el ángulo contrario (le da más alegría al juego). La barra espaciadora dispara y Esc interrumpe el juego y vuelve al menú.

Recomiendo moverse lo justo y necesario :D, y con pulsaciones pequeñas del Cursor Arriba.

12
Programación de Videojuegos / Pasar Una Imagen A Escala De Grises
« en: Viernes 11 de Junio de 2004, 14:49 »
Hola.

He realizado una función para pasar imágenes a escala de grises que es lo suficientemente rápida para ser usada en tiempo real. La he probado en un emulador de PocketPC con un display de 240x320 y supera los 100 fps en un ordenador a 1.5GHz con varios trabajos en segundo plano (entre ellos el seti@home). No sé a qué velocidad funcionará ejecutandose nativamente en un PC, pero supongo que será viable a 640x480 en una máquina equivalente.

Para pasar a escala de grises tengo que obtener la luminosidad de cada píxel, multiplicando cada componente de color por un peso y redondeando a un número entero el resultado, de esta manera:
Código: Text
  1. gris = (unsigned char) (0.30*ROJO(pixel) + 0.59*VERDE(pixel) + 0.11*AZUL(pixel));
  2.  
Esto implica tres multiplicaciones de números flotantes por píxel, dos sumas y un redondeo. Estuve meditando y me di cuenta de que podía hacerse sólo con números enteros, que sería más rápido:
Código: Text
  1. gris = (unsigned char) (30*ROJO(pixel) + 59*VERDE(pixel) + 11*AZUL(pixel))/100;
  2.  
Esto elimina el uso de los números flotantes, pero añade una división entera, así que no me convenció. Pensé en usar sólo desplazamientos de bits, aunque de esta manera se pierde exactitud:
Código: Text
  1. gris = ((ROJO(pixel)&#60;&#60;1) + (VERDE(pixel)&#60;&#60;2) + AZUL(pixel))/7;
  2.  
De esta manera, el peso del rojo sería 0.28, el del verde 0.57 y el del azul 0.14. No son iguales a los originales, pero es una aproximación bastante buena. Aún me quedaba solucionar la división. Es fácila darse cuenta de que 7 está muy próximo a 8, que se arregla con un desplazamiento de bits:
Código: Text
  1. gris = ((ROJO(pixel)&#60;&#60;1) + (VERDE(pixel)&#60;&#60;2) + AZUL(pixel))&#62;&#62;3;
  2.  
De esta manera, paso un píxel a escala de grises y sólo realizo desplazamientos de bits y sumas de enteros. Sin embargo, he de pagar el precio de un leve oscurecimiento de la imagen final, causado por dividir entre 8 en vez de entre 7.

Os dejo aqui la función acabada, por si a alguien le parece útil:
Código: Text
  1. void io3d::CGraphics2D::grayscaleArea(int x1, int y1, int x2, int y2)
  2. {
  3.   if (x1&#62;x2)
  4.   {
  5.     switchElems&#60;int&#62;(x1,x2);
  6.   }
  7.   if (y1&#62;y2)
  8.   {
  9.     switchElems&#60;int&#62;(y1,y2);
  10.   }
  11.  
  12.   unsigned char c;
  13.  
  14.   int next_line = -(x2-x1+1)+m_nNormYPitch;
  15.  
  16.   WORD *pPixel = &m_pBackBuffer[x1+y1*m_nNormYPitch];
  17.  
  18.   for (int y=y1; y&#60;=y2; y++)
  19.   {
  20.     for (int x=x1; x&#60;=x2; x++)
  21.     {
  22.       // Los pesos son 0.30, 0.59 y 0.11, pero realizo una aproximación
  23.       // Multiplico por 2, 4 y 1. Va incluido en el despl. el bajar G a 5 bits
  24.       // Debería dividir por 7, pero hacerlo por 8 es mucho más rápido (aunque se
  25.       // oscurece un poco la imagen).
  26.       c = ( (CR5(*pPixel)&#60;&#60;1) + (CG6(*pPixel)&#60;&#60;1) + CB5(*pPixel) ) &#62;&#62; 3;
  27.       *(pPixel++) = C565(c,c&#60;&#60;1,c);
  28.     }
  29.  
  30.     // Reajuste para la siguiente línea
  31.     pPixel += next_line;
  32.   }
  33. }
  34.  

La función está pensada para poder ser aplicada a áreas rectangulares arbitrarias. Para que se aplique a la pantalla completa hay que usar como parámetros (0,0, anchura-1, altura-1). Esta función asume que hay un puntero llamado m_pBackBuffer, que apunta a la memoria en donde se pinta y es de tipo WORD*, pues trabaja en modo de 16 bits de color. Las macros CR5, CG6 y CB5 extraen cada componente de color del píxel de tipo WORD con desplazamientos y máscaras, y lo devuelven en el rango [0,31] para el rojo y el azul y en el rango [0,63] para el verde (por tener un bit más). En m_nNormYPitch se guarda cuánto hay que sumarle al puntero que apunta a un píxel para avanzar a la siguiente fila. C565 es una macro que recibe las tres componentes de color en los rangos citados anteriormente y los compacta en un WORD. Por último, hay que tener en cuenta en todo momento que el verde ocupa un bit más y por eso hay que realizar algunos desplazamientos no esperados.

Espero que esto os sirva. Se me ocurren diversas aplicaciones, como hacer que detrás de una pantalla en un escenario de un juego de plataformas se vea en escala de grises (algo así creo que vi en Jazz Jackrabbit, de Apogee?), o cualquier otro efecto (para escenas cinemáticas, junto a ruido añadido para dar impresión de película antigua).

Un saludo.

Ruben3d

13
JavaScript / Re: Menú Que Se Despliega
« en: Viernes 21 de Mayo de 2004, 17:56 »
Hola a todos.

Tengo un menú hecho con una tabla de una sola columna en la que cada opción es una fila (una celda). Me gustaría poder hacer que si hago clic en la opción 2, por ejemplo, se inserten debajo de la opción 2 y encima de la 3 las subopciones de la 2: 2.1, 2.2, etc (en celdas que se creen, nuevas filas). Y si vuelvo a hacer clic en la opción 2 o en cualquier otra opción desaparezcan las opciones que aparecieron y vuelva al estado inicial.

Sé que se tiene que poder hacer con JavaScript, pero mis conocimientos son un tanto limitados (más bien son inexistentes).

¿Alguien sabe de alguna página de ejemplos en javascript donde esté algo parecido? En caso contrario, ¿me podría alguien guiar para hacerlo en JavaScript? Creo que si me pongo a ello y alguien me orienta acabaría por sacarlo (no sin tener que empollarme tutoriales de JavaScript).

Muchas gracias a todos.

Un saludo.

Ruben3d

14
Programación de Videojuegos / [Noticia] Epic Games publica las características del Unreal Engine 3
« en: Lunes 17 de Mayo de 2004, 17:16 »
Epic Games, la compañía creadora de la saga de juegos Unreal, ha publicado en su sitio web dedicado a la licencia de su tecnología las características de la próxima versión de su motor 3D, el Unreal Engine 3.

Esta nueva versión incorpora increibles nuevas mejoras, orientada a la próxima genereación de PCs y consolas que estarán en el mercado en el 2006.

Para una lista detallada de sus características y screenshots del motor en acción visitar Unreal Technology - Unreal Engine 3

Autor: Unreal Technology

http://www.unrealtechnology.com/html/homefold/home.shtml

15
Sobre los Foros de SoloCodigo / Contraseña Del Chat
« en: Domingo 9 de Mayo de 2004, 23:58 »
Hola.

Cuando entro al chat me pide una contraseña junto al id de usuario. Ponga la que ponga me sirve igual. ¿Es normal?

Un saludo.

Ruben3d

16
Visual C++ / [Noticia] Microsoft ofrece libremente su compilador-optimizador de C++
« en: Lunes 26 de Abril de 2004, 19:46 »
Microsoft ha decidido ofrece libremente su compilador-optimizador de C++ en un paquete que incluye:

- El compilador y el linkador.
- La librería de tiempo de ejecución de C y la librería estándar de C++ (incluyendo el STL).
- El CLR del .NET Framework.
- Código de ejemplo.

Las versiones son las incluidas en Visual Studio .NET 2003 Professional.

Con este paquete se pueden desarrollar aplicaciones y compilarlas tanto a código nativo como a código .NET.

Para más información y descargar el paquete dirigirse a:
Microsoft Visual C++ Toolkit 2003
http://msdn.microsoft.com/visualc/vctoolkit2003/

Autor: Microsoft

http://msdn.microsoft.com/visualc/vctoolkit2003/

17
Programación de Videojuegos / Tema Para Artículo
« en: Lunes 26 de Abril de 2004, 17:53 »
Hola.

Estoy pensando en escribir un artículo relacionado con la programación de videojuegos. Se me han ocurrido dos temas sobre los que escribir y quería saber si había interés sobre alguno de ellos (es para saber si lo voy a escribir y luego no se lo lee nadie :P):

Matrices de transformación

Bien, este tema me parece bastante interesante para cualquiera que quiera programar juegos 3D. Las matrices de transformación permiten trasladar, rotar y escalar objetos muy fácilmente. Además, permiten realizar la transformación de perpectiva que proyecta un objeto 3D en una pantalla 2D. También es útil para los que usan Direct3D u OpenGL, ya que les permite saber qué está pasando cuando realizan transformaciones con los vértices (glTranslate, glRotate, etc). ¿Tal vez entrar también en quaterniones, para realizar eficientemente rotaciones en torno a ejes arbitrarios? No sé. Tal vez para otro artículo.

Programación de videojuegos para PocketPC

Es un tema que también es interesante. Explicaría todas las herramientas necesarias para comenzar a desarrollar (incluido el emulador), las plataformas que existen (WinCE 3,4, PPC 2002, WinMobile 2003) y acabaría explicando cómo crear una aplicación base para realizar juegos, que permitiera leer tanto eventos de teclas hardware como pulsaciones en la pantalla táctil y pintar en pantalla sin usar el GDI (a partir de la dirección de la memoria de video), con lo que tenemos una gran velocidad. Y ya que estoy, me tendría que meter con el tema del Unicode también.

La decisión

Los dos temas los veo interesantes. El primero es un clásico y se puede encontrar en más sitios (sobre todo en inglés). El segundo lo veo de mayor actualidad y, además, existe bastante menos información (sobre todo en español).

Bueno, ya me diréis cuál os parece de mayor interés.

Un saludo.

Ruben3d

18
PDA / Comportamiento De _wfopen
« en: Domingo 25 de Abril de 2004, 19:44 »
Hola.

Estoy desarrollando una aplicación para Windows Mobile 2003 sobre PocketPC y me encuentro que al crear un archivo de esta manera

Código: Text
  1. FILE *fd = _wfopen(L&#34;archivo.txt&#34;, L&#34;wtc&#34;);
  2.  

el archivo se crea con la ruta relativa al directorio raiz, no al directorio del programa. ¿A qué es debido? ¿Hay alguna manera de hacer que se comporte como en los sistemas de escritorio? También me vale poder averiguar el directorio en el cual se encuentra el ejecutable.

Muchas gracias a todos.

Un saludo.

Ruben3d

19
Enlaces a Sitios sobre programación / GameDev.net
« en: Domingo 25 de Abril de 2004, 14:20 »
Sitio web con una enorme cantidad de recursos dedicados al desarrollo de videojuegos. Cubre desde la programación (gráfica -OpenGL, DirectX-, sonido, IA, algoritmos...) hasta la creación de gráficos, diseño, texturas, etc.

Autor: GameDev.net

http://www.gamedev.net

20
Sobre los Foros de SoloCodigo / Publicar Un Nuevo Artículo
« en: Domingo 25 de Abril de 2004, 13:51 »
Hola.

Con las nuevas secciones he sentido el impulso de escribir un artículo. Al ver la página "Publicar un nuevo recurso (Paso 2 de 2)" me han asaltado una serie de dudas:

- ¿Dónde va el artículo? ¿En el cuadro que pone Descripción, o dentro del Zip en un archivo? ¿Si va en Descripción, hay alguna manera de previsualizarlo?

- ¿Estoy limitado a usar los tags esos entre corchetes o puedo usar HTML? Si sólo puedo usar los de corchetes, ¿estoy limitado a los que se mencionan explícitamente o puedo usar cualquiera que esté disponible en un post del foro (por ejemplo, mayor tamaño de letra para hacer títulos)?

- Las imágenes del artículo han de llamarse 1, 2, 3... ¿Hay que poner la extensión en los tag IMG?

Gracias por todo y felicidades de nuevo por las nuevas secciones.

Un saludo.

Ruben3d

21
OpenGL / Triple Buffering
« en: Miércoles 17 de Marzo de 2004, 14:21 »
Hola a todos.

He estado intentando encontrar información sobre cómo usar Triple Buffering con OpenGL bajo Windows y no he encontrado nada. En MSDN he visto la función wglSwapLayerBuffers, pero no me queda muy claro si es la adecuada para el triple buffering o es su finalidad (no lo menciona por ningún lado, además es engorrosa de utilizar).

¿Alguien sabe cómo hacer Triple Buffering con OpenGL bajo Windows?

Muchas gracias a todos.

Ruben3d

22
Dudas informáticas / Pintar Directamente En El Canal Alfa
« en: Viernes 5 de Marzo de 2004, 16:04 »
Hola a todos.

Me he instalado la última versión de GIMP y he estado probando su funcionamiento. Ha mejorado bastante desde las versiones 1.x, pero he encontrado un problema: ¿Cómo pinto directamente en el canal alfa de una imagen? Sé que se ha de poder hacer (en Photoshop es muy sencillo, no hay más que seleccionar el canal y pintar), sin embaro soy incapaz de encontrarlo. La única manera en la que lo he conseguido hacer es creando una máscara a la capa que hace de fondo y pintando en ella, de manera que el canal alfa se actualiza sólo. ¿No hay alguna manera de evitarse esto y pintar directamente en el canal alfa?

Un saludo.

Ruben3d

23
Sobre los Foros de SoloCodigo / Código Tabulado
« en: Lunes 1 de Marzo de 2004, 18:32 »
Hola.

Me he fijado en que cuando uso la tag CODE para insertar código el único beneficio que obtengo es tener fuente de paso fijo y se me come todas las tabulaciones, dejando el código sin tabular y de más difícil comprensión. ¿No se podría arreglar esto? Además, si no es pedir mucho, también podría colorear sintaxis, al estilo de los foros de GameDev.net  :P .

Un saludo.

Ruben3d

24
Pascal / Cómo Configurar El Directorio De Trabajo
« en: Lunes 1 de Marzo de 2004, 18:23 »
Hola a todos.

Me he instalado el Dev-pas (la versión 1.9.2 con FreePascal) y no consigo establecer el directorio de trabajo de los proyectos. Siempre es el directorio de instalación del entorno y no consigo cambiarlo, aunque cree el proyecto en otro directorio. ¿Alguien podría indicarme cómo cambiarlo? También me vale poder averiguar en qué directorio está el ejecutable desde el código.

Un saludo.

Ruben3d

25
ASM (Ensamblador) / Operaciones En Coma Flotante
« en: Domingo 29 de Febrero de 2004, 21:26 »
Hola.

He hecho dos pequeñas funciones en C++ con ensamblador. Se comportan igual, dividiendo f1 entre f2 y retornando el resultado. El código es éste:


Código: Text
  1.  
  2.     inline float ASM_Test(const float f1, const float f2)
  3.     {
  4.   float f3;
  5.   __asm {
  6.     fld f1
  7.     fld f2
  8.     fdivp st(1),st
  9.     fstp f3
  10.   }
  11.   return f3;
  12.     }
  13.  
  14.     inline float ASM_Test2(const float f1, const float f2)
  15.     {
  16.   float f3;
  17.   __asm {
  18.     fld f1
  19.     fdiv f2
  20.     fst f3
  21.   }
  22.   return f3;
  23.     }
  24.  
  25.  

La única diferencia es que la primera deja la pila como estaba y la segunda no lo hace, aunque son menos instrucciones. ¿Es necesario dejar la pila como estaba?

Un saludo.

Ruben3d

Páginas: [1] 2