Android實現在螢幕上移動圖片的方法_Android

來源:互聯網
上載者:User

本文執行個體講述了Android實現在螢幕上移動圖片的方法。分享給大家供大家參考。具體實現方法如下:

1. Speed.java檔案:

package net.obviam.droidz.model.components;public class Speed {  public static final int DIRECTION_RIGHT = 1;  public static final int DIRECTION_LEFT = -1;  public static final int DIRECTION_UP  = -1;  public static final int DIRECTION_DOWN = 1;  private float xv = 1;  // velocity value on the X axis  private float yv = 1;  // velocity value on the Y axis  private int xDirection = DIRECTION_RIGHT;  private int yDirection = DIRECTION_DOWN;  public Speed() {    this.xv = 1;    this.yv = 1;  }  public Speed(float xv, float yv) {    this.xv = xv;    this.yv = yv;  }  public float getXv() {    return xv;  }  public void setXv(float xv) {    this.xv = xv;  }  public float getYv() {    return yv;  }  public void setYv(float yv) {    this.yv = yv;  }  public int getxDirection() {    return xDirection;  }  public void setxDirection(int xDirection) {    this.xDirection = xDirection;  }  public int getyDirection() {    return yDirection;  }  public void setyDirection(int yDirection) {    this.yDirection = yDirection;  }  // changes the direction on the X axis  public void toggleXDirection() {    xDirection = xDirection * -1;  }  // changes the direction on the Y axis  public void toggleYDirection() {    yDirection = yDirection * -1;  }}

2. main.java檔案:

public void run() {  Canvas canvas;  Log.d(TAG, "Starting game loop");  while (running) {    canvas = null;    // try locking the canvas for exclusive pixel editing    // in the surface    try {      canvas = this.surfaceHolder.lockCanvas();      synchronized (surfaceHolder) {        // update game state        this.gamePanel.update();        // render state to the screen        // draws the canvas on the panel        this.gamePanel.render(canvas);      }    } finally {      // in case of an exception the surface is not left in      // an inconsistent state      if (canvas != null) {        surfaceHolder.unlockCanvasAndPost(canvas);      }    }  // end finally  }}public void update() {  // check collision with right wall if heading right  if (droid.getSpeed().getxDirection() == Speed.DIRECTION_RIGHT      && droid.getX() + droid.getBitmap().getWidth() / 2 >= getWidth()) {    droid.getSpeed().toggleXDirection();  }  // check collision with left wall if heading left  if (droid.getSpeed().getxDirection() == Speed.DIRECTION_LEFT      && droid.getX() - droid.getBitmap().getWidth() / 2 <= 0) {    droid.getSpeed().toggleXDirection();  }  // check collision with bottom wall if heading down  if (droid.getSpeed().getyDirection() == Speed.DIRECTION_DOWN      && droid.getY() + droid.getBitmap().getHeight() / 2 >= getHeight()) {    droid.getSpeed().toggleYDirection();  }  // check collision with top wall if heading up  if (droid.getSpeed().getyDirection() == Speed.DIRECTION_UP      && droid.getY() - droid.getBitmap().getHeight() / 2 <= 0) {    droid.getSpeed().toggleYDirection();  }  // Update the lone droid  droid.update();}

希望本文所述對大家的Android程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.