The method I am trying to use is the: drawImage(image, int, int, int, int, ImageObserver) method so that i can scale my image, on all the examples i've seen the ImageObserver should be this, but this doesn't seem to work(i.e. the only methods i have seen is: drawImage(image, int, int, ImageObserver), don't know if this makes a difference).
Here is my main class that is the applet:
import java.applet.*;
import java.awt.*;
public class Main extends Applet implements Runnable{
private Thread th;
private Hitter hitter;
//double buffering
private Graphics dbg;
private Image dbImage;
public void init(){
hitter = new Hitter(getImage(getCodeBase(), "Chitter.png"));
}
public void start(){
th = new Thread(this);
th.start();
}
public void stop(){
th.stop();
}
public void update(Graphics g){
if(dbImage == null){
dbImage = createImage(this.getSize().width, this.getSize().width);
dbg = dbImage.getGraphics();
}
dbg.setColor(getBackground());
dbg.fillRect(0, 0, this.getSize().width, this.getSize().height);
dbg.setColor(getForeground());
paint(dbg);
g.drawImage(dbImage, 0, 0, this);
}
public void paint(Graphics g){
hitter.drawHitter(g);
}
public void run() {
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
while(true){
repaint();
try{
Thread.sleep(15);
}catch(InterruptedException ex){}
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}
public boolean mouseMove(Event e, int x, int y){
hitter.move(x);
return true;
}
}
Here is the Hitter class:
import java.awt.*;
import java.awt.image.ImageObserver;
public class Hitter{
private int x, y;
private Image hitter;
private int hitterWidth = 50, hitterHeight = 10;
private int appletsizeX = 500, appletsizeY = 500;
Hitter(Image i){
hitter = i;
start();
}
public void drawHitter(Graphics g){
g.drawImage(hitter, x, y, hitterWidth, hitterHeight, this);
}
public void move(int a){
x = a;
}
public void start(){
x = appletsizeX/2 - hitterWidth/2;
y = 0;
}
}