2014-04-10 4 views
1

이것은 libgdx에서 setposition을 올바르게 사용하는 방법은 무엇입니까?

sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2); 

우리가 사진을 중심으로하기 위해 음수 값으로 위치를 설정해야하는 이유 v0.9.7

의 GDX - 설정 - ui.jar하여 자바 파일 생성? libgdx 그림의 참조 기준점은 어디에 있습니까? (왼쪽 하단 모서리?) libgdx의 원점은 왼쪽 아래 모서리라고 들었습니다. 위의 값을 감안할 때 그림의 일부는 화면 외부에 있어야합니다. 나 엄청 혼란스러워. 사전에 감사

전체 목록 :

package com.packtpub.libgdx.basic; 

import com.badlogic.gdx.ApplicationListener; 
import com.badlogic.gdx.Gdx; 
import com.badlogic.gdx.graphics.GL10; 
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 Basic 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(GL10.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() { 
    } 
} 

답변

1

그것은 년대 직교 카메라의 기본 중심점 (0, 0, 0), 그래서 때문에 당신이 단지에서 이미지를 그리면 (0,0) 그것의 밑바닥 좌 코넷은 스크린의 중앙에있을 것이다.

당신은 cam.position.set를 사용하여이 중심점을 변경할 수 있습니다 방법

(/ 2 시간/2, 0 승) OrthographiCamera 사용의 더 자세한 예를 들어 여기 참조 : https://github.com/libgdx/libgdx/wiki/Orthographic-camera

+0

가 알았어요! 고마워, Colin !!! :) – samwhs

관련 문제