2012-01-03 9 views
0

現在、ゲームでテキストを動的に変更する必要のあるスコアを表示しようとしています。 私は検索して、ほとんどの人がテキストにXMLレイアウトを使用していることを発見しました。 私の問題は、すべてがビットマップグラフィックスなので、ゲームでXMLを使用しないことです。 私の状況に関するヒントやご提案はありますか?ここでAndroid - ビットマップ上の動的テキスト

は、ここですべて

public void render(Canvas canvas){ 
    Bitmap bitmap; 
    Graphics.Coordinate coords; 
    canvas.drawBitmap(bgBitmap, 0, 0, null); 
    canvas.drawBitmap(closeBtnBitmap, 700, 0, null); 
    canvas.drawBitmap(groundBitmap, 0, 315, null); 
    canvas.drawBitmap(petBitmap, petX, petY, null); 
    for(Graphics pics : coins){ 
     bitmap = pics.getBitmap(); 
     coords = pics.getCoord(); 
     canvas.drawBitmap(bitmap, coords.getX(), coords.getY(), null); 
    } 
    canvas.drawBitmap(scoreBitmap, 300, 20, null); 
    canvas.drawText(scoreString, 300, 20, null); //change null to paintObj 
} 

を描画するdrawメソッドであることがandroid.graphics.Canvas.drawTextでNullPointerExceptionが(ネイティブメソッド)を返すスコア

private void updateScore(int score){ 
    initScore += score; 
    totalScore = initScore; 
    scoreString = Integer.toString(totalScore); 
} 

を更新する方法です。私は "scoreString"を記録しようとしましたが、正しく表示されます。

編集:解決済み、NullPointerExceptionはnullペイントオブジェクトによって発生します。単にあなたが表示またはSurfaceViewオブジェクトを介して直接描画を行っている場合は、キャンバスのドキュメントをチェックすることもできますペイントオブジェクトPaint paintObj = new Paint();を作成し、オブジェクトpaintObj.setTextSize(textSize)paintObj.setColor(Color.WHITE);

+0

キャンバスを使用してテキストを表示することができます。ペイントp =新しいペイント(); p.setColor(Color.BLUE); canvas.drawText( "あなたの文字列"、10、10、p); –

+0

@HirenDabhiこのソリューションを使用しましたが、エラーが返されました。私は自分のコードを追加しました。 –

+0

あなたのコードでは、nullをdrawText(最後のパラメータ)に渡しています。新しいPaint()を渡します。 –

答えて

2

を設定します。

http://developer.android.com/reference/android/graphics/Canvas.html

具体的にテキスト機能を描画します。これは私が使用しているものです。

http://developer.android.com/reference/android/graphics/Canvas.html#drawText(java.lang.String、フロート、フロート、android.graphics.Paint)

お楽しみください!

Open GL Surfaceを使用している場合は、利用できるAPIがわかりません。他のプラットフォームでは、文字をテクスチャアトラスとしてアップロードし、シーンに必要な正しいテキストのテクスチャを配置しました。

+0

私は実際にそのようなものを見つけたhttp://stackoverflow.com/questions/6304195/android-displaying-score-as-a-string-on-canvas-is-ドリルごとに新しい文字列を作成する しかし、エラーNullPointerExceptionで動作するようにはできませんでした。完全にbtwを続けました。それがあなたが意味する解決策なら、私はそれに取り組むつもりです。 –

+0

このセットアップはあなたのために機能するのですか、別のソリューションをお探しですか?後者の場合は、ゲームをどのように開発しているかについてもう少し説明してください。より良い解決策を提供できます。 – nmjohn

+0

サンプルコードを投稿したい場合は、デバッグを支援します。私の推測では、キャンバスオブジェクトが有効でないか、またはペイントオブジェクトが有効ではないので、リンクすると、この質問または別の問題のいずれかでそれをデバッグするのを助けることができます。 – nmjohn

関連する問題