現在、「Beginning Android Games」という本を読んでいますが、次のコードを理解するのに問題があります。
int srcX = 0;
int srcWidth = 0;
if (ch == '.') {
srcX = 200; //Jump to position 200 px in the bitmap
srcWidth = 10; //A dot is only 10 px
} else {
srcX = (ch - '0') * 20;
srcWidth = 20;
}
ハイスコアとプレイ中のスコアを表示するために使用される 0 から 9 までの数字のビットマップがあります。この変数srcX
は、対応する数値のビットマップ内の位置 (ピクセル単位) を見つけるために使用されます。
Ch は文字変数であり、文字列内の現在の文字 (数字、スペース、またはドット) を保持するために使用されます。
私の問題は、ユニコード番号の代わりに「実際の」番号を取得するために (ch - '0') を使用する必要がある理由がわからないことです。たとえばif ch = "1", (ch - '0')
、結果は 1 です。「- '0'」を使用しない場合、ユニコードは 49 になります。
もちろん、ユニコードから「実数」への変換を行うためには、何かが起こらなければなりません。しかし、なぜ結果 (ch - '0') は 49 ではなく 1 になるのでしょうか。
皆さんが私の問題を理解し、助けてくれることを願っています。
前もって感謝します!