J2ME中圖片隨按鍵移動和旋轉代碼實戰

來源:互聯網
上載者:User

主要方法: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();
 }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.