Sie versuchen, eine Sprite
zu der Tabelle hinzuzufügen kein Texture
und das ist der Hauptgrund, warum Sie Probleme haben. Es ist im Grunde das gleiche wie int i = "Hello World"
zu tun, die einen Fehler wie incompatible types
ergeben würde. Mit anderen Worten, ein Integer
Container kann keinen String
halten.
Wenn Sie mit der Maus über die Linie fahren, sehen Sie, dass table.add
einen Schauspieler erwartet. Wenn Sie zu der Definition von Sprite
gehen würden Sie bemerken, dass dies Actor in keiner Weise erweitert. Also Actor a = new Sprite()
führt zu dem gleichen Fehler wie oben, können Sie nicht eine Sprite object
in eine Actor container
setzen. Dies sind die grundlegenden Grundlagen der Programmierung.
Also was sind kompatible Akteure? Alles, was Schauspieler wie Label, TextButton, Table, ScrollPane, Window, Dialog etc. erbt. Du kannst auch Action
selbst erweitern und deinen eigenen Actor erstellen, aber da du damit zu kämpfen hast, solltest du damit warten.
Die einfachste Lösung ist die Verwendung scene2d.ui.Image
. Wenn Sie diese Klasse überprüfen, sehen Sie, dass sie sich von Widget
erstreckt, und wenn Sie Widget
inspizieren, sehen Sie, dass es sich von Actor
erstreckt und folglich ist Bild ein Schauspieler, da Sie ein Kind Ihrer Mutter und Ihrer Mutter Ihrer Großmutter sind.
Wenn Sie überprüfen, was der Image
Konstruktor nimmt dann werden Sie die einfachste Sache zu tun ist, bemerken einen SpriteDrawable
zu schaffen, da Bild ein Sprite
wie table.add
dauert nicht nehmen keinen entweder Sprite. SpriteDrawable
nimmt ein Sprite und ist ein Drawable
und das ist kompatibel mit dem Konstruktor Image
.
Image image = new Image(new SpriteDrawable(mySprite));
table.add(image);
Bild nimmt eine zu Textur so, wenn Sie nicht tun Phantasie Sprite
Sachen mit Ihrem Sprit können Sie einfach das Bild mit einem als auch Texture
erstellen.Sie können dies in Ihrer IDE sehen, indem Sie new Image(
eingeben und intellisense wird Ihnen die kompatiblen Konstruktoren mitteilen.
Versuchen Sie, diese Typen zu verstehen und verwenden Sie Ihre IDE und die Dokumentation, um herauszufinden, was Sie verwenden können. Mit Android Studio können Sie mit der rechten Maustaste auf eine Klasse klicken und goto -> declaration
aufrufen und die betreffende Klasse sehen. Andere IDEs haben äquivalente Methoden, es sei denn, Sie verwenden so etwas wie Notepad.
ja, aber Sie können das Bild mit einer Textur, keine Notwendigkeit von Sprites erstellen - neues Bild (Textur); –
@YasenBagalev Ich erwähne das. Aber wenn Sie den Zustand des Sprites beibehalten möchten, der geändert werden kann, dann können Sie das 'SpriteDrawable' hinzufügen – Madmenyo
Entschuldigung, habe es nicht gesehen :) –