Avatar billede neess Nybegynder
13. maj 2003 - 11:21 Der er 1 kommentar og
1 løsning

Flyt en 2d bil rundt på skærmen

Jeg er ved at lave et spil hvor man køre bil.Jeg har lavet sådan man kan flytte rundt med bilen. Men når man flytter den.Bliver den gamle bil.


import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.geom.*;
class Grafik extends JFrame

{
private Car bilen;
private int height=800;
private int width=600;
private Image backImg =    new ImageIcon("car1.gif").getImage();
private int placeX = 50;
private int placeY = 100;

public Grafik()
{
    super("Car test");
    setSize(height, width);
    setVisible(true);
    this.addKeyListener(new KeyAdapter()
        {
            public void keyPressed(KeyEvent e)
            {
                // 1=up  2=down  3=left  4=right
                if(e.getKeyCode() == 38)         // hit UP
                    update(1);
                else if(e.getKeyCode() == 40)     // hit DOWN
                    update(2);
                else if(e.getKeyCode() == 37)     // hit LEFT
                      update(3);
                else if(e.getKeyCode() == 39)     // hit RIGHT
                      update(4);
                else if(e.getKeyCode() == 17)     // hit Ctrl, (Shoot)
                      update(5);

            }
        });
   
        addWindowListener(
            new WindowAdapter()
            {
                public void windowClosing(WindowEvent e)
                {
                    System.exit(0);
                }
            }
        );


}
public void update(int nr)
{

                            if(nr == 1)
                            {
                        placeX+=-5;
                        placeY+=0;
                            }
                    else if(nr == 2)
                        {
                        placeX+=5;
                        placeY+=0;
                            }
                    else if(nr == 3)
                        {
                        placeX+=0;
                        placeY+=-5;
                            }
                    else if(nr == 4)
                        {
                        placeX+=0;
                        placeY+=5;
                            }
repaint();

}
}
Avatar billede _carsten Nybegynder
13. maj 2003 - 14:45 #1
Forstår ikke helt spørgsmålet - og så alligevel

Et skud fra hoften:  Erstat repaint() med super.update(getGraphics());
Avatar billede Slettet bruger
29. juni 2003 - 19:20 #2
Først skal du lige implementere din egen paint(Graphics g)-metode som tegner bilen på "JFrame'n"....:

publi void paint(Graphics g)
{  g.drawImage(placeX, placeY, backImg);
}

tilføj derefter denne metode....:

public boolean isFocusable()
{  return true;
}

.... denne har til funktionalitet at give KeyListeneren fokus uden at du skal klikke på JFrame'n med musen, før der gives fokus.....

Håber at det hjalp :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsikrings- og pensionsakademiet A/S

IT-teknisk profil

Politiets Efterretningstjeneste

Datacentertekniker hos PET

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Nye kolleger søges til IT Stab i Forsvaret