저는 libGDX와 java에 익숙하지 않기 때문에 많은 튜토리얼을 따라 왔습니다. 그래서 나는 매회마다 나를 바로 잡을 수 있다고 느낀다! (코드 비효율적 인 경우에도 그렇습니다!)LibGDX 해시 맵에서 회전하는 스프라이트
현재 단일 스프라이트 대신 모든 유형의 스프라이트를 회전시키는 문제가 있습니다.
나는 내 말은하는 방법을 보여 드리겠습니다 : 스프라이트의 3 가지 크기가 있습니다
: 여기
는 구체적인이다.은 내가
Sprite sprite = new Sprite();
에 모든 시간을 필요가 없습니다 (가정이 무거운 작업의)가 내가 생각 (해시 맵에서 하나를 참조하여 스프라이트를 만들려면 3 개 스프라이트를 저장하는 해시 맵을 사용 ?)
문제 : 특정 스프라이트에 회전을 지시하면 서로의 크기가인 스프라이트를 회전시킵니다.
내가 해시 맵 참조를 회전시키고 있다는 의혹이 있습니다 ... 그게 올바른 말입니다.
이
내가 사용했던 과정입니다 :hashpmap :
final HashMap<String, Sprite> spriteMap = new HashMap<String, Sprite>();
텍스처 아틀라스 : 텍스처 아틀라스에서 지역과
spriteAtlas = new TextureAtlas("sprites.txt");
채우기 해시 맵 :
private void init spriteMap() {
Array<AtlasRegion> regions = spriteAtlas.getRegions();
for (int i = 0; i < regions.size; i++) {
AtlasRegion region = regions.get(i);
Sprite sprite = spriteAtlas.createSprite(region.name);
float width = sprite.getWidth()/SCALE;
float height = sprite.getHeight()/SCALE;
sprite.setSize(width, height);
sprite.setOrigin(0, 0);
sprite.scale(1f);
spriteMap.put(region.name, sprite);
}
}
해시 맵에서 스프라이트 "예"를 만들 :
private void createNewSprite() {
Sprite sprite;
sprite = spriteMap.get(name);
sprite.setPosition(x, y);
sprite.rotate(rotation);
spriteArray.add(sprite);
}
는 어쩌면 나는 실제로 충분히 해시 맵에서 스프라이트를 외삽 아니에요? 이 수수께끼를 알아 내기 위해 다른 것이 필요한지 알려주세요.
정말 고마워요!
Sprite 복사 생성자를 사용하지 못하게 될 수도 있습니다. 이것을보십시오 :'sprite = new Sprite (spriteMap.get (name)); ' – Orin
[this] (http://stackoverflow.com/questions/16119522/libgdx-what-is-the-properway - 투 - 배우 -)? 또는 아마도 두 번째 생성자 [여기] (https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g2d/Sprite.html)? – Descrubb
예 두 번째 생성자에 대해 이야기했습니다. 지금은지도에서 스프라이트의 참조를 가져 와서 새로운 위치로 설정하고 회전하는 것입니다. 그래서 당신이 할 때마다 그 참조를 공유하는 모든 스프라이트도 회전하고 있습니다. – Orin