Mam do zrobienia coś co przypomina język LOGO
(jak ktoś nie wie:
http://pl.wikipedia.org/wiki/Logo_(j...programowania)
)
no więc hm, przyciskowe toto, ma rysować linie za pomocą klikania w przyciski.
opowiednio:
left - odwraca zolwia o 90 stopni w lewo
right - odwraca zolwia o 90 stopni w prawo
forward - przesuwa zolwia do przodu o 10 pikseli. Ruch odbywa sie, w ustalonym za pomoca wczesniejszych przyciskow, kierunku.
pen up - unosi pioro - zolw zmienia polozenia, ale nie zostawia po sobie sladu
pen down - opuszcza pioro - zmiana polozenia zolwia pozostawia slad
no i w sumie mam problem, bo okay, do góry to sobie klikam i mi rysuje, ale np już w lewo jakoś nie mam pomysłu jak te współrzędne dobrać, żeby ładnie kreskę pod kątem 90stopni narysowało do już istniejącej.
wszelkie pomysły mile widziane ;D
Kod PHP:
class PanelRysunkowy extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponents(g);
}
}
ah, poniższa klasa implementuje ActionListener
Kod PHP:
PanelRysunkowy okienkoR; //okienko do rysowania
private boolean rysowanie = true;
private boolean lewo = true;
private boolean prawo = true;
int x1=240;
int y1=200;
int x2=240;
int y2=190;
public void actionPerformed(ActionEvent akcja){
Graphics rysik= okienkoR.getGraphics();
if(akcja.getSource()==wDol){
if(rysowanie == true){
rysowanie=false;
}
else return;
}
else if(akcja.getSource()==wGore){
if(rysowanie==false) {
rysowanie = true;
}
}
else if(akcja.getSource()==wLewo){
lewo=false;
}
else if(akcja.getSource()==wPrawo){
prawo=false;
}
else if(akcja.getSource()==Naprzod){
if(lewo==true&& prawo == true){
if(rysowanie == false){
rysik.drawLine(x2,y2,x1,y1 );
y1-=10;
y2-=10;
}
else{
rysik.setColor(Color.WHITE);
rysik.drawLine(x2,y2,x1,y1 );
y1-=10;
y2-=10;
} }
else if(lewo == false && rysowanie == false){
//lewo = true;
rysik.drawLine(x1,y1,0,y2); //a tu co? :D
x1+=10;
}
}
else if(akcja.getSource()==Clean){
x1=240;
y1=200;
x2=240;
y2=190;
prawo = true;
lewo = true;
rysik.clearRect(0,0,500,500);//tu czysci okienko
}
else if(akcja.getSource()==Zamknij){
System.exit(0);
}
}
Zakładki