Anuncios Google

Duda Java

Estoy portando mi Pong de PSP a Android y hay una cosa que no se hacer...

¿Como puedo hacer para que la pala siga la pelota?

Para PSP seria algo asi:

function seguir(obj1,obj2,velocidad)
                    if obj1.y-obj2.y>0 then obj2.y=obj2.y+velocidad end
                    if obj2.y-obj1.y>0 then obj2.y=obj2.y-velocidad end
    end

Pero en java, ni idea...




Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

No te ofendas, pero te hacen

No te ofendas, pero te hacen falta conocimientos muy básicos de Java para poder portar esa función:

  • En java no puedes usar índices que no sean numéricos en los arrays, así que hacer objeto.variable directamente no va ser posible.
  • Las funciones se declaran muy parecido, pero siempre debes indicar el tipo de variable para los argumentos, así como de la función.

Una solución súper sencilla es hacer esto:

  • Para cada objeto crear un array, almacenando los valores de "x" en la primera entrada y los de "y" en la segunda. En pocas palabras, tendrás que "x" está en tuArray[0] y "y" en tuArray[1].
  • Modificar la función, poniendo array1[0] en lugar de obj1.x y array1[1] en lugar de obj1.y (lo mismo para el otro objeto).

EDITO: Hay otra forma de portar esa función, y queda muy parecida a Lua.

  • Necesitas crear una clase nueva, y declarar las variables que usarás. Quedaría algo como
    package tuPackage;
     
    public class Global {
    	int x,y;
    }

    Nótese que no les dí valores iniciales, sólo las declaré, y que la clase se llama Global.
  • Ahora, en tu clase principal crea copias de esa clase, una para cada objeto:
    Global copia1 = new Global();  //Hago la copia
    //Y le doy valores iniciales...
    copia1.x = 50;
    copia1.y = 0;

    Es importante dar valores iniciales antes de tratar de sumarle o restarle, ya que más adelante podría dar error o hacer cosas raras xD.
  • Y la función quedaría declarada casi como la de Lua, pero especificando que los argumentos son de tipo Global (la clase que creaste primero):
    void seguir(Global obj1,Global obj2,int velocidad){  //void, porque no regresará ningún valor
      if (obj1.y-obj2.y>0)
        obj2.y=obj2.y+velocidad;
     
      if (obj2.y-obj1.y>0)
        obj2.y=obj2.y-velocidad;
    }
Imagen de Tutos14

Gracias por la molestia, pero

Gracias por la molestia, pero me ha dado una pereza derrepente...
No encuentro ningun tuto encondiciones para aprender bien.
Un saludo



Imagen de Conjo

¿Para Java o Java for Android?

para java aqui hay unos videotutoriales: http://www.youtube.com/user/niktutos/videos

Y para Java For Android tengo esto: http://www.sgoliver.net/blog/?p=1313

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.