viernes, 30 de octubre de 2009

Programa de la semana 7 – jsmooth

El programa de esta semana sirve para que podamos ejecutar nuestros programas en java aunque en el equipo no este instalada la maquina virtual de java, con este programa podemos hacer que nuestro programa incluya la maquina virtual de java o el enlace para descargarlo en caso de que no este instalado entre otras cosas.
El programa esta en ingles y tiene algunos conceptos que hay que entender bien pero para eso ya hay otros blogs que explican cada paso a seguir, así que yo me limitare a deciros que con este programa podéis hacer el típico archivo exe

http://jsmooth.sourceforge.net/

miércoles, 28 de octubre de 2009

Colorines

Con motivo de nuestro 1º año al servicio de la picaresca, hemos creado un par de pequeños programas en java para "ambientar" vuestros ordenadores y darles ese toque fiestero que buscamos.
Con estos programas que podéis poner en cualquier ordenador (bajo vuestra responsabilidad) podréis observar la cara que pone la persona que este usando el equipo, y ver la cara de fiesta pone

También va en el pack el archivo .java con el codigo para que podais aprender a hacer estas pequeñas bromas

Nota: cuando os hartéis de "fiesta" ya sabeis, cotrol+alt+suprimir ;)

Descargadlo aquí


Version tuneada mas divertida "solo jar"

¡Cumplimos un año!

Los Programadores Pelirrojos cumplimos un año, un año con bromas, tutoriales, jueguitos y mucho mas, pronto un cambio de aspecto para el blog, con unas 1280 visitas en estos dos meses que llevamos con contador, que no está nada mal...
Voy a dejar aqui los enlaces a las secciones mas visitadas del blog:

El buscaminas en java

El pelirrojo Saltarin

Pack juegos C

Codigo Net Invaders




Un informatico que no ama la programación es como un pediatra que no ama a los niños

viernes, 23 de octubre de 2009

Programa de la semana 6 – WinRap

Esta semana os traigo un programita que sirve para esconder aplicaciones que se están ejecutando, solo con tener ejecutado este programa y el que queramos ocultar lo seleccionamos en la lista de programas ejecutándose de arriba y pulsamos el boton hide, después para esconder el propio programa podemos, o dejarlo como tray icon (a la derecha de la barra de windows ) o esconderlo del todo (lock > Stealth mode) y después hacerlo aparecer con Shift+Z y nos pide contraseña (por defecto 1234)
Tiene alguna que otra opción mas pero eso ya dejo que lo investiguéis vosotros mismos.
Aqui teneis el enlace de descarga:
http://sourceforge.net/projects/winrap/files/

PD: Me enteré de este curioso programa gracias a genbeta, un magnifico blog sobre software

viernes, 16 de octubre de 2009

Programa de la semana 5 - K-Lite Codec Pack

Esta semana os traigo un pack de codec muy bueno con el que podréis ver casi todos los archivos de video que hay (flv, mkv ,mp4…) y además te instala un reproductor de video bastante bueno, mejor el windows media seguro XD
Básicamente os lo bajáis los instalas siguiente siguiente y andando

martes, 13 de octubre de 2009

Clases y herencias en XNA e introduciendo la función windows live games

Bueno, vamos con el siguiente tutorial, este a nivel visual no hace nada, vamos a crear clases y otras que hereden de estas para que despues a la hora de hacer nuevos personajes, fondos, etc, no nos cueste tanto, adelante:

1.- He creado a la clase actor, esto lo he hecho en el explorador de soluciones haciendo click derecho en la raiz del proyecto /agregar /nuevo elemento




a este le he llamado actor.cs


2.- Bien, ahora vamos a introducir todo lo que tendrá nuestro actor, abrimos el documento actor.cs y nos saldra casi vacio, viendo solo el nombre del proyecto de nuestra clase, escribimos dentro nuestras primeras lineas:

public Texture2D imagen;
public Vector2 posicion = new Vector2(1, 1);
public Rectangle rectangulo1;

La primera como ya sabeis es para guardar una imagen, en el segundo guardamos la posición en la que se pintará la imagén y la tercera de momento no es relevante, la comentaré en el siguiente tutorial "comprobar choques entre rectangulos", ahora añadiremos las siguientes lineas:

public int velocidad= 0;
public int aceleracionX=0;
public int aceleracionY = 0;

serán la velocidad y aceleraciones que podrá tener cualquier personaje que aparezca en el juego.

3.- Igual que hicimos antes, pero ahora la clase que creemos se llamará personaje.cs, será nuestro personaje principal

4.- Tendremos que indicarle que extiende de actor, asi que en la linea que define la clase la dejaremos asi:

class personaje : Actor

hemos añadido eso de ": Actor" para indicar que nuestra clase personaje extiende de actor y por lo tanto hereda todas sus variables y metodos "aunque aun los actores no tengan metodos, pero si todos los actores tienen metodos comunes los pondremos ahi"

Ahora declaramos los metodos a nuestro personaje, estos serán controles() y refrescaprotagonista():

public void controles()
{
if (GamePad.GetState(PlayerIndex.One).ThumbSticks.Left.X > 0)
{
if (aceleracionX < 5)
{
aceleracionX++;
}
if (aceleracionX > -5)
{
aceleracionX--;
}
}
}



public void refrescaProtagonista()
{
rectangulo1 = new Rectangle((int)posicion.X, (int)posicion.Y, imagen.Width, imagen.Height);


controles();


posicion.X += aceleracionX;
posicion.Y -= aceleracionY;


}


Con el primero de ellos hago que al pulsar el stick en determinada dirección la imagen se mueva a izquierda o derecha, con el sigueinte metodo conseguimos que la posición cambie respecto a la aceleración que tenga nuestro personaje, os recuerdo que en los metodos loadcontent de Game1 tendremos que cargar la imagen de nuestro personaje, en draw pintarlo y en update determinar si cambia la posición usando la función creada, refrescaProtagonista()

5.- Ahora procedemos a probarlo y si, tenemos mas o menos lo mismo que antes, pero hemos conseguido algo importante para desarrollar a partir de aqui:

a) Tenemos una clase actor en la que podremos declarar todos los metodos de los personajes que aparezcan en nuestro juego posteriormente.

b) Hemos creado a nuestro personaje, ahí podremos jugar con la aceleración para hacer que este, salte o caiga



6.- Voy a terminar comentando un componente que veo bastante util, sobretodo si queremos posteriormente usar el juego en red, o guardar los saves "identificandolos", esta es:

Components.Add(new GamerServicesComponent(this));


Esta linea se añade en el constructor de nuestro juego quedando así:

public Game1()
{
Components.Add(new GamerServicesComponent(this));

graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";

}


Gracias a esto, pulsando el botón guia de Xbox o el boton inicio yo tengo ya lo siguiente en pantalla:




Aun no he trasteado con este sistema, pero seguro que sirve para organizar partidas online o guardar datos de distintos usuarios. Bueno, hay queda esto, como siempre adjunto el codigo fuente del codigo de este tuto:





PD: Si las cosas no se entienden o no gusta este metodo para explicarlo, no dudeis en comentar, las criticas constructivas siempre ayudan.

PD2: He visto cosas en el codigo de ultima hora, pero han sido a la hora de definir la aceleración

lunes, 12 de octubre de 2009

Controles para el juego en XNA

Bueno, vamos a por ello, vamos a hacer que la imagen se pueda mover por la pantalla, no es la mejor manera de hacerlo "ya que esto se debe hacer con sus objetos correspondientes" pero asi nos vemos las clases para usar el mando de xbox 360 o el teclado:

1.- Abrimos nuestro proyecto anterior NinjaVolador
2.- Creamos un vector2 en vez de usar el anterior en nuestro game1:
Vector2 posicion = new Vector2(1,1);

3.- Modificamos la linea de la clase Draw e introducimos nuestro vector:
spriteBatch.Draw(personaje, posicion, Color.White);

4.- Ahora viene lo que de verdad queria tratar, la clase update, esta clase se esta ejecutando en todo momento en nuestro juego, asi que aqui introduciremos los controles de la imagen, esto lo hacemos de la siguiente forma:

if (GamePad.GetState(PlayerIndex.One).ThumbSticks.Left.X > 0)
{
posicion.X +=1;
}
if (GamePad.GetState(PlayerIndex.One).ThumbSticks.Left.X < 0)
{
posicion.X -=1;
}

if (GamePad.GetState(PlayerIndex.One).ThumbSticks.Left.Y > 0)
{
posicion.Y -= 1;
}

if (GamePad.GetState(PlayerIndex.One).ThumbSticks.Left.Y < 0)
{
posicion.Y += 1;
}

Sencillamente, si el jugador uno pulsa su stick izquierdo en determinada dirección pues la posición cambiara, generando el movimiento que deseabamos, si usamos en vez de GamePad a Keyboard, pues podremos hacer lo mismo con nuestro teclado.

Codigo del programa aqui:

Insertando una imagen en XNA

Bueno, aqui viene mi primer cutrotutorial de XNA, voy a dar por sentado que sabeis como funciona el bucle del programa en los juegos, si hubiera algún problema con eso, comentadlo y haré un flashback para que todos esteis al tanto, bien, vamos a por ello.

1.- Abrimos el Visual C# express "obviamente" y creamos un nuevo proyecto, yo le he llamado NinjaVolador

2.- Ahora tenemos nuestra ventana con nuestro proyecto abierto, lo siguiente será importar la imagen que queremos usar, nos dirigimos a la derecha al explorador de soluciones y pulsamos con el boton derecho en el campo Content y marcamos la opción agregar/Elemento Existente



3.- Nos pedirá seleccionar un archivo, este archivo será nuestra imagen, la buscamos y seleccionamos para importarla al proyecto

4.- Vereis que debajo de content aparece nuestra imagen, ¡ya esta lista para ser usada! si tiene un nombre raro, o muy largo podeis cambiarselo haciendole click derecho y pulsando Cambiar Nombre

5.- Ahora toca meterla en el codigo, en nuestra clase game1 "clase de nuestro juego por defecto en xna" declaramos una nueva textura, esto lo hacemos asi:
Texture2D personaje;
He creado un objeto llamado personaje de tipo Texture2D, que es el tipo de las imagenes 2D

6.- Ahora toca asignar la imagén que hemos importado anteriormente a personaje, esto lo hacemos en el metodo LoadContent "es el metodo que carga todo el contenido de nuestro juego" con la siguiente linea:

personaje = Content.Load("Lloyd");

Con esto asigno a personaje una textura2D llamada Lloyd "que es el nombre de mi imagen" y como dato importante, no hace falta la extensión de la imagen "de hecho no sabia antes porque me fallaba y me quebré la cabeza para al final resultar que se ponia sin su extensión.

7.- Lo ultimo de todo es hacer que el metodo Draw pinte la imagen "draw se encarga de pintar lo que nosotros queramos en cada momento", pues en el metodo Draw ponemos lo siguiente:

GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin();
spriteBatch.Draw(personaje, Vector2.Zero, Color.White);
spriteBatch.End();
base.Draw(gameTime);

La primera linea es la que da ese tono azulon tan guapo a los programas de xna por defecto, con spriteBatch.Begin y End indicamos el inicio y final del spriteBatch, dentro pondremos todo lo que queramos pintar en el mismo, en este caso nuestro personaje, el segundo dato es un vector de dos coordenadas X e Y para saber donde pintar nuestro personaje, en este caso esta en Zero "X e Y no tienen valor" para poder poner la imagen en otro sitio simplemente tenemos que crear nuestro vector y darles un valor a X e Y, con el ultimo podemos ponerle un color a nuestra imagen, con White no le asignará ningun color.


8.- Ya queda pulsar F5 y ver el resultado, o darle al botoncito de play





Codigo del proyecto:

viernes, 9 de octubre de 2009

Programa de la semana 4 - TeamSpeak 2


Cuantas veces hemos jugado a un juego en red y nos han matado mientras escribimos en el Chat? Bueno pues con TeamSpeak 2 ese problema esta resuelto. Con este programa podemos hacer un Chat de voz rápidamente, tiene dos partes, cliente y servidor, el cliente se debe instalar en cada ordenador desde el cual queramos hablar, estos clientes se conectan a un servidor y al hablar desde el cliente se transmite al servidor y este a todos los clientes que hay conectados en ese momento.
El programa tiene muchas opciones que podéis trastear, el programa cuando lo descargas esta en ingles pero si el ingles es un problema también hay traducciones al español con sus respectivos sonidos (de chiquito de la calzada y muchos otros)
Para descargar en http://www.teamspeak.org/


viernes, 2 de octubre de 2009

Programa de la semana 3 - AviScreen


Este programa es básicamente un capturador de pantalla, captura tanto videos como fotos de lo que queramos

Su Web es http://www.BoByte.com desde donde nos podemos descargar el programa que por supuesto es freeware

Si tenéis dificultades para manejar el programa podréis ver un completo manual en perfecto ingles pulsando help>>help contens en la barra de menú.

Personalmente es un programa que viene perfecto para grabar en video la pantalla ya que tiene opciones como elegir los fotogramas por segundo y no instala porquería en el sistema, tiene hasta su versión portable, aunque para capturar fotos sueltas prefiero el MWSnap tambien freeware pero en español, lo podéis encontrar en http://www.mirekw.com/winfreeware/mwsnap.html