Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: pohyb objektu - objekt se nehýbe, někde je chyba

Java Java pohyb objektu - objekt se nehýbe, někde je chyba

Aktivity (1)
Avatar
Lukec
Neregistrovaný
Avatar
Lukec:24.3.2013 16:18

Zdravím, chtěl bych poprosit o radu, mám vytvořený objekt i s kódem pro rozhýbání, vše se bez problémů přeloží ale jak se to spustí tak objekt nereaguje, předem dík za odpověď :)

kód:

**class mojedelo extends JComponent {
int Y=200;
int X=290;

public void paint(Graphics k) {
Graphics2D g2 = (Graphics2D) k;
Image img1 = Toolkit.getDe­faultToolkit()­.getImage("de­lo.png");
g2.drawImage(img1, +Y, +X, this);
g2.finalize();
}
public void keyPressed(KeyEvent e) {

int key = e.getKeyCode();

if (key == KeyEvent.VK_LEFT) {
X=X-1;

}

if (key == KeyEvent.VK_RIGHT) {
X=X+1;

}

}

public void keyReleased(Ke­yEvent e) {
int key = e.getKeyCode();

if (key == KeyEvent.VK_LEFT) {

}

if (key == KeyEvent.VK_RIGHT) {

}

}
}**

 
Odpovědět 24.3.2013 16:18
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukec
David Čápka:24.3.2013 16:34

Kliky se zachycují na formuláři, navíc tvoje komponenta neimplementuje KeyListener.

Do formuláře si přidej toto:

addKeyListener(new KeyListener(){

@Override
public void keyPressed(KeyEvent e) {
  delo.stisknutaKlavesa(e);
}

@Override
public void keyTyped(KeyEvent e) {
}

@Override
public void keyReleased(KeyEvent e) {
  delo.pustenaKlavesa(e);
}

});

V dělu si potom ty metody přejmenuj. Událost zachytává form a volá metodu na dělu, to si pak sebou pohybuje podle argumentu v metodě.

Nahoru Odpovědět 24.3.2013 16:34
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukec
David Čápka:24.3.2013 16:34

Jo a pro vložení zdrojáku je tu tlačíko ;-)

Nahoru Odpovědět 24.3.2013 16:34
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Зайчик
Člen
Avatar
Odpovídá na Lukec
Зайчик:24.3.2013 16:37

Nemáš tam žádný timer nebo vlákna btw tohle mi ukázal Fugiczeck když jsem nevěděl jak na to :) máš to tam věchno popsaný. http://zetcode.com/…vingsprites/

Nahoru Odpovědět 24.3.2013 16:37
Коммунизм для нашего будущего!
Avatar
Lukec
Neregistrovaný
Avatar
Lukec:24.3.2013 17:11

ok, omlouvám se za ten zdroják a jdu to zkusit, doufám že už to pojede, jsem začátečník a mám vytvořit jednoduchou hru, nevím si s tím rady :/ děkuju, popř. sem ještě napíšu :D

 
Nahoru Odpovědět 24.3.2013 17:11
Avatar
Lukec
Člen
Avatar
Lukec:24.3.2013 17:32

Založil jsem si účet -> Lukec. Tak sem se v tom dokonale zamotal .... sedím u toho 2 dny nemohl by mi z vás někdo pomoci jinou cestou než zde spamovat fórum ?

 
Nahoru Odpovědět 24.3.2013 17:32
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukec
David Čápka:24.3.2013 17:41

Popsal jsem ti přesně jak to udělat. Co konkrétně ti nejde?

Nahoru Odpovědět 24.3.2013 17:41
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lukec
Člen
Avatar
Lukec:24.3.2013 17:56

su z toho úplně mimo a potřebuju odpočinek ale tlačí mě čas... Nevím jestli to tam vkládám správně protože mi to háže chyby při překladu takže bych potřeboval poradit přesně kam to mám vložit... a proč musím přejmenovat metody v dělu ?

 
Nahoru Odpovědět 24.3.2013 17:56
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukec
David Čápka:24.3.2013 20:12

Metody většinou pojmenováváme :) Vložíš to do konstruktoru formuláře. Pokud ti překladač píše chybu, tak pošli kód, kde je chyba.

Nahoru Odpovědět 24.3.2013 20:12
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lukec
Člen
Avatar
Lukec:24.3.2013 20:34

děkuji za ochotu :)
Zde máš kód bez toho co jsi mi posílal protože by jsi se asi hodně zasmál:
Toto je celá hra co mám

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.Color;
import java.awt.*;
import javax.swing.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.Rectangle;


import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;













class mojedelo extends JComponent {
    int Y=200;
    int X=290;


  public void paint(Graphics k) {
    Graphics2D g2 = (Graphics2D) k;
    Image img1 = Toolkit.getDefaultToolkit().getImage("delo.png");
   g2.drawImage(img1, +Y, +X, this);
   g2.finalize();

   }


   public void stisknutaKlavesa(KeyEvent e) {

        int key = e.getKeyCode();

        if (key == KeyEvent.VK_LEFT) {
            X=X+50;

        }

        if (key == KeyEvent.VK_RIGHT) {
            X=X-20;

        }

    }

    public void pustenaKlavesa(KeyEvent e) {
        int key = e.getKeyCode();

        if (key == KeyEvent.VK_LEFT) {

        }

        if (key == KeyEvent.VK_RIGHT) {

        }

    }


}

 class BgPanel extends JPanel {
    Image bg = new ImageIcon("image.jpg").getImage();
    public void paintComponent(Graphics g) {
        g.drawImage(bg, 0, 0, this);
        }
}





public class delo extends JFrame {
    public static void main(String args[]) {

        JPanel BgPanel = new BgPanel();
        BgPanel.setLayout(new BorderLayout());
        BgPanel.add(new mojedelo(), BorderLayout.CENTER);



        delo okno = new delo();
        Image icon = Toolkit.getDefaultToolkit().getImage("delo.png");
        okno.setContentPane(BgPanel);
        okno.setIconImage(icon);
        okno.setResizable(false);
        okno.setTitle("Dělo - hra");
        okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        okno.setSize(500, 400);
        okno.setLocationRelativeTo(null);
        okno.setVisible(true);

 }
}
Editováno 24.3.2013 20:35
 
Nahoru Odpovědět 24.3.2013 20:34
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukec
David Čápka:24.3.2013 20:40

Uprav metodu Main takto:

public class delo extends JFrame {

  public static void main(String args[]) {

  JPanel BgPanel = new BgPanel();
  BgPanel.setLayout(new BorderLayout());
  mojedelo md = new mojedelo();
  BgPanel.add(md, BorderLayout.CENTER);

  addKeyListener(new KeyListener(){

    @Override
    public void keyPressed(KeyEvent e) {
      md.stisknutaKlavesa(e);
    }

    @Override
    public void keyTyped(KeyEvent e) {
    }

    @Override
    public void keyReleased(KeyEvent e) {
      md.pustenaKlavesa(e);
    }

  });

 ....

Přidáním KeyListeneru na formulář definuješ metody, co se spustí, když na formuláři zachytíš klávesu. V těchto metodách voláš pohyb na instanci tvého děla. Možná to bude chtít ještě volat potom repaint(), aby se změna projevila. Ten kód mi přijde dost divný, ale to by bylo na déle :)

Editováno 24.3.2013 20:40
Nahoru Odpovědět 24.3.2013 20:40
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lukec
Člen
Avatar
Lukec:24.3.2013 20:48

jo je dost divný :D já to skládám vesměs z toho co najdu na internetu, musím to mít do 27.3 a bohužel to nedávám, přešel jsem ze základů javy ( úplně ze základů ) do této fáze jen proto abych tohle dal něják dohromady. Sedím u toho 12 hodiny denně a hledám, zkouším, už mi to ani nemyslí...

 
Nahoru Odpovědět 24.3.2013 20:48
Avatar
Lukec
Člen
Avatar
Lukec:24.3.2013 20:54

tohle to je to co mi to píše teď

 
Nahoru Odpovědět 24.3.2013 20:54
Avatar
Samik11
Redaktor
Avatar
Odpovídá na Lukec
Samik11:24.3.2013 22:58

Je vidět, že je to splácané... pokud jde o ten pohyb, přikládám ukázku. Snad pomůže, snažil jsem se to v rychlosti trochu okomentovat. :-)

http://uloz.to/…bkulicka-rar

Editováno 24.3.2013 23:01
Nahoru Odpovědět 24.3.2013 22:58
„Radost vidět a rozumět, to je nejkrásnější dar přírody.“ Albert Einstein
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukec
David Čápka:25.3.2013 10:16

Promiň, ale je v tom hrozný bordel. To addKeyListener se má volat na okně, nevšiml jsem si že to není konstruktor ale Main. Návrhově je to úplně blbě, máš i špatně pojmenované třídy atd. V sekci Java máš tutoriály od Samika, je tma popsané jak se GUI dělá. Zkus ještě tohle, pak to vzdávám a radši ti to pomůžu napsat znova :D

public class delo extends JFrame {

 public static void main(String args[]) {

  JPanel BgPanel = new BgPanel();
  BgPanel.setLayout(new BorderLayout());
  mojedelo md = new mojedelo();
  BgPanel.add(md, BorderLayout.CENTER);

  delo okno = new delo();

  okno.addKeyListener(new KeyListener(){

    @Override
    public void keyPressed(KeyEvent e) {
      md.stisknutaKlavesa(e);
    }

    @Override
    public void keyTyped(KeyEvent e) {
    }

    @Override
    public void keyReleased(KeyEvent e) {
      md.pustenaKlavesa(e);
    }

  });

  Image icon = Toolkit.getDefaultToolkit().getImage("delo.png");
  okno.setContentPane(BgPanel);
  okno.setIconImage(icon);
  okno.setResizable(false);
  okno.setTitle("Dělo - hra");
  okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  okno.setSize(500, 400);
  okno.setLocationRelativeTo(null);
  okno.setVisible(true);

  }
 }

Možná to bude řvát kvůli tomu že proměnná md není atribut třídy delo. Pokud ano, napiš sem přesně co chceš dělat a já ti s tím pomůžu, protože tohle je katastrofa :)

Nahoru Odpovědět 25.3.2013 10:16
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lukec
Člen
Avatar
Lukec:25.3.2013 11:27

OK, dojdu dom a hned k tomu sednu, mám to ve středu odevzdávat.... a to ještě nevíte že tam na hoře má lítat objekt a to dělo má střílet + počítat sestřelení :DD říkal sem si že když to udělám tak aby se to dělo hýbalo, na hoře by asi určitě přes timer lítal objekt ( letadlo ) a dělo by střílelo bez počítání střetů střely a letadla tak by to stačilo. Já nezvládnu ani tohle :/

 
Nahoru Odpovědět 25.3.2013 11:27
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:25.3.2013 11:37

Kde máš konstruktor třídy delo?

Nahoru Odpovědět 25.3.2013 11:37
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:25.3.2013 12:32

Aha, už to vidím. Máš tam navíc "extends JFrame". Dělo není frame.

Nahoru Odpovědět 25.3.2013 12:32
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Lukec
Člen
Avatar
Lukec:25.3.2013 12:36

já myslel že tam konstruktor nepotřebuji, když tam není tak se vytváří sám a nic nedělá ne ? Proč bych ho zde měl použít ?

 
Nahoru Odpovědět 25.3.2013 12:36
Avatar
Kit
Redaktor
Avatar
Odpovídá na Lukec
Kit:25.3.2013 12:38

Když nepotřebuješ konstruktor, tak často nepotřebuješ ani dědičnost.

Nahoru Odpovědět 25.3.2013 12:38
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Lukec
Kit:25.3.2013 12:43

K čemu by se dal konstruktor použít? Například pro definování vlastností okna, aby se to zbytečně necpalo do metody main.

Nahoru Odpovědět 25.3.2013 12:43
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Lukec
Člen
Avatar
Lukec:25.3.2013 12:50

sem začátečník ale musím to dodělat, mám v tom bordel jak jsi si všiml ale potřebuji to dokončit...

 
Nahoru Odpovědět 25.3.2013 12:50
Avatar
Lukec
Člen
Avatar
Lukec:25.3.2013 17:18

ano, asi to bude to co jsi říkal, není atribut třídy delo... vím že je v tom bordel ale potřeboval bych pomoc

 
Nahoru Odpovědět 25.3.2013 17:18
Avatar
Lukec
Člen
Avatar
Lukec:25.3.2013 18:10

mám vytvořit hru kde dole bude dělo které se bude posouvat po ose x, po ose x ale nahoře má přelétávat letadlo a dělo má reagovat na zmáčknutí šipky nahoru tím že vystřelí a pak se budou porovnávat souřadnice letadla a střely... musím hlavně něják zkout pohyb děla, aby tam lítalo to letadlo a střílení děla, zkusím si pomoct http://zetcode.com/…vingsprites/

 
Nahoru Odpovědět 25.3.2013 18:10
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukec
David Čápka:25.3.2013 19:24

Stáhni si z tohoto vlákna můj projekt Arkanoid (je tam dole link). Není to zrovna ukázková hra, ale myslím, že tam najdeš přesně to, co hledáš - http://www.itnetwork.cz/…12de33aaf180

Nahoru Odpovědět 25.3.2013 19:24
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lukec
Člen
Avatar
Lukec:25.3.2013 21:10

prozatím si upravuji to z toho http://zetcode.com potřebuju tam vykreslovat obrázek na pozadí okna a další obrázek je delo, delo sem přebral ze své staré tvorby

public void paint(Graphics g) {
     Graphics2D g2 = (Graphics2D) g;
     Image img1 = Toolkit.getDefaultToolkit().getImage("delo.png");
    g2.drawImage(img1, +y, +x, this);
    g2.finalize();
    setOpaque(false);
    }

a když si vytvořím novou třídu pro pozadí

class BgPanel extends JPanel {

    Image bg = new ImageIcon("image.jpg").getImage();
    public void paintComponent(Graphics g) {
        g.drawImage(bg, 0, 0, this);
        }
}

zobrazím ji

....
panel = new Painting();

pozadi = new BgPanel();
...
cont.add(pozadi);
pozadi.add(panel);

tak se delo pohybuje ale nezobrazí se mi pozadí.

 
Nahoru Odpovědět 25.3.2013 21:10
Avatar
Lukec
Člen
Avatar
Lukec:25.3.2013 21:13

omlouvám se, problém vyřešen :) jdu pokračovat dále :)

 
Nahoru Odpovědět 25.3.2013 21:13
Avatar
Lukec
Člen
Avatar
Lukec:25.3.2013 23:04

Mám vytvořené letadlo

public class Letadlo extends JPanel{

        // souřadnice x, y
        private int y = 10;
        private int x = 0;
        private int cas;

        public void paint(Graphics g) {
        Graphics2D g3 = (Graphics2D) g;
        Image img = Toolkit.getDefaultToolkit().getImage("letadlo.png");
        g3.drawImage(img, +x, +y, this);
        g3.finalize();
        setOpaque(false);

        }


        // getry a setry

        public void setY(int y)
        {
                this.y = y;
        }

        public void setX(int x)
        {
                this.x = x;
        }


        public void setCas(int cas)
        {
                this.cas = cas;
        }

        public int getCas()
        {
                return cas;
        }

}

potom mám v časovači nastavené přičítání času v 1 vteřině o 1
a mám to použité jak u panelu ( v mém případě u děla ) tak u letadla.

Event e = new Event();

                // přídání posluchače
                addKeyListener(e);

                TimerClass listener = new TimerClass();

                timer = new Timer(1000, listener);
                // začátek počítání
                timer.start();

poté jsem chtěl metodu která by měla posunovat letadlo ale potřebuju ji něják propojit s tím časováním a nevím jak, vím že asi není ani správně, popř. mi prosím vysvětlete proč to tak nemůže být a co mám udělat proto aby se mi to posunovalo podle timeru.

public class EventLetadlo
        {
                int poziceX = 0;
                int poziceY = 10;

                public void posunLetadlo(String args[]) {
                        poziceX += 3;

                        letadlo.setX(poziceX);
                        letadlo.repaint();
                }


        }
 
Nahoru Odpovědět 25.3.2013 23:04
Avatar
Lukec
Člen
Avatar
Lukec:26.3.2013 15:16

tohle už je taky vyřešeno, teď mám problém s vykreslením aji letadla a aji dela zaráz, nevím jak na to

kód pro vykreslení mám

cont.add(pozadi);
pozadi.setLayout(new BorderLayout());
pozadi.add(delo, BorderLayout.CENTER);

a delo se mi zobrazí, když takhle místo děla zobrazím letadlo tak to taky funguje ale nevím jak zobrazi obě zaráz ?

Letadlo

   public class Letadlo extends JPanel{
        private int y = 10;
        private int x = 0;


        public void paint(Graphics g) {
        Graphics2D g3 = (Graphics2D) g;
        Image img = Toolkit.getDefaultToolkit().getImage("letadlo.png");
        g3.drawImage(img, +x, +y, this);
        g3.finalize();
        setOpaque(false);
        }
..................

a delo je

       public class Delo extends JPanel{
      private int y = 290;
      private int x = 200;

      public void paint(Graphics g) {
      Graphics2D g2 = (Graphics2D) g;
      Image img1 = Toolkit.getDefaultToolkit().getImage("delo.png");
      g2.drawImage(img1, +x, +y, this);
      g2.finalize();
      setOpaque(false);

  }
......................
Editováno 26.3.2013 15:22
 
Nahoru Odpovědět 26.3.2013 15:16
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukec
David Čápka:26.3.2013 15:19

V kódu pro vykreslení nevidím zobrazení letadla i děla. Máš to takhle?

cont.add(pozadi);
pozadi.setLayout(new BorderLayout());
pozadi.add(letadlo, BorderLayout.CENTER);
pozadi.add(delo, BorderLayout.CENTER);
Nahoru Odpovědět 26.3.2013 15:19
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lukec
Člen
Avatar
Lukec:26.3.2013 15:28

já tam dával kód bez vykreslení letadla, když to dám tak jak si mi to tu napsal ty tak mi delo překryje letadlo a letadlo nejde vidět...

zkoušl sem testovat a když udělám pahýl

cont.add(pozadi);
pozadi.setLayout(new BorderLayout());
pozadi.add(delo, BorderLayout.CENTER);
delo.setLayout(new BorderLayout());
delo.add(letadlo, BorderLayout.CENTER);

a nastavím v letadlu setOpaque(true); tak se mi to zobrazuje a za letadlem jede pochopitelně černá čára s tím že když pohnu s dělem šipkou tak se mi to překreslí a čára pokračuje po zastavení děla, a když dám setOpaque(false); tak se mi letadlo nezobrazí vůbec

 
Nahoru Odpovědět 26.3.2013 15:28
Avatar
Lukec
Člen
Avatar
Lukec:26.3.2013 15:33

pro lepší pochopení to ukážu
takhle za tím letadlem valí černá čára když tam mám

cont.add(pozadi);
 pozadi.setLayout(new BorderLayout());
 pozadi.add(delo, BorderLayout.CENTER);
 delo.setLayout(new BorderLayout());
 delo.add(letadlo, BorderLayout.CENTER);

a setOpaque(true);

když pohnu s dělem tak se černá čára přeruší a pokračuje až šipku pustím

 
Nahoru Odpovědět 26.3.2013 15:33
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukec
David Čápka:26.3.2013 15:37

delo.add(letadlo) - Proč vkládáš do děla letadlo? To mi nějak nedává smysl. Máš tam nějaké pozadí, nevím co to je, ale vkládáš na to dělo, tak na to vlož i letadlo. Psal jsem ti to výše, zkoušel jsi to?

Nahoru Odpovědět 26.3.2013 15:37
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lukec
Člen
Avatar
Lukec:26.3.2013 15:45

jen sem to zkoušel, sám vím že je to kravina, ano zkoušel, ale to se mi překryje tím co je přidaný poslední.

když tam je jako první dělo a pak letadlo tak jde vidět jen letadlo a dělo ne

 
Nahoru Odpovědět 26.3.2013 15:45
Avatar
Lukec
Člen
Avatar
Lukec:26.3.2013 15:50

POZADÍ MÁM

class Pozadi extends JPanel {


        Image bg = new ImageIcon("image.jpg").getImage();
        public void paintComponent(Graphics g) {
        g.drawImage(bg, 0, 0, this);
        }


}
 
Nahoru Odpovědět 26.3.2013 15:50
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukec
David Čápka:26.3.2013 15:58

Pošli mi ten projekt :D

Nahoru Odpovědět 26.3.2013 15:58
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lukec
Člen
Avatar
Lukec:26.3.2013 16:00

máš skype ?

 
Nahoru Odpovědět 26.3.2013 16:00
Avatar
Lukec
Člen
Avatar
 
Nahoru Odpovědět 26.3.2013 16:07
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukec
David Čápka:26.3.2013 16:44

Takže... že je to dost blbě jsem ti už určitě říkal :) Nicméně je to mnohem lepší, než předtím. Ještě to napsat tak 2x nebo 3x odznovu a už jsi docela dobrý Javista :D Aby to mělo nějaký smysl, musel bych to napsat znovu a na to nemám časové možnosti. Zprovoznil jsem ti to způsobem, jakým to máš teď udělané.

Vložení objektů:

pozadi.setLayout(new BorderLayout());
pozadi.add(letadlo, BorderLayout.NORTH);
pozadi.add(delo, BorderLayout.SOUTH);

Do třídy Letadlo si přidej konstruktor, který nastaví té komponentě velikost, jinak má 0 a nezobrazí se:

public Letadlo()
{
     super();
     setPreferredSize(new Dimension(500, 500));
}

Ve třídě Delo to samé:

public Delo()
{
    super();
    setPreferredSize(new Dimension(500, 500));
}

U děla změň hodnotu v setOpague na false:

setOpaque(false);

Takhle mi to funguje dobře :) Můžeš se pokusit o tu střelbu, třeba ti tu pomůže zas někdo jiný nebo já zítra.

Nahoru Odpovědět 26.3.2013 16:44
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lukec
Člen
Avatar
Lukec:26.3.2013 16:58

Musím to dokončit ještě dnes a udělat k tomu dokumentaci.... takže pokud to nestihnu tak v tom budu určitě pokračovat ale ne zítra, to si dám oddych :D

 
Nahoru Odpovědět 26.3.2013 16:58
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukec
David Čápka:26.3.2013 17:00

No ten pohyb máš hotový, kdyby ti to nešlo, tak ti to pošlu :) Střelba bude problém, protože to máš udělané přes BorderLayout, musel bych zkoumat jak to obejít.

Nahoru Odpovědět 26.3.2013 17:00
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lukec
Člen
Avatar
Lukec:26.3.2013 17:54

taky mě to napadlo ale pořádně nevím jak mám postupovat, vytvořím si třídu strela ve které se bude vykreslovat teď už ne obrázek ale třeba kulička... kulička bude vystřelovat po ose x v závislosti na čase tak jak to letadlo, teď nastává problém -> vytvořím si ifko na snímání šipky nahoru a zapíšu tam něco ve smysl new strela() ale co potom, jak to udělat aby se mi kulička zobrazila/vys­třelila ? popřípadě abych mohl vystřelit několikrát za sebou ?

 
Nahoru Odpovědět 26.3.2013 17:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 42 zpráv z 42.