Also zu meinem Problem:
Ich hab eine Klasse Screen die erbt von Canvas. Hat demnach auch eine Paint methode. Diese Klasse hat ein aktuelles Image. Jetzt will ich in ner anderen Klasse, der ScrollKlasse, nen Scrolleffekt sozusagen machen. Diese Klasse hat das neue Bild. Und das ganze Scrollzeug soll auch in diese Klasse. Jetzt dacht ich mir ich hol in der SCroll klases die graphics aus der Screen Klasse und das aktuelle Bild. Dann versetz ich die immer um nen Stueck (lass sie scrollen in nem Thread) und sag dann immer zu der Scroll klasse repaint. Am ende ersetz ich dann das aktuelle Bild in der Screen Klasse mit dem neuen aus der Scroll Klasse
Klasse Screen:
Klasse Scroll:
Hab jetzt nur mal probiert das aktuelle Bild zu holen und das zu zeichen, aber das macht der nicht. Kann man nicht einfach die Graphics holen und dann zeichen?
Ich hab eine Klasse Screen die erbt von Canvas. Hat demnach auch eine Paint methode. Diese Klasse hat ein aktuelles Image. Jetzt will ich in ner anderen Klasse, der ScrollKlasse, nen Scrolleffekt sozusagen machen. Diese Klasse hat das neue Bild. Und das ganze Scrollzeug soll auch in diese Klasse. Jetzt dacht ich mir ich hol in der SCroll klases die graphics aus der Screen Klasse und das aktuelle Bild. Dann versetz ich die immer um nen Stueck (lass sie scrollen in nem Thread) und sag dann immer zu der Scroll klasse repaint. Am ende ersetz ich dann das aktuelle Bild in der Screen Klasse mit dem neuen aus der Scroll Klasse
Klasse Screen:
Code:
public Screen (Main main) {
this.main = main;
this.display = Display.getDisplay(main);
width = getWidth();
height = getHeight();
currentImage = Image.createImage(width, height);
}
[...]
public synchronized void paint (Graphics g) {
int clipX = g.getClipX();
int clipY = g.getClipY();
g.drawRegion(currentImage, clipX, clipY, currentImage.getWidth(), currentImage.getHeight(),
Sprite.TRANS_NONE, 0, 0, Graphics.TOP | Graphics.LEFT);
}
Klasse Scroll:
Code:
public void start () {
currentImage = screen.getCurrentImage();
thread = new Thread(this);
thread.start();
}
[...]
public void run () {
while (currentXPosition < width) {
// ? ?
currentGraph.drawImage(currentImage, 0,0, Graphics.TOP|Graphics.LEFT);
//
try {
synchronized (this) {
wait(20);
}
}catch (InterruptedException e) {
System.out.println("error in try catch ");
}
currentXPosition += sizeSteps;
screen.repaint();
}
screen.setCurrentImage(newImage);
}
Hab jetzt nur mal probiert das aktuelle Bild zu holen und das zu zeichen, aber das macht der nicht. Kann man nicht einfach die Graphics holen und dann zeichen?