elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Como dibujar rectangulos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Como dibujar rectangulos  (Leído 12,013 veces)
pereb

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Como dibujar rectangulos
« en: 22 Abril 2008, 21:29 pm »

Mi problema es el siguiente:
Creo una clase padre con un constructor de objetos de dos variables x y para la posición y necesito un metodo pintar para que dibuje un rectangulo con la posición x  y las dimensiones de los rectangulo son fijas.
Este metodo debe ser llamado desde la clase principal desde donde he creado objetos a partir de esta clase y lo he metido en un ArryList y despues recorro el arralist y quiero pintar en pantalla los rectangulos contenidos en el con un metodo situado en la clase padre como por ejemplo padere.pinta()
He probado a poner en la clase padre:

public  void pinta(Graphics g) {
       
        g.setColor(Color.RED);
        g.fillRect(x, y, 40, 40);
     
    }

Pero no obtengo ningún resultado.


En línea

Burnhack


Desconectado Desconectado

Mensajes: 559


Hackers always fight


Ver Perfil WWW
Re: Como dibujar rectangulos
« Respuesta #1 en: 22 Abril 2008, 21:36 pm »

Como vi esta duda tuya, tenia yo este code mio que aun no esta acabado pero para que veas como dibujar un rectangulo y veas mas o menos lo que te hace falta , acabo de poner ahi un applet del que puedes ver algo que te interesa

http://foro.elhacker.net/index.php/topic,209345.0.html


En línea




Cuentas Premium Gratis aquí

Petición partidos fútbol, F1, tenis, baloncesto...
aquí
sapito169


Desconectado Desconectado

Mensajes: 591



Ver Perfil
Re: Como dibujar rectangulos
« Respuesta #2 en: 24 Abril 2008, 07:18 am »

mira el metodo pinta no sirve Debes usar el metodo paint
y ademas al metodo paint no puede recivir ninguna variable
lo que Debes  hacer es esto

usrar constantes
Código:
public  void [size=10pt]paint[/size] (Graphics g) {
        g.setColor(Color.RED);
        g.fillRect([size=10pt]40[/size], [size=10pt]40[/size], 40, 40);
     
    }
si no quieres usar constates trata de resivir los valores mediante metodos dentro del metodo paint asi:

Código:
public  void paint (Graphics g) {
     int  x=obtenerx();
     int   y=obtenery();
        g.setColor(Color.RED);
        g.fillRect(x, y, 40, 40);
     
    }

otra cosa es que apenas maximises tu contenedor todo tu trabajo se vorrar

talaves si eredas de un componet no se malogre
« Última modificación: 24 Abril 2008, 07:31 am por sapito169 » En línea

sapito169


Desconectado Desconectado

Mensajes: 591



Ver Perfil
Re: Como dibujar rectangulos
« Respuesta #3 en: 24 Abril 2008, 07:23 am »

Como vi esta duda tuya, tenia yo este code mio que aun no esta acabado pero para que veas como dibujar un rectangulo y veas mas o menos lo que te hace falta , acabo de poner ahi un applet del que puedes ver algo que te interesa

http://foro.elhacker.net/index.php/topic,209345.0.html

vueno tengo unas preguntas como es ese rollo de las clases abstractas (abstract) que signica y cuando y para que se usa otra cosa es que tu lo creas dentro de un aplet que
nunca se maximisari (si me equivoco corrigme) como se aria si es en una Jframe por que cuando se maximisa se malogra
En línea

Burnhack


Desconectado Desconectado

Mensajes: 559


Hackers always fight


Ver Perfil WWW
Re: Como dibujar rectangulos
« Respuesta #4 en: 24 Abril 2008, 10:06 am »

Como vi esta duda tuya, tenia yo este code mio que aun no esta acabado pero para que veas como dibujar un rectangulo y veas mas o menos lo que te hace falta , acabo de poner ahi un applet del que puedes ver algo que te interesa

http://foro.elhacker.net/index.php/topic,209345.0.html

vueno tengo unas preguntas como es ese rollo de las clases abstractas (abstract) que signica y cuando y para que se usa otra cosa es que tu lo creas dentro de un aplet que
nunca se maximisari (si me equivoco corrigme) como se aria si es en una Jframe por que cuando se maximisa se malogra

Si, tienes razon el tamaño del applet es inamovible creo(como tienes el code puedes darle tu el tamaño que te parezca a los paneles que quieras), tampoco soy experto en java ni mucho menos, por eso libero mi code , porque son ejemplos que yo creo que sirven para iniciarse al igual que yo y asi pues si alguien encuentra una forma mejor de hacerlo me gustaria que me aconsejen, aun estoy profundizando en las clases swing y awt , y todavia no puedo saber bien bien como se manejan las JFrame,JMenuItem...mejor que te aconseje otro..porque yo igual meto la pata.Lo que si en mi code, el tamaño del rectangulo si se maximizaria o bueno la figura que fuera..claro esta completando el code que falta(metodo modificar)  .

Respecto a lo de las clases abstractas, yo tome nota de
http://www.wikilearning.com/tutorial/tutorial_de_java-clases_abstractas/3938-23
 y como en mis estudios tambien me lo recomendaron intente usarlas

Saludos
En línea




Cuentas Premium Gratis aquí

Petición partidos fútbol, F1, tenis, baloncesto...
aquí
pereb

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Como dibujar rectangulos
« Respuesta #5 en: 24 Abril 2008, 15:49 pm »

Al intentar utilizar:

public  void paint (Graphics g) {
     int  x=obtenerPosx();
     int  y=obtenerPosy();
        g.setColor(Color.RED);
        g.fillRect(x, y, 40, 40);
}

Me da el error "non static method obtenerPosx() cannot be referenced fron a static context"

Lo que no se como puedo llamar al metodo paint() con variables que no sean estaticas.
En línea

Lu15_CL4

Desconectado Desconectado

Mensajes: 67



Ver Perfil
Re: Como dibujar rectangulos
« Respuesta #6 en: 25 Abril 2008, 05:28 am »

nunca se maximisari (si me equivoco corrigme) como se aria si es en una Jframe por que cuando se maximisa se malogra

pones:
tuJFrame.setResizable(true o false);

^^
En línea

Te regalo .1 centavo de dolar diario, registrate aqui, pideme + info por PM ^^, el .1 centavo puede ir creciendo hasta el infinito!!! :xD ^^
Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.588


Shrödingerificado


Ver Perfil
Re: Como dibujar rectangulos
« Respuesta #7 en: 26 Abril 2008, 17:59 pm »

A mi este ejemplo me parece muy claro: http://www.java2s.com/Code/Java/2D-Graphics-GUI/Drawarectangle.htm
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
pereb

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Como dibujar rectangulos
« Respuesta #8 en: 27 Abril 2008, 17:09 pm »

Muy buenala pagina de ejemplos.

Adjunto un código de un billar donde se pueden ver los rebotes de las bolas con los lados y otras bolas.


import java.awt.Canvas;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.Arrays;

import javax.swing.JApplet;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class Billard4K extends JPanel implements Runnable, MouseListener, MouseMotionListener {
   
    // GAME STATES
    public final int WAITING_TO_START = 0;
    public final int WAITING_TO_HIT = 1;
    public final int MOVING = 2;
    public final int FINISHING = 3;
   
    public int state = 0;
   
    // TABLE
    double hR;
    double[] tableX;
    double[] tableY;
    double[] holesX;
    double[] holesY;
   
    // BALLS
    public int nballs;
    public int nBallsOn;
    double[] x;
    double[] y;
    double[] vx;
    double[] vy;
    double[] nextX;
    double[] nextY;
    double[] nextVx;
    double[] nextVy;
    boolean[] borderCollision;
    boolean[][] collision;
    boolean[] onTable;
    double r = 10;
   
    // RENDERING
    Image backBuffer;
    Image backGround;
   
    // MOUSE
    int mX;
    int mY;
    int mXPost;
    int mYPost;
    boolean clicked;
   
    // STICK
    public final int MAX_STRENGTH = 1000;
    int sL = 300;
    int actualStep = 0;
   
    public Billard4K() {
        super();
        this.setBounds(50, 50, 700, 350);
        //this.setResizable(false);
        //this.setUndecorated(true);
        //this.setVisible(true);

        JFrame f = new JFrame("Billard4K");       
        f.add(this);
        f.setBounds(0, 0, 700, 380);
        f.setResizable(false);
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
        this.requestFocus();
       
        init();
    }
   
    public void init() {
       
        initTable();
        initBalls();
       
        backBuffer = this.createImage(this.getWidth(), this.getHeight());
        //gBackBuffer = backBuffer.getGraphics();
        //gBackBuffer.setFont(new Font("Courier", Font.BOLD, 20));
       
        createBackGround();

        this.addMouseListener(this);
        this.addMouseMotionListener(this);
       
        start();
    }
   
   
    public void initTable() {
       
        hR = 16;
       
        tableX = new double[] {
          40,
          this.getWidth()-40
        };
       
        tableY = new double[] {
          tableX[0],
          this.getHeight()-tableX[0]
        };
       
        holesX = new double[] {
          tableX[0] + 20,
          this.getWidth()/2,
          tableX[1]-20
        };
       
        holesY = new double[] {
          tableY[0] + 20,
          this.tableY[1]-20
        };       
    }
   
   
    public void initBalls() {
        nballs = 16;
        x = new double[nballs];
        y = new double[nballs];
        vx = new double[nballs];
        vy = new double[nballs];
        nextX = new double[nballs];
        nextY = new double[nballs];
        nextVx = new double[nballs];
        nextVy = new double[nballs];
        borderCollision = new boolean[nballs];
        collision = new boolean[nballs][nballs];
        onTable = new boolean[nballs];
       
        setBalls();
        setWhiteBall();   
       
    }
   
   
    public void setWhiteBall() {
        x[0] = 1.0 *(holesX[2]-holesX[0]) / 3.0;
        y[0] = this.getHeight() / 2;
        vx[0] = 0;
        vy[0] = 0;
       
        boolean collisions = false;
        boolean recolocate = false;
       
        do {
            collisions = false;
            recolocate = false;
           
            for (int i=1; !collisions && i<nballs; ++i) {
                collisions = isBallsCollisionPre(0, i);
            }
           
            if (collisions) {
                recolocate = true;
                y[0] -= r;
                if (y[0]<holesY[0]) y[0] = holesY[1]-r;
            }
        } while (recolocate);
       
        onTable[0] = true;
    }
   
   
    public void setBalls() {
        int ball=1;
        nBallsOn = nballs - 1;
        final double mul = Math.sqrt(3.5);
        for (int col=0; col<5; ++col) {
            double xN = this.getWidth()*2.0/3.0+col* mul *r;
            double yN = this.getHeight()/2-col*r;
            for (int row=0; row<=col; ++row) {
                x[ball] = xN;
                y[ball] = yN;
                vx[ball] = 0;
                vy[ball] = 0;
                onTable[ball] = true;
               
                yN += 2*r;
                ++ball;
            }
        }
    }
   
    public void createBackGround() {
        backGround = this.createImage(this.getWidth(), this.getHeight());
        Graphics g = backGround.getGraphics();
       
        g.setColor(Color.GRAY);
        g.fillRect(0, 0, this.getWidth(), this.getHeight());
       
        g.setColor(new Color(200, 100, 50).darker());
        g.fill3DRect((int)(tableX[0]), (int)(tableY[0]), (int)(tableX[1]-tableX[0]), (int)(tableY[1]-tableY[0]), true);
       
        g.setColor(Color.GREEN);
        g.fill3DRect((int)(holesX[0]), (int)(holesY[0]), (int)(holesX[2]-holesX[0]), (int)(holesY[1]-holesY[0]), false);
        g.setColor(Color.GREEN.brighter());
        g.drawLine((int)(1.0 *(holesX[2]-holesX[0]) / 3.0), (int)holesY[0], (int)(1.0 *(holesX[2]-holesX[0]) / 3.0), (int)holesY[1]);
        g.fillOval((int)(1.0 *(holesX[2]-holesX[0]) / 3.0)-2, (int)((holesY[1]+holesY[0])/2)-2, 4, 4);
        g.drawArc((int)(1.0 *(holesX[2]-holesX[0]) / 3.0)-20, (int)((holesY[1]+holesY[0])/2)-20, 40, 40, 90, 180);
       
        g.setColor(Color.BLACK);
        double radio = hR-2;
        for (int iX = 0; iX<3; ++iX) {
            for (int iY = 0; iY<2; ++iY) {
                g.fillOval((int)(holesX[iX]-radio), (int)(holesY[iY]-radio), (int)(2*radio), (int)(2*radio));
            }
        }       
       
        g.setColor(Color.YELLOW);
        g.setFont(new Font("Courier", Font.PLAIN, 11));
        g.drawString("http://es.geocities.com/luisja80", this.getWidth()-250, this.getHeight()-10);
    }
   
   
    public void start() {
        (new Thread(this)).start();
    }
   
   
    public void run() {
       
        long t1 = System.currentTimeMillis(), t2 = t1;
       
        while (true) {
           
            try {
                               
                t2 = System.currentTimeMillis();
               
                switch (state) {
               
                    case WAITING_TO_HIT:
                        calculateNext(t2-t1);               
                        collisions();
                        update();
                       
                        break;
                       
                    case MOVING:
                        calculateNext(t2-t1);               
                        collisions();
                        update();
                       
                        boolean allStopped = true;
                        for (int i=0; allStopped && i<nballs; ++i) {
                            allStopped = (vx==0) && (vy==0);
                        }
                        if (allStopped) {
                            state = WAITING_TO_HIT;
                            if (!onTable[0]) {
                                setWhiteBall();
                            }
                        }
                       
                        if (nBallsOn==0) {
                            state = FINISHING;
                        }
                       
                        break;
                       
                    case FINISHING:
                        setBalls();   
                        setWhiteBall();
                        state = WAITING_TO_START;
                       
                        break;
                }
               
                render();
                repaint();
                t1 = t2;
               
                Thread.sleep(10);
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
   
   
    public void collisions() {
        borderCollision();
        holesCollision();
        ballsCollision();
    }
   
   
    public void calculateNext(long millis) {
       
        double segs = millis / 1000.0;
       
        for (int i=0; i<nballs; ++i) if (onTable){
            nextX = x + vx * segs;
            nextY = y + vy * segs;           
           
            vx *= 0.99;
            vy *= 0.99;
           
            if (Math.abs(Math.hypot(vx, vy))<2) {
                vx = 0;
                vy = 0;
            }
        }
    }
   
   
    public void holesCollision() {
       
        for (int ball = 0; ball < nballs; ++ball) if (onTable[ball]) {
            for (int iHX=0; iHX<3; ++iHX) {
                for (int iHY=0; iHY<2; ++iHY) {
                    if (Math.hypot(holesX[iHX]-x[ball], holesY[iHY]-y[ball])<hR) {
                        onTable[ball] = false;
                        if (ball!=0)--nBallsOn;
                        vx[ball] = 0;
                        vy[ball] = 0;
                    }
                }
            }
        }       
    }
   
   
    public void ballsCollision() {
        for (int ball1=0; ball1<nballs; ++ball1) if (onTable[ball1]){
            for (int ball2=ball1+1; ball2<nballs; ++ball2) if (onTable[ball2]){
                boolean collision;
                if(collision = isBallsCollision(ball1,ball2)){
           
                    // Adjust position
                    int cont = 0;
                    while (cont <10 && collision){
                        nextX[ball1] = (nextX[ball1] + x[ball1]) / 2;
                        nextY[ball1] = (nextY[ball1] + y[ball1]) / 2;
                       
                        nextX[ball2] = (nextX[ball2] + x[ball2]) / 2;
                        nextY[ball2] = (nextY[ball2] + y[ball2]) / 2;
                       
                        collision = isBallsCollision(ball1, ball2);
                       
                        ++cont;
                    }
                   
                    if (collision) {
                        nextX[ball1] = x[ball1];
                        nextY[ball1] = y[ball1];
                       
                        nextX[ball2] = x[ball2];
                        nextY[ball2] = y[ball2];
                    }

                    // Adjust velocities
                    double dx = nextX[ball2] - nextX[ball1];
                    double dy = nextY[ball2] - nextY[ball1];
                    double dist = Math.hypot(nextX[ball1]-nextX[ball2], nextY[ball1]-nextY[ball2]);
                   
                    // cos(ang) = dx / dist
                    // sin(ang) = dy / dist;
                    // tg(ang) = dy / dx = sin(ang) / cos(ang)
                    double cos = dx/dist;
                    double sin = dy/dist;
                   
                    nextVx[ball2] = vx[ball2] - vx[ball2] * cos * cos;
                    nextVx[ball2] -= vy[ball2] * cos * sin;
                    nextVx[ball2] += vx[ball1] * cos * cos;
                    nextVx[ball2] += vy[ball1] * cos * sin;       
                   
                    nextVy[ball2] = vy[ball2] - vy[ball2] * sin * sin;
                    nextVy[ball2] -= vx[ball2] * cos * sin;
                    nextVy[ball2] += vx[ball1] * cos * sin;
                    nextVy[ball2] += vy[ball1] * sin * sin;
                   
                    nextVx[ball1] = vx[ball1] - vx[ball1] * cos * cos;
                    nextVx[ball1] -= vy[ball1] * cos * sin;
                    nextVx[ball1] += vx[ball2] * cos * cos;
                    nextVx[ball1] += vy[ball2] * cos * sin;       
                   
                    nextVy[ball1] = vy[ball1] - vy[ball1] * sin * sin;
                    nextVy[ball1] -= vx[ball1] * cos * sin;
                    nextVy[ball1] += vx[ball2] * cos * sin;
                    nextVy[ball1] += vy[ball2] * sin * sin;
                   
                    vx[ball1] = nextVx[ball1];
                    vy[ball1] = nextVy[ball1];
                   
                    vx[ball2] = nextVx[ball2];
                    vy[ball2] = nextVy[ball2];
                }
            }
        }
    }
   
    public boolean isBallsCollisionPre(int ball1, int ball2) {
        return Math.hypot(x[ball1]-x[ball2], y[ball1]-y[ball2]) < 2*r;
    }
   
    public boolean isBallsCollision(int ball1, int ball2) {
        return Math.hypot(nextX[ball1]-nextX[ball2], nextY[ball1]-nextY[ball2]) < 2*r;
    }
   
    public void update() {       
        for (int i=0; i<nballs; ++i) if(onTable){
            x = nextX;
            y = nextY;       
        }
    }
   
   
    public void borderCollision() {
               
        for (int i=0; i<nballs; ++i) if (onTable) {
           
            if (nextX-r<holesX[0]) {
                nextX = holesX[0] + r;
                vx *= -1;
            }
            else if (nextX+r>holesX[2]){
                nextX = holesX[2]-r;
                vx *= -1;
            }
           
            if (nextY-r<holesY[0]) {
                nextY = holesY[0] + r;
                vy *= -1;
            }
            else if (nextY+r>holesY[1]) {
                nextY = holesY[1] - r;
                vy *= -1;
            }
        }
    }
     
   
    public void render() {       

        Graphics gBackBuffer = backBuffer.getGraphics();
        gBackBuffer.setFont(new Font("Courier", Font.BOLD, 20));
       
        // TABLE
        gBackBuffer.drawImage(backGround, 0, 0, null);         
       
        // BALLS
        if (onTable[0]) {
            gBackBuffer.setColor(Color.WHITE);
            gBackBuffer.fillOval((int)(x[0]-r), (int)(y[0]-r), (int)(r*2), (int)(r*2));
        }
       
        gBackBuffer.setColor(Color.RED);
        for (int i=1; i<nballs; ++i) if (onTable){
            gBackBuffer.fillOval((int)(x-r), (int)(y-r), (int)(r*2), (int)(r*2));
        }
       
        gBackBuffer.setColor(Color.BLACK);
        for (int i=0; i<nballs; ++i) if (onTable) {
            gBackBuffer.drawOval((int)(x-r), (int)(y-r), (int)(r*2), (int)(r*2));
        }
       
        // STICK
        if (state == WAITING_TO_HIT) drawStick(gBackBuffer);
       
        // Initial message
        if (state == WAITING_TO_START) {           
            int mX = this.getWidth()/2-85;
            int mY = this.getHeight()/2;
                       
            gBackBuffer.setColor(Color.BLACK);
            gBackBuffer.drawString("Click to start", mX+2, mY+2);
           
            if (((System.currentTimeMillis()/1000)&1)==0) {
            gBackBuffer.setColor(Color.YELLOW);
            }
            else {
                gBackBuffer.setColor(Color.CYAN);
            }
            gBackBuffer.drawString("Click to start", mX, mY);
        }
    }
   
   
    public void drawStick(Graphics gBackBuffer) {
           
        double dist = Math.hypot(x[0]-mX, y[0]-mY);
        double dXNormalized = (mX-x[0])/dist;
        double dYNormalized = (mY-y[0])/dist;
        double strength = (clicked) ? strength()/10 : 1;
        double x1 = x[0] + dXNormalized * (r+strength);
        double x2 = x[0] + dXNormalized * (r+sL+strength);
        double y1 = y[0] + dYNormalized * (r+strength);
        double y2 = y[0] + dYNormalized * (r+sL+strength);
       
       
        // Draw stick
        gBackBuffer.setColor(Color.ORANGE);
        gBackBuffer.drawLine((int)x1, (int)y1, (int)x2, (int)y2);
   
        // Draw path line
        int dot = 0;
        int nDots = (clicked)
            ? (int)(150.0 * (strength / MAX_STRENGTH))
            : 15;
        double step = 30;
        double xStep = step * dXNormalized;
        double yStep = step * dYNormalized;         
       
        double nextX = x[0] + actualStep * dXNormalized;
        double nextY = y[0] + actualStep * dYNormalized;
        --actualStep;
        actualStep %= step;
       
        gBackBuffer.setColor(Color.WHITE);
        for (; dot<nDots; ++dot) {
            if (nextX < holesX[0]) {
                nextX = holesX[0] - nextX;
                nextX = holesX[0] + nextX;
                xStep *= -1;
            }
            else if (nextX > holesX[2]) {
                nextX = nextX - holesX[2];
                nextX = holesX[2]-nextX;
                xStep *= -1;
            }
           
            if (nextY < holesY[0]) {
                nextY = holesY[0]-nextY;
                nextY = holesY[0]+nextY;
                yStep *= -1;
            }
            else if(nextY > holesY[1]) {
                nextY = nextY - holesY[1];
                nextY = holesY[1] - nextY;
                yStep *=-1;
            }
           
            gBackBuffer.fillOval((int)nextX-2, (int)nextY-2, 4, 4);
            nextX -= xStep;
            nextY -= yStep;
        }
    }
   
   
   
    public double strength() {
        //return Math.abs(mYPost-mY);
        if (clicked) {
            return Math.min(MAX_STRENGTH, 10 * Math.hypot(x[0]-mXPost,y[0]-mYPost));
        }
        else {
            return Math.min(MAX_STRENGTH, 10 * Math.hypot(mX-mXPost, mY-mYPost));
        }
    }
   
    public void paint(Graphics g) {
        g.drawImage(backBuffer, 0, 0, null);
    }
       
   
    // MOUSE LISTENER METHODS
   
    public void mousePressed(MouseEvent e) {
        clicked = true;
    }
   
    public void mouseReleased(MouseEvent e) {
       
       
        if (state==WAITING_TO_HIT) {
            double dStickBall = Math.hypot(x[0]-mX, y[0]-mY);
            double dXNormalized = (x[0]-mX)/dStickBall;
            double dYNormalized = (y[0]-mY)/dStickBall;
            double strength = strength();
           
            if (strength>0) {
                state = MOVING;
                vx[0] = strength * dXNormalized;
                vy[0] = strength * dYNormalized;
            }
        }
       
        clicked = false;
    }
   
    public void mouseClicked(MouseEvent e) {
        if (state == WAITING_TO_START) {
            state = WAITING_TO_HIT;
        }
    }
   
    public void mouseEntered(MouseEvent e) {
        // EMPTY
    }
   
    public void mouseExited(MouseEvent e) {
        // EMPTY
    }
   
   
    // MOUSEMOTIONLISTENER METHODS
   
    public void mouseMoved(MouseEvent e) {       
        mXPost = e.getX();
        mYPost = e.getY();
        mX = mXPost;
        mY = mYPost;
    }
   
    public void mouseDragged(MouseEvent e) {
        mXPost = e.getX();
        mYPost = e.getY();
    }     
   
   
    public static void main(String[] args) {
        new Billard4K();
    }
}
En línea

Burnhack


Desconectado Desconectado

Mensajes: 559


Hackers always fight


Ver Perfil WWW
Re: Como dibujar rectangulos
« Respuesta #9 en: 27 Abril 2008, 21:14 pm »

Gracias por el code...asi tengo un ejemplo sobre la "colision", aun nose como utilizar esto pero creo que me servira para mis codes para intentar mejorarlo..si alguien tiene algun ejemplo sobre estos metodos que los ponga o me los pase please


Saludos
En línea




Cuentas Premium Gratis aquí

Petición partidos fútbol, F1, tenis, baloncesto...
aquí
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Qué son estos misteriosos rectángulos en YouTube? « 1 2 »
Foro Libre
Carloswaldo 11 2,478 Último mensaje 10 Abril 2015, 17:31 pm
por Carloswaldo
Calculo Intersección de rectangulos
Dudas Generales
guillehampp 8 5,577 Último mensaje 11 Mayo 2019, 20:25 pm
por r32
VB: Cómo alinear la posición de dos rectángulos en proyecto Servidor - Cliente?
.NET (C#, VB.NET, ASP)
Progmasterbr 4 1,263 Último mensaje 3 Enero 2016, 19:40 pm
por Progmasterbr
como dibujar botones con javascript?
Desarrollo Web
Beginner Web 6 1,226 Último mensaje 22 Mayo 2020, 03:46 am
por EdePC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines