2011-07-13 5 views
1

私はAndEngineを初めて使っています。DrawEngineのAndEngineテクスチャ

何らかの理由で、Drawable変数からTextureRegionを作成する必要があります。私のコードは動作しない

それが可能である場合、私は知らない

、...

public class DrawableTextureSource implements ITextureSource { 
    private final int mWidth; 
    private final int mHeight; 
    private final Drawable mDrawable; 
    private final Context mContext; 
    public DrawableTextureSource(Context context, Drawable D) { 
     mContext = context; 
     mDrawable = D; 
     mWidth = D.getIntrinsicWidth(); 
     mHeight = D.getIntrinsicHeight(); 
    } // end DrawableTextureSource() 
    public DrawableTextureSource(Context context, Drawable D, int W, int H) { 
     mContext = context; 
     mDrawable = D; 
     mWidth = W; 
     mHeight = H; 
    } // end DrawableTextureSource() 
    public int getWidth() { 
     return mWidth; 
    } // end getWidth() 
     public int getHeight() { 
     return mHeight; 
    } // end getHeight() 
     public Bitmap onLoadBitmap(Config pBitmapConfig) { 
     Bitmap bitmap = Bitmap.createBitmap(1024, 1024, pBitmapConfig); 
     mDrawable.draw(new Canvas(bitmap)); 
     return bitmap; 
    } // end onLoadBitmap() 
    public DrawableTextureSource clone() { 
     return new DrawableTextureSource(mContext, mDrawable, mWidth, mHeight); 
    } // end clone() 
} // end class 

答えて

2

私がこの問題を解決する最善の方法ではないですけど、次のことができますDrawableBitmapに変更し、BitmapからTextureRegionを作成します。 はこちらBitmapからTextureRegionを作成するためのコードです:

public class BitmapTextureSource implements ITextureSource { 

     private Bitmap mBitmap = null; 

     public BitmapTextureSource(Bitmap bitmap) { 
      this.mBitmap = bitmap; 
     } 

     @Override 
     public int getWidth() { 
      return mBitmap.getWidth(); 
     } 

     @Override 
     public int getHeight() { 
      return mBitmap.getHeight(); 
     } 

     @Override 
     public Bitmap onLoadBitmap() { 
      return mBitmap.copy(mBitmap.getConfig(), false); 
     } 

     @Override 
     public BitmapTextureSource clone() { 
      return new BitmapTextureSource(mBitmap); 
     } 

    } 

ここでは、あなたのDrawableからBitmapを作るのを助けるためにlinkです。

希望すれば、より簡単な方法が見つかるはずですが、これも同様に機能します。がんばろう!

+0

私はグリッドにdrawable-buttonを配置したいと思います...最初の部分は...ボタンで描くことができます。しかし、どのようにグリッド - 長方形に収まるか考えてみてください...どんな提案ですか? – CoDe