2011-12-04 6 views
0

私は、ボールが斜面で転落し、ジャンプすることで障害物を避けなければならない単純なゲームに取り組んでいます。問題は、Matrixを使用してボールオブジェクトを回転しようとしているときに発生します。このメソッドは、内部で別のメソッドmove(によって呼び出されたボールのクラス)で書かれているMatrixを使用してビットマップを回転させて強制的にコードを閉じるコード

private void rotateMe() { 
    if(jump==0){ 
     Matrix mtx=new Matrix(); 
     mtx.postRotate(deg); 
     Bitmap rotatedBMP=Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), mtx, false); 
     deg=deg+1; //deg=0 in beginning 
     bm=rotatedBMP; 
    } 
} 

- :私は、次のコードを使用しています。私が望むようにビットマップbmは回転していません。それはちょうどビットマップのサイズが増加したように見える、画面から落ちている。そして私は数秒後にそれを閉じなければなりません。
私は他のビットマップの回転に関する質問を見たことがありますが、私にとってはあまり効果がありません。 ありがとうございます。

+0

ドローイングコードも投稿できますか? – GETah

答えて

0

とにかく自分で答えが見つかりました。私が今使っているコードは、次のとおりです(同じ問題を抱えている人向け)

Matrix mtx=new Matrix(); 
mtx.postRotate(deg,25,25); 
mtx.postTranslate(x, y); 
c.drawBitmap(bm, mtx, paint); 
deg=deg-10; 

コードは正常に実行されています。とにかくありがとう。

+0

私は私のブログの中で解決策を説明しました。あなたが望むなら - http://android347.wordpress.com/2011/12/09/rotate-a-bitmap-using-matrix/ – noob

1

同じ値(10)で常にMatrixを回転しています。ボールが回転していないのはそのためです。 ではなく、次の操作を行います。またmtx.postRotate(deg);

、一般の発言:私はあなたがた回転ボールbmを描いていると思いますか? ボールを別のスレッドで描画する場合は、まずボールをbmに排他的にアクセスできるようにして、新しい値の影響を受けている間にボールをレンダリングしないようにしてください。bm=rotatedBMP;

+0

そこにもdegを使っても、問題は同じです。ボールが画面から脱落し、強制終了メッセージが表示されます。 – noob

関連する問題