【发布时间】:2014-04-13 06:29:46
【问题描述】:
我理解它是一个框架;更是一个开源的跨平台游戏开发库。我去了libgdx homepage 并按照视频教程中的说明进行操作。正确设置我的项目后,我能够在多个支持的平台上运行默认的 my-gdx-game 项目。很好,很好,花花公子......现在呢?
我一直在搜索论坛、wiki、javadocs 和许多其他网站,寻找体面的简单操作方法。不幸的是,我找不到任何帮助,那里的大多数帮助都假设您对该库有一些基本知识。
我觉得视频教程向我展示了如何正确设置项目,有效地弄湿我的脚,然后假设我知道如何游泳,然后让我离开了 300 英里的大海或其他地方。我无法消化这个库,因为我昨天才开始使用它,所以当谈到 libgdx 时,我是一个全新的人。
我想将我现有的项目转移到 libgdx,但我习惯于使用 BufferedImages、JFrames 和类似的东西。有经验的退伍军人的任何帮助都会很好。
顺便说一下,我在下面发布了我的核心项目,所以你们可以带我了解这里到底发生了什么......
<code>
package com.me.mygdxgame;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.Texture.TextureFilter;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
public class MyGdxGame implements ApplicationListener {
private OrthographicCamera camera;
private SpriteBatch batch;
private Texture texture;
private Sprite sprite;
@Override
public void create() {
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
camera = new OrthographicCamera(1, h/w);
batch = new SpriteBatch();
texture = new Texture(Gdx.files.internal("data/libgdx.png"));
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
TextureRegion region = new TextureRegion(texture, 0, 0, 512, 275);
sprite = new Sprite(region);
sprite.setSize(0.9f, 0.9f * sprite.getHeight() / sprite.getWidth());
sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2);
}
@Override
public void dispose() {
batch.dispose();
texture.dispose();
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
batch.begin();
sprite.draw(batch);
batch.end();
}
@Override
public void resize(int width, int height) {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
}
</code>
【问题讨论】: