2

助けてください。Android ゲーム開発と Java は初めてです。鹿が画面の境界に触れたときに鹿がループするか、0,0 から再び開始するようにしたいのですが、それをコーディングする方法がわかりません。

パッケージcom.cmanres.bunnyjourney;

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Rect;



public class Spriteleft {
       private static final int BMP_COLUMNS = 3;
   private static final int BMP_ROWS = 2;
   private int x = 0; 
   private int y=0;
       private int xSpeed = 3;
       private Levelunogame gameView;
       private Bitmap deer1;
   private int width;
   private int height;
   private int currentFrame=0;

 public Spriteleft(Levelunogame gameView, Bitmap deer1) {
         this.gameView=gameView;
         this.deer1=deer1;
         this.width = deer1.getWidth() / BMP_COLUMNS;
         this.height = deer1.getHeight() / BMP_ROWS;
   }

   private void update() {
         if (x > gameView.getWidth() - width - xSpeed) {
                xSpeed = -3;
         }
         if (x + xSpeed< 0) {
                xSpeed = 3;
         }
         x = x + xSpeed;
         currentFrame = ++currentFrame % BMP_COLUMNS;
   }


   public void onDraw(Canvas canvas) {
         update();
         int srcX = currentFrame * width;
         int srcY = 1 * height;
         Rect src = new Rect(srcX, srcY, srcX + width, srcY + height);
         Rect dst = new Rect(x, y, x + width, y + height);
         canvas.drawBitmap(deer1, src , dst, null);
       }
 }  

これは、Android モバイル ゲームのチュートリアルで従った私のコードです。誰かがそれを行う方法を教えてもらえますか? またはチュートリアルのリンクを教えてください。とても感謝しています。

4

1 に答える 1

0

スプライトが x、y に sprite_width、sprite_height で配置されていると仮定します

// スプライトの位置が画面の境界の外にあるかどうかを確認します

if( x < 0 || x > gameView.getWidth() - sprite_width 
 || y < 0 || y > gameView.getHeight() - sprite_height ) {
    // Set x, y to 0,0
    x = 0;
    y = 0;
}
于 2012-12-14T10:55:14.263 に答える