LibGDX_3.5:スプライト(Sprite)


このリンクは次のとおりです.http://blog.csdn.net/xietansheng/article/details/50186997
LibGDX基本チュートリアル(総目次)
1.概要
Sprite(スプライト)はTextureRegion(テクスチャ領域)から継承されており、本質的にはTextureRegionと見なすことができますが、TextureRegionよりもずっと強く、パッケージが完備されており、1枚の画像を表すほか、画面内の位置/座標(描画起点)、スケール比、回転角度、透明度/色など多くの属性が付加されています.Spriteは,ゲーム中の要素(ゲーム人物,アイテム,背景画像など)をより具体的に記述し,1枚の画像にこの画像を描く際に付加される様々な変換属性を加えたパッケージと見なすことができる.
Spriteは以下の構成と見なすことができる.
Sprite=Texture/TextrueRegion+プロパティ(座標、スケーリング比、回転角度、X/Y軸方向のミラーリング、透明度/色など)
Spriteクラスの継承関係図:
LibGDX_3.5: 精灵(Sprite)_第1张图片
2.コード例
ゲームメインプログラムの起動エントリクラス:
package com.libgdx.test;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

/** *             */
public class MainGame extends ApplicationAdapter {

    private SpriteBatch batch;

    //   
    private Texture texture;

    //   
    private Sprite sprite;

    @Override
    public void create() {
        batch = new SpriteBatch();

        //     , badlogic.jpg        256 * 256
        texture = new Texture(Gdx.files.internal("badlogic.jpg"));

        //         ,            
        sprite = new Sprite(texture);

        //        (       )
        sprite.setPosition(64, 128);

        //                (   /   /    )       ,     Sprite(  )     ,        
        sprite.setOrigin(0, 0);

        //          ,     ,        
        sprite.setRotation(15.0F);

        //       X   Y        ,         1/2
        sprite.setScale(0.5F, 0.5F);

        //             ,        
        sprite.flip(true, false);
    }

    @Override
    public void render() {
        //     
        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        //               begin()   end()
        batch.begin();

        /* *     ,             ,    ,     ,    /      , *        SpriteBatch    Sprite,                                */
        sprite.draw(batch);

        batch.end();
    }

    @Override
    public void dispose() {
        //           
        if (batch != null) {
            batch.dispose();
        }
        /* *         texture   , sprite   TextureRegion   ,     dispose()   ,       sprite, *    sprite       texture/region           , texture           , * texture    , sprite      ,    sprite      texture    。 */
        if (texture != null) {
            texture.dispose();
        }
    }

}

最終運転結果は次の図のとおりです.
LibGDX_3.5: 精灵(Sprite)_第2张图片