我有主要课程(它只是本课程的一小部分):
ScreenViewport viewport = new ScreenViewport();
stage = new Stage(viewport);
Gdx.input.setInputProcessor(stage);
MyActor actor = new MyActor();
stage.addActor(actor);
和MyActro类:
package com.mygdx.game;
import com.badlogic.gdx.scenes.scene2d.Actor;
公共类MyActor扩展了Actor {
private Actor actor;
public MyActor(Actor actor)
{
this.actor = actor;
}
public Actor getActor()
{
return actor;
}
}
Eclipse建议我应该从构造函数中删除参数。我做错了什么?答案 0 :(得分:1)
您需要新建Actor类以传递给构造函数。
static void Main(string[] args)
{
Stage stage = new Stage();
Actor actor = new Actor();
MyActor myActor = new MyActor(actor);
stage.AddActor(actor);
}
答案 1 :(得分:0)
您显然正在尝试创建一个没有传入Actor的MyActor:
MyActor actor = new MyActor();
而你只有一个MyActor的构造函数,它接受一个Actor:
public MyActor(Actor actor)
当你说MyActor扩展了Actor时,你真的是说它继承了它吗?如果是这种情况,也许您不应该尝试将Actor封装在MyActor中。也许这就是你想要做的,但只是给它一点思考。
答案 2 :(得分:0)
我终于可以在舞台上绘制纹理了。 有没有办法在舞台上绘制纹理,但使用的方式与我通常使用的方式不同:Link
在我开始在LibGdx中使用stage之前,我绘制了这样的纹理:
public class MyGdxGame extends ApplicationAdapter {
private SpriteBatch batch;
private Texture texture2;
@Override
public void create () {
texture2 = new Texture("trojkat.png");
batch = new SpriteBatch();
}
@Override
public void render () {
Gdx.gl.glClearColor(144, 96, 48, 0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(texture2,1,1);
batch.end();
}
@Override
public void dispose() {
texture2.dispose();
}
}
但在本教程中,它的构建方式不同。我想在主要课程中绘制所有内容,但不知道该怎么做。上面的代码已经工作了,在MyActor类我添加了一个绘图函数,它现在看起来像这样:
public class MyActor extends Actor
{
private Actor actor;
Texture texture = new Texture(Gdx.files.internal("trojkat.png"));
public void draw(Batch batch, float alpha)
{
batch.draw(texture,0,0);
}
public MyActor(Actor actor)
{
this.actor = actor;
}
public Actor getActor()
{
return actor;
}
}
当我使用舞台时,是否可以在主类中绘制所有内容?