我有main类(它只是这个类的一小部分):
ScreenViewport viewport = new ScreenViewport();
stage = new Stage(viewport);
Gdx.input.setInputProcessor(stage);
MyActor actor = new MyActor();
stage.addActor(actor);和MyActro类:
package com.mygdx.game;导入com.badlogic.gdx.scenes.scene2d.Actor;
公共类MyActor扩展了执行元{
private Actor actor;
public MyActor(Actor actor)
{
this.actor = actor;
}
public Actor getActor()
{
return actor;
}}
Eclipse建议我应该从构造函数中删除参数。我做错了什么?
发布于 2015-06-29 07:34:24
您需要新建Actor类以传递到构造函数中。
static void Main(string[] args)
{
Stage stage = new Stage();
Actor actor = new Actor();
MyActor myActor = new MyActor(actor);
stage.AddActor(actor);
}发布于 2015-06-29 07:51:41
很明显,您正在尝试创建一个没有传入Actor的MyActor:
MyActor actor = new MyActor();而你只有一个MyActor的构造器,它接受一个参与者:
public MyActor(Actor actor)当您说MyActor扩展了Actor时,您实际上是指它继承了Actor吗?如果是这样的话,也许您不应该尝试在MyActor中封装Actor。也许这就是你想要做的,但你只需要想一想。
发布于 2015-06-29 08:47:23
我终于可以在舞台上画纹理了。有没有一种方法可以在舞台上绘制纹理,但使用的方法与我通常使用的不同: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;
}}
当我使用stage时,是否可以在主类中绘制所有内容?
https://stackoverflow.com/questions/31105812
复制相似问题