Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

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.

Mostrar Mensajes Menu

Mensajes - jalbam

#16
Yo utilizo el Visual Studio 2005 Express, pero para C#. Hombre, no está mal salvo algunas cosas que no me gustan.

Para C utilizo Dev-C++ casi siempre. Yo no lo veo tan mediocre :p Y el código me sirve para BeOS, para MacOS X y para Linux (pero eso depende del código y no del editor).

Ya que habéis mencionado Eclipse, yo utilizo NetBeans para Java. Pero supongo que NetBeans no sirve para C++. El Eclipse lo utilicé para hacer un Hola Mundo para Google Android en Mac OS pero la verdad es que tenía muchísimos bugs y no me gustó por eso.

En MacOS también está el Xcode, pero no lo he utilizado apenas.

Yo recomiendo echarle un vistazo aunque sea a Dev-C++, que a lo mejor para lo que se exige ya va de sobras.
#17
¿Por qué nadie ha mencionado Bloodshed Dev-C++?
#18
Off-topic / Super Mario Bros en JavaScript y tan solo 14kb
11 de Abril de 2008, 02:33:23 PM
Muy buena y curiosa.

Lo malo es que tiene algunos fallos/bugs como el salto (solo hay dos intensidades, creo) o cuando caminas por un cuadrado que seguidamente tiene un vacio y luego otro cuadrado, el personaje parece que se va a caer pero remonta y se sube al segundo cuadrado, etc.

Tambien se echan de menos las vidas escondidas, otros enemigos, los poderes, los pasadizos secretos... pero supongo que lo mejorarán.

Pero para estar hecho en JavaScript es muy bueno.
#19
Hola otra vez.

Me respondo a mi mismo: al final buscando por Google lo he encontrado de casualidad (antes ya había buscado, pero no daba con la consulta adecuada) y ya lo tengo hecho.

Pongo aquí la página para quien le interese:
http://www.gamedev.net/community/forums/topic.asp?topic_id=348728

Evidentemente, la forma en que lo he hecho ha tenido que ser distinta pero lo esencial está ahí.

Lo malo es que para mi Tetris he tenido que poner una velocidad distinta a las teclas de rotar que a las flechas de mover, ya que con la misma iba muy rápido para unas y muy lento para las otras. Aún así hecho en falta, quizá, un retraso inicial después de la primera pulsación (no creo que me entrañe ningún problema implementarlo) para que sea más jugable.

Cuando lo tenga más acabado ya presentaré mi pequeño proyecto en el foro correspondiente, por si a alguien le interesa (que no creo, jejeje).

Hasta pronto ;)
#20
Hola, buenas.

Estoy haciendo un clon del Tetris en Java y para asignar el teclado a un evento, realizo lo siguiente:

       addKeyListener(new java.awt.event.KeyAdapter() {
           public void keyPressed(java.awt.event.KeyEvent evt) {
               TetrisFormKeyPressed(evt);
           }
       });


Todo funciona bien, lo que pasa es que me he dado cuenta que en otros sistemas cuando se deja pulsada una tecla no funciona igual. Todo es debido a cómo tiene configurado ese sistema el teclado. Por ejemplo, en Windows, depende del "Retraso de repetición" y "Velocidad de repetición" (en Panel de control -> Teclado).

He visto juegos que este problema no lo tienen, lo cual es lo normal, pero no sé si alguno de ellos estará hecho en Java o en Java es imposible impedir que esto pase.

¿Hay alguna forma de poder asignar yo mismo la velocidad y retraso de repetición del teclado al pulsar una tecla? Mi idea es que llame a mi método (TetrisFormKeyPressed(evt)) ni muy deprisa ni muy despacio y siempre a la misma velocidad en todos los sistemas (a no ser que sean demasiado lentos y tengan problemas de velocidad, ya que entonces me imagino que será inevitable que funcionen distinto).

Muchas gracias de antemano. Espero no haberme enrollado demasiado :)
#21
General / Información sobre curso
30 de Marzo de 2008, 07:15:59 PM
Gracias por la respuesta.

Ok, ya te he agregado ;)

Somos muy pocos por aquí por Tarragona a los que nos interesa el tema, pero quizá no tantos.
#22
General / Información sobre curso
30 de Marzo de 2008, 04:12:36 PM
¿Es un curso o es un master? Yo tambien soy de Tarragona, de Cambrils. :)
#23
General Programadores / Casting de un padre a un hijo
30 de Marzo de 2008, 03:43:50 PM
No, no lo necesito. Sólo era por curiosidad.

Muchas gracias otra vez. Habeis resuelto mis dudas por completo.

Hasta pronto :)
#24
General Programadores / Casting de un padre a un hijo
29 de Marzo de 2008, 07:26:56 PM
Hola, buenas.

Siento el retraso pero no pude escribir antes.

Es cierto., teneis razón. He vuelto a hacer las pruebas y estaba equivocado. Recordaba que sí se podía hacer, aunque me habían dicho que no, pero efectivamente no se puede :) Lo siento.

Entonces que se permita el casting de Graphics a Graphics2D, que es un "hijo" suyo, es sólo por razones históricas y porque así lo permite explicitamente Java. ¿No? ¿Por curiosidad, hay alguna forma de hacer algo parecido o es imposible del todo?

Por cierto, es curioso lo de Graphics y Graphics2D. Ahora que estoy haciendo un Tetris y estoy utilizando Graphics, quizá tenga que cambiarlo a Graphics2D para hacerlo más "moderno" :)

Gracias otra vez :)
#25
General Programadores / Casting de un padre a un hijo
27 de Marzo de 2008, 01:10:09 PM
Buffon:
Sí, las dos clases (Padre e Hijo) tienen las dos los mismos métodos (de hecho sólo tienen un constructor igual y ya está).

Vicente:
El primer caso sí me funciona, ni siquiera me da error de ejecución. ¿Será por lo que he dicho antes de que tienen los mismos métodos?

CitarPor eso el segundo caso no funciona nunca, porque un Padre nunca cumplirá el ser un Hijo (ya que es la superclase de Hijo).

Parece ser que hay algún caso que sí funciona. Por eso tengo la duda. Esta duda me venía porque es muy común hacer casting convirtiendo un objeto Graphics a un objeto Graphics2D. En la documentación de Java se puede ver que Graphics es el padre (osea, que Graphics2D hereda de Graphics, con extends), y sin embargo lo estamos convirtiendo a un hijo. Es algo muy común que he leido en diversos sitios de Internet y parece ser que no da error. ¿Cómo y por qué es posible que no de error? Y, sobretodo, ¿qué conseguimos con ello? (me refiero a la ventaja de hacer algo así y a qué obtenemos de diferente con respecto a un objeto Graphics).

Muchas gracias por todo otra vez :)
#26
General Programadores / Casting de un padre a un hijo
26 de Marzo de 2008, 07:58:49 PM
Muchas gracias, has dado en el clavo :)

Ahora ya lo veo más claro.

Aunque lo raro es que el primero nunca me genera una excepción. ¿Por qué?

Sin embargo, el segundo sí me genera una. Pero ambos dejan compilar (Java sólo se da cuenta en tiempo de ejecución). ¿Cómo es que no se da cuenta el compilador?

Y, ya que en el primer caso me permite hacerlo, ¿qué obtengo con ello? ¿un objeto "hijo" con sólo los métodos del padre?

Siento la insistencia.
#27
General Programadores / ncurses
26 de Marzo de 2008, 07:48:23 PM
Hola, buenas.

Para Linux o para Mac OS X y otros sistemas, puedes utilizar la biblioteca ncurses (a veces denominada curses) que substituye a conio.h

Los problemas que puedes encontrar es si no encuentra la biblioteca, aún teniendola instalada (prueba a cambiar ncurses.h a curses.h o al revés) y, sobretodo, la "ofuscada" línea que se necesita escribir para compilar el programa en GCC. Lo siento pero no la recuerdo.

En mi web tengo un ejemplo de un pong algo cutre programado en ANSI C (o se le acerca). Pude compilarlo en Linux y en Mac OS X sólo descomentando las lineas necesarias y cambiando alguna cosa, como el "cls" por "clear", etc. El código fuente está ya pensado y preparado para ser cambiado facilmente para compilar en otros sistemas. Puede darte algunos problemas con el "\n" y cosillas que son muy fádciles de solucionar (yo lo hice, pero siento no tener las versiones modificadas. Las hice para hacer las capturas de pantalla y las borré). No recuerdo muchas cosas, pero una de ellas creo que era que ponía más lineas de las posibles para la shell. Prueba a reducir la variable del alto del tablero, en el código fuente). El "juego" se llama Pongetet y puedes encontrarlo en la sección de juegos, en C. Esta es la dirección: http://www.granvino.com/jam

Te puede servir de ejemplo de cómo funciona ncurses, y espero que así sea.

Saludos :)
#28
General Programadores / Casting de un padre a un hijo
26 de Marzo de 2008, 07:12:34 PM
Gracias por la respuesta :)

Pero sigo sin entender por qué es diferente hacer esto:
Hijo hijo = (hijo) padre;

a hacer esto:
Hijo hijo = (hijo) new Padre();

Efectivamente el fallo se produce en tiempo de ejecución.

Tampoco entiendo por qué se realiza un casting de Graphics para convertirlo en Graphics2D (que es un hijo suyo). ¿No se pierden los métodos y demás? ¿Qué se consigue con ello?
#29
General Programadores / Casting de un padre a un hijo
26 de Marzo de 2008, 06:24:46 PM
Hola, buenas.

Tengo una duda con Java. Yo tenía entendido que es posible hacer un casting de un objeto "hijo" a uno "padre" (convertir un objeto que es la instancia de una clase que hereda de un padre, a una instancia de este padre), pero no al revés.

Por ejemplo, haciendo esto:

Padre padre = (Padre) hijo;

Pero no estaría permitido hacer esto otro:

Hijo hijo = (hijo) padre;

Recuerdo que Padre es una clase no abstracta, e Hijo es una clase tampoco abstracta y que hereda de Padre.

Sin embargo, Java me deja hacer esto:

Hijo hijo = (hijo) padre;


Pero no me deja hacer esto:

Hijo hijo = (hijo) new Padre();

¿Qué diferencia hay entre hacer casting a un objeto ya instanciado a hacerlo de una nueva instancia? Lo único que cambia a mi modo de ver es la forma de escribirlo (con un new), pero parece ser que para Java no. Java compila en ambos casos, pero en el segundo (con el new) da error lanzando una excepción.

Ya que estamos, esta duda me viene de que me he dado cuenta que es muy común hacer un casting de un objeto Graphics y convertirlo en Graphics2D, cuando Graphics2D es "hijo" de Graphics. ¿Cómo es posible  que se pueda convertir un objeto padre a un hijo? ¿Qué pasa con los métodos y propiedades que el padre no tenga? Si se pierden, ¿para qué nos sirve el casting?. Por cierto, ambas clases (Graphics y Graphics2D) son abstractas (a diferencia del ejemplo anterior con las clases Hijo y Padre, que no lo eran).

Siento la torpeza. Espero que alguien despeje estas dudas, que seguro que sí con los expertos que hay aquí ;)

Gracias por todo.
#30
General Programadores / Casting de un padre a un hijo
26 de Marzo de 2008, 06:23:53 PM
Hola, buenas.

Tengo una duda con Java. Yo tenía entendido que es posible hacer un casting de un objeto "hijo" a uno "padre" (convertir un objeto que es la instancia de una clase que hereda de un padre, a una instancia de este padre), pero no al revés.

Por ejemplo, haciendo esto:

Padre padre = (Padre) hijo;

Pero no estaría permitido hacer esto otro:

Hijo hijo = (hijo) padre;

Recuerdo que Padre es una clase no abstracta, e Hijo es una clase tampoco abstracta y que hereda de Padre.

Sin embargo, Java me deja hacer esto:

Hijo hijo = (hijo) padre;


Pero no me deja hacer esto:

Hijo hijo = (hijo) new Padre();

¿Qué diferencia hay entre hacer casting a un objeto ya instanciado a hacerlo de una nueva instancia? Lo único que cambia a mi modo de ver es la forma de escribirlo (con un new), pero parece ser que para Java no. Java compila en ambos casos, pero en el segundo (con el new) da error lanzando una excepción.

Ya que estamos, esta duda me viene de que me he dado cuenta que es muy común hacer un casting de un objeto Graphics y convertirlo en Graphics2D, cuando Graphics2D es "hijo" de Graphics. ¿Cómo es posible  que se pueda convertir un objeto padre a un hijo? ¿Qué pasa con los métodos y propiedades que el padre no tenga? Si se pierden, ¿para qué nos sirve el casting?. Por cierto, ambas clases (Graphics y Graphics2D) son abstractas (a diferencia del ejemplo anterior con las clases Hijo y Padre, que no lo eran).

Siento la torpeza. Espero que alguien despeje estas dudas, que seguro que sí con los expertos que hay aquí ;)

Gracias por todo.





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.