gpt4 book ai didi

java - 我不明白这个Java代码(位图字体)

转载 作者:行者123 更新时间:2023-12-02 00:04:32 24 4
gpt4 key购买 nike

我正在分析一个开源游戏代码,但我不明白 setDefaultSpecialChars() 方法和 setDefaultSmallAlphabet()。这些语句 fontCharTable[':']=1 + indexOf_Point;fontCharTable['a'+i] = indexOf_a + i; 对我来说是新的。

 import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class GFont {


public int[] fontCharTable = new int[256];

public void setFontCharTableDefaults(boolean specialChars) {
setDefaultSmallAlphabet(0);
setDefaultBigAlphabet(0);
setDefaultDigits(27);
if (specialChars) {
setDefaultSpecialChars(37);
}
}

public void setDefaultSpecialChars(int indexOf_Point) {
fontCharTable['.']=0 + indexOf_Point;
fontCharTable[':']=1 + indexOf_Point;
fontCharTable[',']=2 + indexOf_Point;
fontCharTable[';']=3 + indexOf_Point;
fontCharTable['?']=4 + indexOf_Point;
fontCharTable['!']=5 + indexOf_Point;
fontCharTable['(']=6 + indexOf_Point;
fontCharTable[')']=7 + indexOf_Point;
fontCharTable['+']=8 + indexOf_Point;
fontCharTable['-']=9 + indexOf_Point;
fontCharTable['*']=10 + indexOf_Point;
fontCharTable['/']=11 + indexOf_Point;
fontCharTable['=']=12 + indexOf_Point;
fontCharTable['\'']=13 + indexOf_Point;
fontCharTable['_']=14 + indexOf_Point;
fontCharTable['\\']=15 + indexOf_Point;
fontCharTable['#']=16 + indexOf_Point;
fontCharTable['[']=17 + indexOf_Point;
fontCharTable[']']=18 + indexOf_Point;
fontCharTable['@']=19 + indexOf_Point;
fontCharTable['ä']=20 + indexOf_Point;
fontCharTable['ö']=21 + indexOf_Point;
fontCharTable['ü']=22 + indexOf_Point;
fontCharTable['Ä']=fontCharTable['ä'];
fontCharTable['Ö']=fontCharTable['ö'];
fontCharTable['Ü']=fontCharTable['ü'];
}


public void setDefaultSmallAlphabet(int indexOf_a) {
for (i=0; i<26; i++) {
fontCharTable['a'+i] = indexOf_a + i;
}
}


}

最佳答案

这只是一个普通的数组元素赋值表达式 - 但使用从 charint 的隐式转换。所以采取这个:

fontCharTable['+']=8 + indexOf_Point;

现在将其视为:

char indexAsChar = '+';
int indexAsInt = indexAsChar; // Use implicit conversion
fontCharTable[indexAsInt] = 8 + indexOf_Point;

现在是不是更清楚了?

同样:

for (i=0; i<26; i++) {
fontCharTable['a'+i] = indexOf_a + i;
}

可以写成:

for (i=0; i<26; i++) {
int a = 'a';
int index = a + i'
fontCharTable[index] = indexOf_a + i;
}

关于java - 我不明白这个Java代码(位图字体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14141349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com