java – LibGDX Actor绘制覆盖
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – LibGDX Actor绘制覆盖,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2370字,纯文字阅读大概需要4分钟。
内容图文
![java – LibGDX Actor绘制覆盖](/upload/InfoBanner/zyjiaocheng/744/6bb54f7c2fd04755a20d05459a37ea1f.jpg)
我试图覆盖我的Player类,它扩展了Actor绘制方法,但我收到一个错误说
The method draw(SpriteBatch, float) of type Player must override or
implement a supertype method
为什么我不能从类Actor中覆盖默认的draw方法?这是我在Player类中的代码.
public class Player extends Actor {
@Override
public void draw(SpriteBatch batch, float parentAlpha) {
Gdx.app.log(getName(), "Drawing player");
}
public Player() {
setName("mainPlayer");
playerBounds = new Rectangle(100, 100, 32, 32);
}
}
这是我正在绘制舞台的类中的代码.
public class Mainscreen implements Screen {
// Class TAG
private static final String TAG = "Main Screen";
// Screen Variable(s)
private Awakening g;
private SpriteBatch sprBatch;
private OrthographicCamera gameCamera;
private Player mainPlayer;
// Screen Stage(s)
private sMain sMain;
@Override
public void dispose() {
sprBatch.dispose();
sMain.dispose();
}
@Override
public void hide() {
g.inputController.removeProcessor(sMain);
dispose();
}
public Mainscreen(Awakening game){
g = game;
sMain = new sMain(g, g.configMgr.getWidth(), g.configMgr.getHeight(), true);
gameCamera = new OrthographicCamera();
gameCamera.setToOrtho(false, sMain.getWidth(), sMain.getHeight());
mainPlayer = new Player(g, gameCamera);
g.setPlayer(mainPlayer);
sprBatch = new SpriteBatch();
g.mapMgr.setMap(g, gameCamera, "TestMap", mainPlayer);
sMain.addActor(mainPlayer);
}
@Override
public void pause() {g.togglePause(true);g.debugOut(TAG, "pause()");}
@Override
public void render(float delta) {
if(!g.isPaused()){
sMain.act(delta);
Gdx.gl.glClearColor(.125f, .125f, .125f, 0);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gameCamera.update();
g.mapMgr.updateNPCS();
sprBatch.setProjectionMatrix(gameCamera.combined);
sprBatch.begin();
g.mapMgr.draw(gameCamera, new int[] {0,1});
sMain.draw(); // Draw player/NPCs
//g.getPlayer().draw(sprBatch, 0f);
g.mapMgr.drawCollisionRectangles(gameCamera);
sprBatch.end();
}
}
@Override
public void resize(int width, int height) {g.debugOut(TAG,"resize("+width+","+height+")");}
@Override
public void resume() {g.togglePause(false);g.debugOut(TAG, "resume()");}
@Override
public void show() {
g.debugOut(TAG, "show()");
g.inputController.addProcessor(sMain);
g.updateInput();
}
}
我不确定发生了什么,但很确定我可以覆盖之前的抽奖.
解决方法:
你必须像这样覆盖它:
@Override
public void draw(Batch batch, float parentAlpha) {
Gdx.app.log(getName(), "Drawing player");
}
将SpriteBatch更改为Batch.参考Actor#draw
内容总结
以上是互联网集市为您收集整理的java – LibGDX Actor绘制覆盖全部内容,希望文章能够帮你解决java – LibGDX Actor绘制覆盖所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。