User Tag List

Página 2 de 2 PrimerPrimer 12
Resultados 16 al 18 de 18

Tema: Gurus de Java, yo os invoco!

  1. #16

    Fecha de ingreso
    Jul 2004
    Ubicación
    Algún lugar al sur de Londres
    Mensajes
    25,977
    Mencionado
    39 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    709
    Agradecer Thanks Received 
    736
    Thanked in
    Agradecido 385 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    30
    Cita Iniciado por jduranmaster Ver mensaje
    ya se que no es de thread, y creo que tampoco es de Graphics, ni de Graphics2D, pero mi pregunta es, debes de tener de algun componente gráfico donde pintas el sprite o llama a un metodo de enemigo/animación o algo así..... porque no haces un reapaint() de ese objeto (a lo mejor has usado un canvas o alguna cosa por el estilo)
    El repaint se hace en el Main, que es el que crea un JFrame sobre el que se dibuja toda la escena, de ahí procede el Graphics2D. De hecho, ninguna de las clases que uso salvo el Main usa "repaint()".
    < - >
    Creo que se me ha ocurrido una manera de hacerlas sin tener que recurrir a nuevos hilos ni a herencias. Seguramente no será una forma tan óptima, pero funcionará (o debería xDDD)
    Última edición por neostalker; 14/02/2011 a las 21:17 Razón: Edición automática anti doble-post.

  2. #17

    Fecha de ingreso
    Mar 2007
    Ubicación
    Barna
    Mensajes
    10,617
    Mencionado
    94 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    472
    Agradecer Thanks Received 
    2,111
    Thanked in
    Agradecido 1,111 veces en [ARG:2 UNDEFINED] posts
    Mi pregunta iba porque el Graphics2D va asociado a algún contexto/componente/bitmap/loquesea. No te lo puedes sacar de la manga así como así. ¿De dónde sale? Y como dice jduranmaster ¿Quién llama al repaint() de quien sea que tenga asociado ese Graphics2D?

    Lo más normal es que el Graphics2D no se vuelque en la pantalla hasta que llames al repaint() del componente correspondiente. Mientras, estarás dibujando en el buffer interno y no verás nada en la pantalla.

    ¿Y no será que cuando llamas al repaint() borras toda la pantalla, pones un fondo o lo que sea, y por tanto te cargas todo lo que hayas dibujado antes?

    Por cierto, intenta dibujar todo en el mismo thread. De hecho, cuantos menos threads tengas casi que mejor. Idealmente uno solo, el principal.
    Última edición por juanvvc; 14/02/2011 a las 23:12

  3. #18

    Fecha de ingreso
    Jul 2004
    Ubicación
    Algún lugar al sur de Londres
    Mensajes
    25,977
    Mencionado
    39 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    709
    Agradecer Thanks Received 
    736
    Thanked in
    Agradecido 385 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    30
    Vale, ya lo he conseguido. He tenido que modificar las clases un poco para poder controlar ciertas cosas nuevas (como por ejemplo retrasar el borrado del enemigo golpeado de la cola de enemigos hasta que acabe la animación, etc) y al final sin tener que usar un thread, por lo que todo se pinta en la pantalla desde el Main.

    Gracias por vuestros esfuerzos a todos

Página 2 de 2 PrimerPrimer 12

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •