Java
Editor de Niveles(Updated)
by egyware on May.26, 2011, under Editor, EGa2Dengine, Engine, Java
Hoy en dia (y buscando un motivo y ganas para escribir en mi blog) mostrare el avance que llevo con mi editor de niveles (antiguo visualizador de niveles)
En en video siguiente mostrara algunas de las cosas que ya se pueden hacer.
[yt]XusHlGmVCcA[/yt]
Todavía no he terminado este proyecto, además este video es algo viejo. Actualmente el editor es capaz de hacer lo siguiente.
- Copy/Paste (incluye imagenes hacia/fuera del programa)
- Trabajar con más de un nivel
- Cuadricula y Modo libre
- Zoom
- Cargar/Guardar/Guardar Comoo
- Otras caracteristicas pequeñas
Y más adelante me gustaria implementar (aunque para lograr esto debo trabajarlo conjuntamente con el engine)
- Capas
- Zonas
- Editor de Animaciones
- Scripting
- etc…
Bueno para no aburrirlos más me despido
Saludos nos leemos en el próximo post.
PS: Me gusto mucho el Windows Live Writer para escribir post, solo me falta un spell checker en español porque lo necesito ^^U
Transfiriendo archivos usando Java de la forma incorrecta
by egyware on Abr.12, 2011, under Escritorio Remoto, General, Ideas Locas, Java
Hoy en día les mostrare como transferir archivos en java de la forma incorrecta.
La razón de este artículo es que un amigo me pidió ayuda de cómo transferir archivos a pesar que le dije como hacerlo, no logró hacerlo de la manera correcta(hasta donde yo se). Y por asuntos didácticos dividiré este artículos en dos partes (transfiriendo archivos de manera incorrecta y correcta).
El siguiente código que les mostraré como transferir el archivo de la forma incorrecta, espero que al leerlo se de cuenta de cual es el error.
Primero debemos crear el servidor, primero el código para aceptar una simple conexión
ServerSocket server = new ServerSocket(1234); Socket conexion = server.accept();
Básicamente lo que hacemos es crear un ServerSocket el cual se pone a la escucha en el puerto 1234 (un numero cualquiera pero debe ser superior a 1024). La siguiente linea lo que hace es esperar una conexión (esta función se bloquea hasta que alguien se conecte al puerto abierto) y devolverá un objeto Socket el cual manejará la conexión.
Luego debemos enviar el archivo (de la manera mala)
File transfer = new File("~/archivo pequeño.doc");
FileInputStream fin = new FileInputStream(transfer);
byte datos[] = new byte[fin.available()]; ///noten esto
fin.read(datos);
OutputStream out = conexion.getOutputStream();
out.write(datos);
out.flush();
out.close();
conexion.close();
Básicamente hemos transferido nuestro archivo de mala manera, pero también nos falta recibir nuestro archivo también de mala manera
Socket descargar = new Socket("localhost",1234);
InputStream in = descargar.getInputStream();
byte descarga[] = new bytes[in.avalaible()]; //noten esto
in.read(descarga);
FileOutputStream fout = new FileOutputStream(new File("~/archivo transferido.doc"));
fout.write(descarga);
descargar.close();
En las partes que les mencione en el código (noten esto) se darán cuenta que nuestro programa puede quedarse sin memoria al tratar de transferir un archivo muy grande.
Bueno espero que tengán deduzcan la forma correcta de transferir archivos antes que yo la postee, Saludos!!
Nota:Avisar si hay algún error, hice a la rapida este articulo :S
Usando un poco de reflección con Java
by egyware on Ene.13, 2011, under Java, Reflección
Hola, hace tiempo que no escribiá un articulo en mi blog y bueno hoy les mostraré como crear un objeto en Java.
Alguién: Pero si yo ya sé eso, es facil:
MiClase m = new MiClase();
Yo: Si, pero yo crearé un objeto y además llamaré un metodo usando Reflexión
Para este tutorial omitiremos ciertas cosas, para dar un primer paso con la reflexión y sea más fácil su compresión.
Para empezar necesitaremos una clase para probar la reflexión
public class MiClase{
public MiClase(){
System.out.println("Objeto contruido");
}
public void funcionSimple(){
System.out.println("Funcion Simple");
}
}
Empecemos entonces, como ya todos saben en Java casi todo es una clase (excepto los tipos primitivos, pero tienen una clase para convertir un int en Integer), entonces para nuestro caso necestaremos el objeto del tipo Class de MiClase
Class<?> clase = MiClase.class;
Notese que este metodo no es el unico para obtener la clase de un objeto, existen más que no describire aqui.
Object objecto = clase.newInstance();
Este metodo crea una nueva instancia de la clase que esta contenida en el objeto clase. Seguramente al ejecutar todo hasta aqui se daran cuenta que en la salida estandar dira:
Objeto contruido
que significa que todo esta bien.
Notar que: Esta función solo crea objetos si la clase tiene un contructor por defecto (sin parametros)
Ahora si deseamos llamar a una función sin parametros, la cual debemos obtenerla (todo esto ya se esta volviendo algo complejo)
Method m = clase.getMethod("funcionSimple");La clase Method es una clase especial que nos permitira llamar a cualquier función definida en una clase, en este caso estamos obteniendo la funcion “funcionSimple” de MiClase
Y para finalizar el el tutorial
m.invoke(objeto)
Que llamará la función “funcionSimple” usando el objeto objecto creado anteriormente y al llamar esta funcion nos saldra en la salida estandar
Funcion Simple
El codigo completo de la clase Main con todo seria:
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Clase que realiza toda el trabajo
* @author egyware
*/
public class Main {
public static void main(String[] args) {
try {
Class<?> clase = MiClase.class;
Object objecto = clase.newInstance();
Method m = clase.getMethod("funcionSimple");
m.invoke(objecto);
} catch (IllegalArgumentException ex) {
ex.printStackTrace();
} catch (InvocationTargetException ex) {
ex.printStackTrace();
} catch (NoSuchMethodException ex) {
ex.printStackTrace();
} catch (SecurityException ex) {
ex.printStackTrace();
} catch (InstantiationException ex) {
ex.printStackTrace();
} catch (IllegalAccessException ex) {
ex.printStackTrace();
}
}
}
Como habran notado este tutorial es muy simple, pero les dara un primer acercamiento de como es la Relexión en Java.
Les dejo un link:
Un tutorial de Java: http://download.oracle.com/javase/tutorial/reflect/index.html (Sinceramente nunca lo he visto)










