en del af animation er at huske hvor dit tegnede billede er. i din kode benytter du to konstanter: public void paint(Graphics g) { draw_car(100,100,g); // 100,100 er placeringen } og der gælder det om at udskifte kontanterne med variable. fx ved at opretter et pat variable i din klasse: public class grafiksjov extends JFrame { int xPos = 100; int yPos = 100; // 2 variable i klassen ... og bruge de variable til at styre hvor draw_car tegner: public void paint(Graphics g) { draw_car(xPos,yPos,g); // xPos,yPos er placeringen }
sidste skridt er så at sørge for at de variable ændres lid for hvert kald til paint, sådan at billedet flytter sig public void paint(Graphics g) { xPos = xPos+2; // flyt en smule yPos = yPos+2; // før vi gentegner draw_car(xPos,yPos,g); // xPos,yPos er placeringen }
men der kommer en masse ander ting der skal fixes, indtil videre tegner vi jo blot ovenpå, hvergang billedet 'flyttes' skal det også fjernes (slettes) fra der det var tegnet før.
det kan d fx gøre ved at gentegne med en fave der svarer til vaggrundsfarven: public void paint(Graphics g) { // sæt tegnefarven til at være lig med baggrundsfarve draw_car(xPos,yPos,g); // tegner billedet usynligt. // sæt tegnefarven til at være lig med tegnefarve igen. xPos = xPos+2; // flyt en smule yPos = yPos+2; // før vi gentegner draw_car(xPos,yPos,g); // xPos,yPos er placeringen }
det med at ændre ternefarven gør du med g.setColor( nyFarve ) men jeg har aldrig prøvet så det må du selv lege med.
På den anden side kan jeg heller ikke rigtig se behovet. Metoden 'paint' bliver automatisk kaldt i en applet når skærmen refreshes (ca 20-50 gange i sekundet). Jeg ser ingen grund til at involvere andre API faciliteter som du så også skal sætte dig grundigt ind i for at kunne bruge dem fornuftigt. Een ting ad gangen er som regel den bedste måde at lære, bagefter kan du så lære at gøre programmeringen nemmere ved at genbruge eksisterende automatikker der gør en større af arbejdet for dig :-))
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.