Ingress에서 사용하는 게임 프레임워크libGDX의 기초 3~무늬 아틀라스 편

10178 단어 AndroidlibGDXJavaiOS
지난번까지 보신 분들은 설명이 필요 없는 크로스플랫폼 게임 프레임의libGDX입니다.Windows/Mac/Linux/Android/iOS/웹 지원
가끔 거스를 부추긴다는 제목이 있어서 보기 흉해요.양해 부탁드립니다.내용은 여느 때와 같다.
이번에는 무늬 아틀라스에 대해 설명하겠습니다.
지금까지 모든 무늬 파일에는 그림이 그려져 있었다.
그러나 무늬를 바꾸는 데 시간이 걸리기 때문에 기본적으로 바꾸지 않는다.
그것은 무늬 아틀라스라고 불린다.완전 투명한 부분을 잘 공유하거나 무늬의 크기가 2의 멱이 되기 때문에 배치 효율을 높이는 효과도 있다.
요점은 그림 파일과 그림 파일의 어느 부분을 사용하려고 했는지, 좌표와 사이즈가 유지된 두 부분을 이용해서 그리는 것입니다.

텍스쳐 아틀라스 파일 준비


먼저 텍스쳐 아틀라스 파일을 준비해야 합니다.
그 기초로 두 개 이상의 이미지를 준비하세요.
무늬 아틀라스를 만드는 도구가 여기 있습니다.
결제 후 다양한 기능을 이용할 수 있지만 이번에는 별다른 기능이 없어 무료 버전이라 문제없다.
를 시작한 후 libGDX를 형식으로 선택합니다.이곳에서는cocos2d 등 각종 프레임을 선택할 수 있다.

이미지 파일을 윈도우로 드래그합니다.
여기에 버려진 파일 이름은 각각 다음과 같다.
  • 001.png
  • 002.png
  • 003.png
  • 004.png
  • 출력할 파일 이름을 설정하고publish 단추를 누르면 출력할 수 있습니다.
    이때 무료 버전이면 기본 설정이면 색이 이상하게 그려지기 때문에 알고리즘에서는 BASIC, trim 모드에서는 None을 선택한다.

    pg와 txt 파일이 완성되었는지 확인하십시오.

    절차.


    클래스 경로에 pg와 txt 파일을 추가합니다.IDE에 원본 패키지에 추가합니다.
    아래와 같다.

    소스는 아래와 같다.
    MainListener3.java
    
    package test.libgdx;
    
    import com.badlogic.gdx.ApplicationListener;
    import com.badlogic.gdx.Gdx;
    import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
    import com.badlogic.gdx.files.FileHandle;
    import com.badlogic.gdx.graphics.GL20;
    import com.badlogic.gdx.graphics.g2d.SpriteBatch;
    import com.badlogic.gdx.graphics.g2d.TextureAtlas;
    
    public class MainListener3 implements ApplicationListener{
    
        SpriteBatch batch;
        TextureAtlas atlas;
    
        @Override
        public void create() {
            FileHandle fh = Gdx.files.internal("atlas/data.txt");
            atlas = new TextureAtlas(fh);
    
            batch = new SpriteBatch();
        }
    
        @Override
        public void resize(int w, int h) {
        }
    
        @Override
        public void render() {
    
            Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
            Gdx.gl.glClearColor(0, 0, 0, 1);
    
            batch.begin();
            batch.setColor(1, 1, 1, 1);
    
            TextureAtlas.AtlasRegion region1 = atlas.findRegion("001");
            batch.draw(region1, 0, 0);
    
            TextureAtlas.AtlasRegion region2 = atlas.findRegion("002");
            batch.draw(region2, 300, 0);
    
            TextureAtlas.AtlasRegion region3 = atlas.findRegion("003");
            batch.draw(region3, 0, 200);
    
            TextureAtlas.AtlasRegion region4 = atlas.findRegion("004");
            batch.draw(region4, 300, 200);
    
            batch.end();
    
        }
    
        @Override
        public void pause() {
        }
    
        @Override
        public void resume() {
        }
    
        @Override
        public void dispose() {
        }
    
        //起動部分
        public static void main(String[] args) {
            ApplicationListener listener = new MainListener3();
            new LwjglApplication(listener);
        }
    }
    
    

    실행


    실효NetBeans에서 파일(Shift+F6)을 단독으로 실행할 때 자원 파일이 처음에는 포함되지 않을 수 있으므로 전체 프로젝트(F11)를 구축하십시오.

    해설

    TextureAtlas의 구조기에서 방금 TexturePacker가 만든 txt 파일을 지정합니다.png을 지정하지 않습니다.이 txt 파일에서 png 파일을 읽을 수 있도록 설정되어 있기 때문에, 반드시 같은 폴더에서 짝을 지어야 합니다.
    txt 파일의 내용을 보면 아주 간단한 제작이라는 것을 알 수 있으니 한번 가보세요.
    읽기 완료.
    생성된 TextureAtlas류 실례#findRegion(String key) 방법을 사용하여 각 무늬의 그리기 범위를 얻습니다.여기에 전달된 문자열 매개 변수는 드래그한 001입니다.png 등 파일 이름에서 확장자를 삭제합니다.TextureRegion 실례를 그리려면 이전 Texture 클래스와 같은 실례를 사용하십시오.바로batch에게 건네주세요.

    다음에는요?


    다음쯤부터는 지금까지의 낮은 수준의 API와 달리 드디어 게임 등에 활용된 높은 수준의 API를 해설해보고 싶다.

    좋은 웹페이지 즐겨찾기