Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - diego_lp

#41
Mmm...interesante...
Primero que nada muchas gracias por responder.
Entonces tú dices que si simplemente le cambio el nombre tanto al juego como a los personajes bastaría? Es decir, siguiendo con el ejemplo del Mario, si el juego se llama José Pros. y el personaje principal se llama José en lugar de Mario sería suficiente? Porque no creo que Nintendo me dé permiso... :xD
Otra cosa, que pasa con las imágenes? Si yo dibujo mi "José" desde 0 y lo hago igual o parecido al Mario original?
Maldito Copy Right lo detesto... :¬¬
#42
Hola a todos, tengo la siguiente duda y no se en que sección iría:
Si programo un juego, que es un remake de, por ejemplo, Mario Bros.
¿Puedo llegar a tener problemas con nintendo por eso?
Es que estoy empezando un proyecto de juego (pero no de Mario Bros) y quiero saber cómo puedo hacer para que sea 100 % legal ya que está basado en uno que ya existe.
Muchas gracias.
Saludos.
#43
GNU/Linux / Re: Problema de rendimiento con Java
26 Febrero 2011, 16:05 PM
Bueno muchas gracias por las felicitaciones y por tomarte la molestia de probarlo para ver el rendimiento. ;D
Que raro la diferencia de rendimiento entre un sistema y otro  :huh:
Los juegos son todos bucles infinitos asi que creo que es relativamente normal que consuma CPU.
El código no está optimizado  :-[ hay muchas variables que se podrían agrupar en array's por ejemplo pero bueno, no me puse muy exquisito con el código recién empiezo con programación de videojuegos.
import java.awt.image.*;
import java.sql.*;
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
// GTGE
import com.golden.gamedev.*;
import com.golden.gamedev.object.*;
import com.golden.gamedev.object.background.*;
import com.golden.gamedev.object.sprite.*;
import com.golden.gamedev.object.collision.*;
import com.golden.gamedev.util.ImageUtil;
import com.golden.gamedev.engine.audio.*;
//package salvaalcubo;

/**
*
* @author diego_lp
*/
public class Main extends Game {
Timer tiempo;
int puntos;
Timer reloj;
PlayField        playfield;         // the game playfield
Background       background;
SpriteGroup      PLAYER_GROUP;
SpriteGroup      MAPA_GROUP;
SpriteGroup      fuego_grupo;
SpriteGroup      grupo_lateral;
SpriteGroup      BLOQUES;
SpriteGroup      estrellas;
AnimatedSprite              caja;
Sprite              bloque;
Sprite              laterali;
Sprite              laterald;
CollisionManager colision;
CollisionManager colisionLateral;
CollisionManager colisionfuego;
CollisionManager colisionestrellas;
GameFont           fuente;
double gravedad;
int segundos=0;
Sprite[] spritesBloques;
int indice = 0;
int x;
int milisegundos = 0;
double speedX = 0;
double speedY = 0.1;
Sprite  piso;
Sprite  techo;
Sprite  estrella;
AnimatedSprite     rayo;
AnimatedSprite     rayo1;
AnimatedSprite     rayo2;
AnimatedSprite     rayo3;
AnimatedSprite     rayo4;
AnimatedSprite     rayo5;
AnimatedSprite     rayo6;
AnimatedSprite     rayo7;
AnimatedSprite     rayo8;
AnimatedSprite     rayo9;
AnimatedSprite     explosion;
AnimatedSprite     explosion1;
AnimatedSprite     explosion2;
AnimatedSprite     explosion3;
AnimatedSprite     explosion4;
AnimatedSprite     explosion5;
AnimatedSprite     explosion6;
AnimatedSprite     explosion7;
String mensaje="";
boolean perdiste=false;
String nombre="";
int estrellaX;
int estrellaY;


    /**
     * @param args the command line arguments
     */
//    @Override
protected void initEngine() {
    super.initEngine();

    // set sound effect to use mp3
    //bsSound.setBaseRenderer(new JavaLayerMp3Renderer());
    //bsSound.setBaseRenderer(new JavaLayerMp3Renderer());

    // set music to use mp3
    bsMusic.setBaseRenderer(new JavaLayerMp3Renderer());
  }
    public void initResources() {
        //setFPS(30);
        playMusic("resources/ridaz.mp3");
        reloj= new Timer(20);
        fuente = fontManager.getFont(getImages("resources/font.png", 20, 3),
                                   " !            .,0123" +
                                   "456789:   -? ABCDEFG" +
                                   "HIJKLMNOPQRSTUVWXYZ ");
        tiempo = new Timer(1000);
        spritesBloques = new Sprite[20];
        playfield = new PlayField();
        //background = new ColorBackground(Color.BLACK,800,600);
        background = new ImageBackground(getImage("resources/fondo.jpeg"), 800, 600);
        playfield.setBackground(background);
        //caja = new Sprite(getImage("resources/caja.jpeg"), 400, 100);
        caja = new AnimatedSprite(getImages("resources/blob_final.png",6,2), 400, 100);
        caja.setAnimate(true);
        caja.setLoopAnim(true);
        //bloque = new Sprite(getImage("resources/piso.jpeg"), 400, 500);
        laterali = new Sprite(getImage("resources/lateral.png"), 100, 0);
        BufferedImage img = ImageUtil.getImage( bsIO.getURL( "resources/estrella.png" ), Transparency.TRANSLUCENT );
       
        estrella = new Sprite(img, 1000, 200);
        //estrella.setActive(false);
       
        laterald = new Sprite(getImage("resources/lateral.png"), 650, 0);
        explosion = new AnimatedSprite(getImages("resources/exp2_0.png",4,4), 150, 550);
        explosion.setAnimationFrame(0, 11);
        explosion.setAnimate(true);
        explosion.setLoopAnim(true);
        explosion1 = new AnimatedSprite(getImages("resources/exp2_0.png",4,4), 210, 550);
        explosion.setAnimationFrame(0, 11);
        explosion1.setAnimate(true);
        explosion1.setLoopAnim(true);
        explosion2 = new AnimatedSprite(getImages("resources/exp2_0.png",4,4), 270, 550);
        explosion.setAnimationFrame(0, 11);
        explosion2.setAnimate(true);
        explosion2.setLoopAnim(true);
        explosion3 = new AnimatedSprite(getImages("resources/exp2_0.png",4,4), 330, 550);
        explosion.setAnimationFrame(0, 11);
        explosion3.setAnimate(true);
        explosion3.setLoopAnim(true);
        explosion4 = new AnimatedSprite(getImages("resources/exp2_0.png",4,4), 390, 550);
        explosion.setAnimationFrame(0, 11);
        explosion4.setAnimate(true);
        explosion4.setLoopAnim(true);
        explosion5 = new AnimatedSprite(getImages("resources/exp2_0.png",4,4), 450, 550);
        explosion.setAnimationFrame(0, 11);
        explosion5.setAnimate(true);
        explosion5.setLoopAnim(true);
        explosion6 = new AnimatedSprite(getImages("resources/exp2_0.png",4,4), 510, 550);
        explosion.setAnimationFrame(0, 11);
        explosion6.setAnimate(true);
        explosion6.setLoopAnim(true);
        explosion7 = new AnimatedSprite(getImages("resources/exp2_0.png",4,4), 570, 550);
        explosion.setAnimationFrame(0, 11);
        explosion7.setAnimate(true);
        explosion7.setLoopAnim(true);

        rayo = new AnimatedSprite(getImages("resources/shock.png",4,8), 150, 0);
        rayo.setAnimationFrame(0, 3);
        rayo.setAnimate(true);
        rayo.setLoopAnim(true);
        rayo1 = new AnimatedSprite(getImages("resources/shock.png",4,8), 200, 0);
        rayo1.setAnimationFrame(0, 3);
        rayo1.setAnimate(true);
        rayo1.setLoopAnim(true);
        rayo2 = new AnimatedSprite(getImages("resources/shock.png",4,8), 250, 0);
        rayo2.setAnimationFrame(0, 3);
        rayo2.setAnimate(true);
        rayo2.setLoopAnim(true);
        rayo3 = new AnimatedSprite(getImages("resources/shock.png",4,8), 300, 0);
        rayo3.setAnimationFrame(0, 3);
        rayo3.setAnimate(true);
        rayo3.setLoopAnim(true);
        rayo4 = new AnimatedSprite(getImages("resources/shock.png",4,8), 350, 0);
        rayo4.setAnimationFrame(0, 3);
        rayo4.setAnimate(true);
        rayo4.setLoopAnim(true);
        rayo5 = new AnimatedSprite(getImages("resources/shock.png",4,8), 400, 0);
        rayo5.setAnimationFrame(0, 3);
        rayo5.setAnimate(true);
        rayo5.setLoopAnim(true);
        rayo6 = new AnimatedSprite(getImages("resources/shock.png",4,8), 450, 0);
        rayo6.setAnimationFrame(0, 3);
        rayo6.setAnimate(true);
        rayo6.setLoopAnim(true);
        rayo7 = new AnimatedSprite(getImages("resources/shock.png",4,8), 500, 0);
        rayo7.setAnimationFrame(0, 3);
        rayo7.setAnimate(true);
        rayo7.setLoopAnim(true);
        rayo8 = new AnimatedSprite(getImages("resources/shock.png",4,8), 550, 0);
        rayo8.setAnimationFrame(0, 3);
        rayo8.setAnimate(true);
        rayo8.setLoopAnim(true);
        rayo9 = new AnimatedSprite(getImages("resources/shock.png",4,8), 585, 0);
        rayo9.setAnimationFrame(0, 3);
        rayo9.setAnimate(true);
        rayo9.setLoopAnim(true);
        techo = new Sprite(getImage("resources/fuego.png"), 150, 0);
        piso = new Sprite(getImage("resources/fire.jpg"), 150, 570);
        grupo_lateral = new SpriteGroup("lateral");
        PLAYER_GROUP = new SpriteGroup("Player");
        BLOQUES = new SpriteGroup("Bloques");
        estrellas = new SpriteGroup("estrellas");
        fuego_grupo = new SpriteGroup("fuego");
        estrellas.add(estrella);
        playfield.addGroup(PLAYER_GROUP);
        playfield.addGroup(BLOQUES);
        playfield.addGroup(grupo_lateral);
        playfield.addGroup(fuego_grupo);
        playfield.addGroup(estrellas);
        PLAYER_GROUP.add(caja);
        grupo_lateral.add(laterali);
        grupo_lateral.add(laterald);
        fuego_grupo.add(piso);
        estrellas.add(estrella);
//        fuego_grupo.add(techo);
        fuego_grupo.add(rayo);
        fuego_grupo.add(rayo1);
        fuego_grupo.add(rayo2);
        fuego_grupo.add(rayo3);
        fuego_grupo.add(rayo4);
        fuego_grupo.add(rayo5);
        fuego_grupo.add(rayo6);
        fuego_grupo.add(rayo7);
        fuego_grupo.add(rayo8);
        fuego_grupo.add(rayo9);
        fuego_grupo.add(explosion);
        fuego_grupo.add(explosion1);
        fuego_grupo.add(explosion2);
        fuego_grupo.add(explosion3);
        fuego_grupo.add(explosion4);
        fuego_grupo.add(explosion5);
        fuego_grupo.add(explosion6);
        fuego_grupo.add(explosion7);
        //BLOQUES.add(bloque);
        spritesBloques[indice] = new Sprite(getImage("resources/piso.jpeg"), 300, 650);
        BLOQUES.add(spritesBloques[indice]);
        indice++;
    }

    public void update(long elapsedTime) {
        if (tiempo.action(elapsedTime)){
            segundos++;
            if ((estrella.getX()==1000 && (aleatorio(20,0)==5 || speedY>0.2)) ){
                int x;
                do{
                    x=aleatorio(500,200);
                }while(x>caja.getX()-100 && x<caja.getX()+100);
                estrella.setX(x);
                estrella.setY(aleatorio(400,200));
                playSound("resources/spell3.wav");
                //estrella.setActive(true);
//                estrella.update(elapsedTime);
            }
            //System.out.println(speedY);
            System.out.println(estrella.getX());
            if (estrella.isActive()){
                System.out.println();
            }
        }
               
        if (reloj.action(elapsedTime)){
            if (!perdiste){
                puntos++;
            }
             

    if (indice>19){
        indice=0;
    }
        //Random rand = new Random();
        //int x = rand.nextInt(100);

if (keyDown(KeyEvent.VK_ENTER) && perdiste){
            mensaje="";
            perdiste=false;
            puntos=0;
            segundos=0;
            speedX = 0;
            //speedY = 0;
            speedY = 0.1;
            gravedad=0;
            milisegundos=0;
            initResources();
            caja.setActive(true);
        }

        if (aleatorio(9,0)==5 && puntos-milisegundos>50){
             spritesBloques[indice] = new Sprite(getImage("resources/piso.jpeg"), aleatorio(500,150), 650);
             BLOQUES.add(spritesBloques[indice]);
             indice++;
             milisegundos=puntos;
        }
           

           

        speedX = 0;
        speedY=speedY + 0.0001;
        gravedad = gravedad + 0.005;
        if (!keyDown(KeyEvent.VK_LEFT) && !keyDown(KeyEvent.VK_RIGHT)){
            caja.setAnimate(false);
            caja.setFrame(0);
        }
        if (keyDown(KeyEvent.VK_LEFT)){
            speedX = -0.15;
            caja.setAnimationFrame(6, 11);
            caja.setAnimate(true);
            caja.setLoopAnim(true);
        }
        if (keyDown(KeyEvent.VK_RIGHT)){
            speedX = 0.15;
            caja.setAnimationFrame(0, 5);
            caja.setAnimate(true);
            caja.setLoopAnim(true);
        }
        //bloque.setVerticalSpeed(-speedY);
        int i;
        for (i=0;i<spritesBloques.length;i++){
            if (spritesBloques[i] != null){
                spritesBloques[i].setVerticalSpeed(-speedY);
            }
           
        }
       
        colision=new ColisionEntreCajaYBloque();
        colision.setCollisionGroup(PLAYER_GROUP, BLOQUES);
        colision.checkCollision();

        colisionLateral=new ColisionEntreCajaYPared();
        colisionLateral.setCollisionGroup(PLAYER_GROUP, grupo_lateral);
        colisionLateral.checkCollision();
       
        colisionfuego=new ColisionEntreCajaYfuego();
        colisionfuego.setCollisionGroup(PLAYER_GROUP, fuego_grupo);
        colisionfuego.checkCollision();
       
        colisionfuego=new ColisionEntreCajaYestrella();
        colisionfuego.setCollisionGroup(PLAYER_GROUP, estrellas);
        colisionfuego.checkCollision();

        caja.setHorizontalSpeed(speedX);
        caja.setVerticalSpeed(gravedad);
        leernombre();

    playfield.update(elapsedTime);
}
    }

    public void render(Graphics2D g) {
        playfield.render(g);
        if (segundos<60){
            fuente.drawString(g,  String.valueOf(segundos), 5, 30);
        }else{
            int seg=0;
            int min=0;
            min=Math.round(segundos / 60);
            seg=segundos-(min*60);
            fuente.drawString(g, "TIEMPO: " + String.valueOf(min) + ":" + String.valueOf(seg), 5, 30);
        }
        fuente.drawString(g, "PUNTOS: " + String.valueOf(puntos) , 5, 50);
        fuente.drawString(g, mensaje , 100, 300);
        fuente.drawString(g, nombre , 10, 500);
    }
    public static void main(String[] args) {
        // TODO code application logic here
        GameLoader game = new GameLoader();
        game.setup(new Main(), new Dimension(800,600), false);
        game.start();
    }
public class ColisionEntreCajaYBloque extends CollisionGroup {
        public void collided (Sprite s1, Sprite s2){
            this.pixelPerfectCollision = true;
             if (getCollisionSide()==8){
                 s1.setY(s2.getY()-30);
                 gravedad=0;
//                  if (keyDown(KeyEvent.VK_SPACE)){
//                    gravedad=-0.15;
//                  }
             }
        }
    }
public class ColisionEntreCajaYfuego extends BasicCollisionGroup {
        public void collided (Sprite s1, Sprite s2){
            this.pixelPerfectCollision = true;
            //cuando entra aca pierde
            perdiste=true;
            mensaje="PUNTOS: " + String.valueOf(puntos) + ", PRESIONA ENTER PARA REINICIAR";
            caja.setActive(false);
        }
    }
public class ColisionEntreCajaYestrella extends BasicCollisionGroup {
        public void collided (Sprite s1, Sprite s2){
            this.pixelPerfectCollision = true;
            //cuando entra aca pierde
            s2.setX(1000);
            speedY=0.1;
         
        }
    }
public class ColisionEntreCajaYPared extends CollisionGroup {
        public void collided (Sprite s1, Sprite s2){
            this.pixelPerfectCollision = true;
             if (getCollisionSide()==2){
                 speedX=0;
                 s1.setX(s1.getOldX());
             }
             if (getCollisionSide()==1){
                 speedX=0;
                 s1.setX(s1.getOldX());
             }
        }
    }
public static int aleatorio(int max,int min){
return (int)(Math.random()*(max-min))+min;
}
public void leernombre(){
    if (keyPressed(KeyEvent.VK_A)){
        nombre=nombre + "A";
    }
    if (keyPressed(KeyEvent.VK_B)){
       nombre=nombre + "B";
    }
    if (keyPressed(KeyEvent.VK_C)){
       nombre=nombre + "C";
    }
    if (keyPressed(KeyEvent.VK_D)){
        nombre=nombre + "D";
    }
    if (keyPressed(KeyEvent.VK_E)){
        nombre=nombre + "E";
    }
    if (keyPressed(KeyEvent.VK_F)){
        nombre=nombre + "F";
    }
    if (keyPressed(KeyEvent.VK_G)){
        nombre=nombre + "G";
    }
    if (keyPressed(KeyEvent.VK_H)){
        nombre=nombre + "H";
    }
    if (keyPressed(KeyEvent.VK_I)){
       nombre=nombre + "I";
    }
    if (keyPressed(KeyEvent.VK_J)){
        nombre=nombre + "J";
    }
    if (keyPressed(KeyEvent.VK_K)){
        nombre=nombre + "K";
    }if (keyPressed(KeyEvent.VK_L)){
        nombre=nombre + "L";
    }
    if (keyPressed(KeyEvent.VK_M)){
        nombre=nombre + "M";
    }
    if (keyPressed(KeyEvent.VK_N)){
        nombre=nombre + "N";
    }
    if (keyPressed(KeyEvent.VK_O)){
        nombre=nombre + "O";
    }
    if (keyPressed(KeyEvent.VK_P)){
        nombre=nombre + "P";
    }
    if (keyPressed(KeyEvent.VK_Q)){
        nombre=nombre + "Q";
    }
    if (keyPressed(KeyEvent.VK_R)){
        nombre=nombre + "R";
    }
    if (keyPressed(KeyEvent.VK_S)){
        nombre=nombre + "S";
    }
    if (keyPressed(KeyEvent.VK_T)){
        nombre=nombre + "T";
    }
    if (keyPressed(KeyEvent.VK_U)){
        nombre=nombre + "U";
    }
    if (keyPressed(KeyEvent.VK_V)){
        nombre=nombre + "V";
    }
    if (keyPressed(KeyEvent.VK_W)){
        nombre=nombre + "W";
    }
    if (keyPressed(KeyEvent.VK_X)){
        nombre=nombre + "X";
    }
    if (keyPressed(KeyEvent.VK_Y)){
        nombre=nombre + "Y";
    }
    if (keyPressed(KeyEvent.VK_Z)){
        nombre=nombre + "Z";
    }
    if (keyPressed(KeyEvent.VK_DELETE)){
        nombre=nombre.substring(0, nombre.length()-1);
    }
}
}

De nuevo muchas gracias por tomarte la molestia, no debe ser problema de mi pc entonces.
#44
GNU/Linux / Problema de rendimiento con Java
24 Febrero 2011, 00:18 AM
Hola a todos, estoy empezando con programación de videojuegos en Java.
Estoy empezando un remake clasico que va bien, el problema es que en mi sistema operativo (Kubuntu 10.04.1 x64) me tira apenas 25 fps, mientras que si lo ejecuto en una maquina virtual que tengo en el vmware con windows xp me tira 75 fps que son los que yo configuré en el juego.
Primero que nada quisiera saber si es un problema mío o si será general para todos los sistemas Linux, por lo que publiqué el "juego" en un aplet para que quien pueda lo pruebe y me confirme si el problema de rendimiento es mio o no, y en caso de ser sólo yo tal vez alguien me pueda dar una mano.
Para acceder al juego: http://juego.net46.net/web/juego.html
Espero alguien pueda probarlo.
Muchas gracias.
Saludos.
#45
Java / Sockets
16 Febrero 2011, 19:22 PM
Hola a todos, estoy intentando crear una aplicación cliente-servidor, el problema es que no logro hacer que funcione correctamente.
Necesito que alguien me de una mano.
Necesito un ejemplo muy sencillo de código de cliente y servidor, en donde el cliente se conecte al servidor, le envía un mensaje, el servidor lea el mensaje y se lo devuelva al cliente.
Estoy hace horas intentándolo pero no hasta ahora me doy cuenta de que el servidor que logré hacer andar no funciona con más de un cliente, y yo necesito que le responda al cliente que le manda el mensaje entre todos los clientes que hallan conectados en ese momento.
Bueno espero que alguien me pueda ayudar un poco, estoy algo perdido en java.
Muchas gracias a todos.
Saludos.
#46
Muchas gracias a todos, ¿como hago para saber cual es el handle de la ventana/control?
#47
El sendkeys envía el texto nada mas, yo necesito trabajar a más bajo nivel para que realmente presione una tecla, no se si se podrá en .Net.
El SendMessage no sé como usarlo y en google solo encuentro paginas en ingles con las que no me llevo muy bien, podrías poner un ejemplo simple para probarlo?
Muchas gracias a todos.
#48
No entendí  :-\
Yo no quiero captar una pulsacion del teclaro, sino justamente lo contrario, generarla desde código.
Gracias por contestar.
#49
Hola a todos, estoy intentando crear una aplicacion que genere las pulsaciones del teclaro.
Eh probado con el metodo SendKeys.Send(Chr(Keys.W)) para emular la pulsacion de la W pero solo funciona si el foco lo tengo en un campo de texto, por lo que en realidad lo que esta haciendo es mandar solo el caracter precionado, pero no la tecla en sí.
Hay alguna forma de enviar la pulsacion?
Muchas gracias.
Saludos.
#50
Claro, entiendo que lo de que aparezcan las imagenes o no es cuestion de la configuracion de cada usuario, lo raro es que si envio el codigo desde la propia pagina de gmail sí se abre directamente, por eso es que debe hacer algo que hace gmail cuando le pego el codigo html para que la imagen quede habilitada directamente.
Lo de los combos no lo se bien, es un ajax que baje y modifique, y la verdad que no sé mucho de eso, pero si al menos encontrara la manera de saber por medio de php de qué pagina se llego a la actual podría recargar toda la pagina si es necesario.