martes, 24 de noviembre de 2015

Cosas que necesitamos para crear un Juego en Java

Crear un juego en Java es más fácil de lo que creemos, en este post vamos a ver las cosas que necesitamos antes de empezar a hacerlo.

Vamos a hacerlo cómo con una lista para que lo entendamos mejor:

1º- Necesitamos una idea, saber lo que queremos hacer, quizás lo más difícil de todo. A la hora de pensar cómo será nuestro juego, que tendrá, de que forma, etc, es donde podemos tener los problemas mas grandes.

2º- Una vez que ya sabemos que queremos hacer lo que nos hace falta es el sitio donde hacerlo, nos hace falta un IDE que no es ni más ni menos que un sitio para programar. Para Java yo siempre recomiendo Bluej que es muy sencillo y nos sirve para poder aprender, si ya somos usuarios más avanzados y queremos algo más completo recomiendo usar Eclipse

3º- Una vez que ya sabemos que tenemos que hacer y donde lo vamos a hacer lo que tenemos que hacer es cómo un diseño del juego, diferenciar la parte lógica de la parte gráfica del juego. En Bluej es bastante sencillo, tendríamos que crear unas clases que se encargarían de los personajes, escenario, etc y luego otra que se encargaría de la parte gráfica, de crear la ventana, poner las imágenes etc.

4º- Programar todo lo que hemos pensado en la parte anterior, sería el momento de crear el código, que si sabemos programar es lo mas sencillo, pero si no sabemos basta con ir siguiendo está página y muchos post anteriores donde vamos haciendo muchas cosas que nos pueden servir para crear un juego.

5º- Probar que todo funcione bien y listo, ya tenemos nuestro juego!!


Siguiendo estos pequeños consejos veréis cómo es muy sencillo crear un juego en Java, muy pronto espero poder hacer uno sencillo y ponerlo aquí en la página con todo su código fuente para que lo podáis ver, analizar, modificar, etc, ya que viendo ejemplos es cómo mejor se aprenden y entienden las cosas.

Cualquier pregunta, comentario, crítica, chiste o lo que sea jajaja, no dudéis en ponerlo en los comentarios.


jueves, 19 de noviembre de 2015

Pseudocódigo

En programación podemos definir pseudocódigo cómo "una forma de escribir código, pero sin ser código realmente". 

El pseudocódigo sería cómo código escrito con lenguaje de andar por casa para facilitar su lectura y poder ver mejor estructuras, funciones, métodos, etc para posteriormente pasarlo a código real en el lenguaje que queramos. 

Esa es una de las grandes ventajas que tiene utilizar pseudocódigos a la hora de realizar un gran proyecto, un programa escrito en pseudocódigo debe ser fácilmente traducible a un lenguaje de programación por personas que sepan esos lenguajes.

Por todo ello, un ingeniero de software puede "crear", por así decirlo, el proyecto y luego son los programadores los que lo traducen al lenguaje necesario.


Un ejemplo de pseudocódigo sería el siguiente:

fun RecProfundidad (v: nodo, visitado: Vector)
     var
          w:nodo
     fvar
     
     visitado[v]<--cierto

     para cada w adyacente a v hacer
          si no visitado [w] entonces
                      RecProfundidad(w, visitado)
          fsi
     fpara
ffun


Cómo vemos es una función que se puede utilizar para recorrer grafos, matrices, vectores, etc, pero que no está en ningún lenguaje específico de programación, cómo he dicho antes está cómo en lenguaje de andar por casa para que se entienda fácilmente y así podamos traducirlo al lenguaje que queramos.

Si tenéis alguna duda o queréis profundizar más sobre pseudocódigo no dudéis en ponerlo en los comentarios.


miércoles, 4 de noviembre de 2015

Cuadro de Texto con JTextArea en Java

Vamos a ver lo fácil que es añadir a nuestras ventanas un cuadro de texto utilizando para ello JTextArea.

Para comenzar, lo primero que tenemos que hacer es tener la ventana en la que queremos poner nuestro cuadro de texto. Aunque abajo tenéis el código fuente completo de la ventana ya con el cuadro de texto sería recomendable que mirarais Crear una Ventana en Java con Bluej, una vez que tengáis claro cómo se hace la ventana y cómo se le pueden añadir elementos basta con añadir unas pocas líneas de código para insertarle el cuadro de texto.

En concreto las líneas que nos van a permitir crear y dar características a nuestro cuadro de texto son las siguientes:

Para crearlo:

private JTextArea textarea1;


Para modificar sus características a nuestro antojo:

textarea1 = new JTextArea();
textarea1.setBounds(81,66,150,100);
textarea1.setBackground(new Color(255,255,255));
textarea1.setForeground(new Color(0,0,0));
textarea1.setEnabled(true);
textarea1.setFont(new Font("sansserif",0,12));
textarea1.setText("JuegoSoftware.com");
textarea1.setBorder(BorderFactory.createBevelBorder(1));
textarea1.setVisible(true);


Y finalmente para añadirlo al panel que contiene la ventana:

contentPane.add(textarea1);


Cómo veis sólo son 11 líneas de código las que nos costará añadir un cuadro de texto a nuestra aplicación. 

Os dejo una captura de pantalla para que veáis cómo queda y debajo ya os pongo el código completo de la ventana con el cuadro de texto:

JTextArea en Bluej
Cuadro de Texto con JTextArea

Código Fuente:

import javax.swing.UIManager.LookAndFeelInfo;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import javax.swing.border.Border;
import javax.swing.*;


public class GUI_project extends JFrame {

private JTextArea textarea1;

//Constructor 
public GUI_project(){

this.setTitle("GUI_project");
this.setSize(500,400);

//pane with null layout
JPanel contentPane = new JPanel(null);
contentPane.setPreferredSize(new Dimension(500,400));
contentPane.setBackground(new Color(192,192,192));


textarea1 = new JTextArea();
textarea1.setBounds(81,66,150,100);
textarea1.setBackground(new Color(255,255,255));
textarea1.setForeground(new Color(0,0,0));
textarea1.setEnabled(true);
textarea1.setFont(new Font("sansserif",0,12));
textarea1.setText("JuegoSoftware.com");
textarea1.setBorder(BorderFactory.createBevelBorder(1));
textarea1.setVisible(true);

//adding components to contentPane panel
contentPane.add(textarea1);

//adding panel to JFrame and seting of window position and close operation
this.add(contentPane);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.pack();
this.setVisible(true);
}

public static void main(String[] args){
System.setProperty("swing.defaultlaf", "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
new GUI_project();
}
});
}

}



Cualquier cosa ya sabéis, a los comentarios sin dudarlo ;)

domingo, 1 de noviembre de 2015

Poner una etiqueta en Java con JLabel

En este post vamos a poner una etiqueta en una ventana usando JLabel.

Las etiquetas sirven para poner comentarios, identificar ciertos elementos, poner la versión en una esquina, o para cualquier otra cosa que se nos ocurra.

Aquí vamos a poner el código completo de una ventana con una etiqueta usando JLabel. Es muy sencillo y una vez que tenemos la ventana (Crear una Ventana en Java con Bluej) basta con añadir las siguientes líneas de código:

Para crear nuestra etiqueta de nombre label1:

private JLabel label1;  



Para inicializar la etiqueta y otorgarle sus características (que podemos modificar a nuestro gusto):


label1 = new JLabel();
label1.setBounds(150,82,90,35);
label1.setBackground(new Color(214,217,223));
label1.setForeground(new Color(0,0,0));
label1.setEnabled(true);
label1.setFont(new Font("sansserif",0,12));
label1.setText("Etiqueta");
label1.setVisible(true);



Para añadirla al panel (en este caso es un panel, pero se puede añadir a muchísimos objetos más):

contentPane.add(label1);


Con estas líneas ya tenemos lista nuestra etiqueta para poder usarla, os pongo una imagen para que veáis cómo queda con esas características que le hemos puesto:

JLabel con Bluej
Etiqueta en Java con JLabel

Y finalmente aquí os dejo el código completo. Está suficientemente comentado pero cualquier cosa no dudéis en ponerla en los comentarios.




Código Fuente:



import javax.swing.UIManager.LookAndFeelInfo;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import javax.swing.border.Border;
import javax.swing.*;


public class GUI_project extends JFrame {

private JLabel label1;

//Constructor 
public GUI_project(){

this.setTitle("JuegoSoftware.com");
this.setSize(500,400);
//pane with null layout
JPanel contentPane = new JPanel(null);
contentPane.setPreferredSize(new Dimension(500,400));
contentPane.setBackground(new Color(192,192,192));


label1 = new JLabel();
label1.setBounds(150,82,90,35);
label1.setBackground(new Color(214,217,223));
label1.setForeground(new Color(0,0,0));
label1.setEnabled(true);
label1.setFont(new Font("sansserif",0,12));
label1.setText("Etiqueta");
label1.setVisible(true);

//adding components to contentPane panel
contentPane.add(label1);

//adding panel to JFrame and seting of window position and close operation
this.add(contentPane);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.pack();
this.setVisible(true);
}

public static void main(String[] args){
System.setProperty("swing.defaultlaf", "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
new GUI_project();
}
});
}

}