主要方法:Image.createImage(img,x, y,width,height,rotation);
参数:img,目标图片
x,y,width,height指的是目标图片img的部分区域
rotation是旋转的角度
/**
* @作者 Jcuckoo
* @创建日期 2008-11-25
* @版本 V 1.0
*/
public class ImageCanvas extends Canvas {
//图片坐标
private int x=20;
private int y=30;
//图片旋转角度
private int rotation=Sprite.TRANS_NONE;
private Image img;
private Image img1;
public ImageCanvas() {
try {
img=Image.createImage("/test.png");
} catch (IOException e) {
img=null;
}
}
protected void paint(Graphics g) {
img1=Image.createImage(img, 0, 0,img.getWidth(),img.getHeight(),rotation);
//重画画布
g.setColor(255,255,255);
g.fillRect(0, 0, getWidth(), getHeight());
//绘制图片
g.drawImage(img, 0, 0, 0);
g.drawImage(img1, x, y, 0);
}
protected void keyPressed(int keyCode) {
int gamecode=getGameAction(keyCode);
switch(gamecode){
case Canvas.UP:
y=y-3;
if(y<0)y=0;
break;
case LEFT :
x=x-3;
if(x<0)x=0;
break;
case RIGHT:
x=x+3;
if(x>getWidth()-img.getWidth())x=getWidth()-img.getWidth();
break;
case DOWN:
y=y+3;
if(y>getHeight()-img.getHeight())y=getHeight()-img.getHeight();
break;
case GAME_A:
rotation=Sprite.TRANS_ROT90;
break;
case GAME_B:
rotation=Sprite.TRANS_ROT180;
break;
case GAME_C:
rotation=Sprite.TRANS_ROT270;
break;
case GAME_D:
rotation=Sprite.TRANS_NONE;
break;
}
repaint();
}
protected void keyReleased(int keyCode) {
}
protected void keyRepeated(int keyCode) {
int gamecode=getGameAction(keyCode);
switch(gamecode){
case Canvas.UP:
y=y-3;
if(y<0)y=0;
break;
case LEFT :
x=x-3;
if(x<0)x=0;
break;
case RIGHT:
x=x+3;
if(x>getWidth()-img.getWidth())x=getWidth()-img.getWidth();
break;
case DOWN:
y=y+3;
if(y>getHeight()-img.getHeight())y=getHeight()-img.getHeight();
break;
}
repaint();
}
}