Ich benutze Scene2D
Funktionalität in meinem Spiel. Ich habe FitViewport
mit virtueller Bildschirmgröße 1920x1080.Scene2D Koordinaten
viewport = new FitViewport(AssetLoader.VIRTUAL_WIDTH, AssetLoader.VIRTUAL_HEIGHT);
stage = new Stage(viewport);
Außerdem gibt es MyActor
Klasse von Actor
Klasse erweitert. MyActor
Konstruktor:
public MyActor(String text, float x, float y) {
this.text = text;
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(AssetLoader.robotoFontFile);
FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
parameter.size = 96;
font = generator.generateFont(parameter);
generator.dispose();
layout = new GlyphLayout();
layout.setText(font, text);
super.setBounds(x, y, layout.width, layout.height);
this.debug();
renderer = new ShapeRenderer();
this.addListener(new InputListener(){
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
Gdx.app.log("MyActor", text + " is touched!");
return true;
}
});
}
Und MyActor
overrided draw()
Methode:
public void draw(Batch batch, float parentAlpha) {
super.draw(batch, parentAlpha);
batch.end();
renderer.begin(ShapeRenderer.ShapeType.Line);
this.drawDebugBounds(renderer);
renderer.end();
batch.begin();
font.draw(batch, text, getX(), getY());
}
Als ich das zum Laufen bringen:
InputListener
Griffe nur Eingang, wenn ich berühren innen grünes Rechteck trotz der erwarteten Berührung des Textes.
Also, wo ist das Problem? Ist BitmapFont
draw
Methode nimmt die Position der oberen linken Ecke oder gibt es einige Probleme mit Koordinaten?
Danke! Können Sie erklären, warum Skalierung und Rotation nicht funktionieren? – danielleontiev
überprüfen Sie diesen Thread http://Stackoverflow.com/a/42406597/3445320 – Aryan
wenn Sie skalieren oder drehen dann nur Ihre Schauspieler skaliert oder gedreht, aber für Font Actor, Actor ist nur ein Modell und es ist Ansicht ist Schriftart, die nicht betroffen ist – Aryan