在我深入研究一些严重的低级调试之前,我只是想知道在精灵上绘制文本的概念是否有任何问题。 通过API示例进行拖网我发现没有任何地方可以做到这一点。所有文本精灵都预先渲染为png 我几乎可以看到试图绘制的东西,但只出现白色斑点或线条 任何意见,将不胜感激 干杯
public class Tile extends Sprite {
private static BitmapTextureAtlas mBitmapTextureAtlas;
private static TextureRegion mBoxTextureRegion;
private static BitmapTextureAtlas mFontTexture;
private static Font mFont;
String letter;
private Text mText;
public int score;
public Tile(String letter, int score, float x, float y, float width, float height) {
super(x, y, width, height, mBoxTextureRegion);
this.letter = letter;
this.score = score;
}
public static void loadResources(Context context, Engine mEngine) {
Tile.mFontTexture = new BitmapTextureAtlas(512, 512, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
Tile.mFont = FontFactory.createFromAsset(Tile.mFontTexture, context, "Arial Rounded MT.ttf", 64, true, Color.WHITE);
mEngine.getTextureManager().loadTexture(Tile.mFontTexture);
mEngine.getFontManager().loadFont(Tile.mFont);
Tile.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
Tile.mBoxTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(Tile.mBitmapTextureAtlas, context, "rect3761.png", 0, 0);
mEngine.getTextureManager().loadTexture(Tile.mBitmapTextureAtlas);
}
public void draw(GraphicScene scene) {
if (letter != null) {
this.mText = new Text(50, 50, Tile.mFont, letter, HorizontalAlign.CENTER);
// this.mText.setBlendFunction(GL10.GL_SRC_ALPHA,
// GL10.GL_ONE_MINUS_SRC_ALPHA);
// this.mText.setAlpha(0.5f);
this.attachChild(this.mText);
scene.attachChild(this);
}
}
}
答案 0 :(得分:3)
我确实遇到了一个“SpriteButton”的用户帖子,它看起来像你(和我)想做的那样,在: http://www.andengine.org/forums/tutorials/spritebutton-class-t7440.html
在评论中你会注意到提到一个名为ButtonSprite的内置AndEngine类,但我没有看到任何引用它的实际代码。它可能位于AndEngine源的另一个分支中。
请注意,在实例化SpriteButton之前,您需要创建并加载一个字体以及一个textureregion。
我也在研究SpriteButton如何处理旋转。翻译(通过用户触摸)似乎工作正常。