首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法将演员添加到舞台

无法将演员添加到舞台
EN

Stack Overflow用户
提问于 2015-06-29 07:22:37
回答 3查看 275关注 0票数 0

我有main类(它只是这个类的一小部分):

代码语言:javascript
运行
复制
        ScreenViewport viewport = new ScreenViewport();
    stage = new Stage(viewport);
    Gdx.input.setInputProcessor(stage);

    MyActor actor = new MyActor();
    stage.addActor(actor);

和MyActro类:

代码语言:javascript
运行
复制
package com.mygdx.game;

导入com.badlogic.gdx.scenes.scene2d.Actor;

公共类MyActor扩展了执行元{

代码语言:javascript
运行
复制
private Actor actor;

public MyActor(Actor actor)
{
    this.actor = actor;
}


public Actor getActor()
{
    return actor;
}

}

Eclipse建议我应该从构造函数中删除参数。我做错了什么?

EN

回答 3

Stack Overflow用户

发布于 2015-06-29 07:34:24

您需要新建Actor类以传递到构造函数中。

代码语言:javascript
运行
复制
    static void Main(string[] args)
    {
        Stage stage = new Stage();

        Actor actor = new Actor();
        MyActor myActor = new MyActor(actor);
        stage.AddActor(actor);
    }
票数 1
EN

Stack Overflow用户

发布于 2015-06-29 07:51:41

很明显,您正在尝试创建一个没有传入Actor的MyActor:

代码语言:javascript
运行
复制
MyActor actor = new MyActor();

而你只有一个MyActor的构造器,它接受一个参与者:

代码语言:javascript
运行
复制
public MyActor(Actor actor)

当您说MyActor扩展了Actor时,您实际上是指它继承了Actor吗?如果是这样的话,也许您不应该尝试在MyActor中封装Actor。也许这就是你想要做的,但你只需要想一想。

票数 0
EN

Stack Overflow用户

发布于 2015-06-29 08:47:23

我终于可以在舞台上画纹理了。有没有一种方法可以在舞台上绘制纹理,但使用的方法与我通常使用的不同:Link

在我开始在LibGdx中使用stage之前,我会像这样绘制纹理:

代码语言:javascript
运行
复制
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类中添加了一个绘图函数,现在看起来是这样的:

代码语言:javascript
运行
复制
public class MyActor extends Actor

{

代码语言:javascript
运行
复制
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;
}

}

当我使用stage时,是否可以在主类中绘制所有内容?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31105812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档