0

現在、ゲームでテキストを動的に変更する必要があるスコアを表示しようとしています。私があちこち検索したところ、ほとんどの場合、テキストに XML レイアウトが使用されていることがわかりました。私の問題は、すべてがビットマップ グラフィックであるため、ゲームに XML をまったく使用していないことです。私の状況に対するヒントや提案はありますか?

すべてを描画する draw メソッドは次のとおりです

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
}

スコアの更新方法はこちら

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

android.graphics.Canvas.drawText(Native Method) で NullPointerException を返します。「scoreString」をログに記録してみましたが、正しく表示されます。

編集: 解決済み、null ペイント オブジェクトが原因の NullPointerException。単純にペイント オブジェクトを作成しPaint paintObj = new Paint();、オブジェクトを設定してpaintObj.setTextSize(textSize)paintObj.setColor(Color.WHITE);

4

1 に答える 1

2

View または SurfaceView オブジェクトを介して直接描画を行っている場合は、Canvas のドキュメントを確認してください。

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

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

http://developer.android.com/reference/android/graphics/Canvas.html#drawText(java.lang.String , float, float, android.graphics.Paint)

楽しみ!

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

于 2012-01-03T06:08:48.100 に答える