Więc próbuję zrobić to wygenerować obraz tła dla mojej gry, rysując pixmapy do tekstury. Do tej pory mogę to zrobić, ale teraz muszę narysować pixmapy odwrócone w osi X lub Y do tekstury. Jednak nie mogę znaleźć niczego, aby to zrobić. Klasa pikseli nie zapewnia tej funkcjonalności. Wtedy pomyślałem, że mogę narysować odwrócony region tekstury na teksturę, ale jak dotąd nie znalazłem, jak to zrobić. Tak więc zastanawiałem się, jak mogę zrobić coś takiego, czy byłoby możliwe przeniesienie obrazu png do innych bibliotek java, a następnie utworzenie pixmapy z tego odwróconego obrazu?jak odwrócić pixmapę, aby narysować teksturę w libgdx?
10
A
Odpowiedz
7
ja również nie widzę innego wyjścia oprócz iteracyjne piksele:
public Pixmap flipPixmap(Pixmap src) {
final int width = src.getWidth();
final int height = src.getHeight();
Pixmap flipped = new Pixmap(width, height, src.getFormat());
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
flipped.drawPixel(x, y, src.getPixel(width - x - 1, y));
}
}
return flipped;
}
0
Oto rozwiązanie, które nie wymaga tworzenia nowego Pixmap. Kod ten można również zmodyfikować, aby odwrócić mapę w pionie i poziomie, zamieniając rogi obrazu pikselowego zamiast zamieniać piksele po przeciwnych stronach obrazu.
public static void flipPixmap(Pixmap p){
int w = p.getWidth();
int h = p.getHeight();
int hold;
//change blending to 'none' so that alpha areas will not show
//previous orientation of image
p.setBlending(Pixmap.Blending.None);
for (int y = 0; y < h/2; y++) {
for (int x = 0; x < w/2; x++) {
//get color of current pixel
hold = p.getPixel(x,y);
//draw color of pixel from opposite side of pixmap to current position
p.drawPixel(x,y, p.getPixel(w-x-1, y));
//draw saved color to other side of pixmap
p.drawPixel(w-x-1,y, hold);
//repeat for height/width inverted pixels
hold = p.getPixel(x, h-y-1);
p.drawPixel(x,h-y-1, p.getPixel(w-x-1,h-y-1));
p.drawPixel(w-x-1,h-y-1, hold);
}
}
//set blending back to default
p.setBlending(Pixmap.Blending.SourceOver);
}
Powiązane problemy
- 1. Libgdx jak odwrócić BitmapFont?
- 2. Jak narysować bitmapfont na scenie w libgdx?
- 3. jak narysować linie siatki z libgdx
- 4. LIBGDX: Jak narysować wypełniony wielokąt z shaperendererem?
- 5. jak narysować niestandardowe kształty za pomocą prostej tekstury w libgdx?
- 6. Jak narysować tło w openGL
- 7. (Java LibGDX) Jak zmienić rozmiar moich tekstur w LibGDX?
- 8. Jak wypełnić teksturę w cocos2d?
- 9. Jak dodać teksturę, aby wypełnić kolory w ggplot2?
- 10. Jak mogę narysować tekst za pomocą Libgdx/Java?
- 11. OpenGL - Renderowanie w teksturę
- 12. Jak mogę narysować okrąg w Unity3D?
- 13. Jak odwrócić PCA w prcomp, aby uzyskać oryginalne dane
- 14. Debugowanie w libGDX
- 15. Jak odwrócić słownik w Julia?
- 16. Jak odwrócić matrycę w F #?
- 17. narysuj pikselowaną teksturę
- 18. elegancki sposób, aby odwrócić kolejność kolumn
- 19. Jak skalować ikonki w libgdx zgodnie z rozdzielczością ekranu?
- 20. Jak odwrócić tablicę w Go?
- 21. Jak odwrócić słownik w Pythonie?
- 22. jak odwrócić __m128 w ints
- 23. odwrócić ciąg w Pythonie
- 24. Jak mogę powiedzieć ORM Django, aby odwrócić kolejność wyników zapytania?
- 25. Jak odwrócić listę QList?
- 26. Jak odwrócić bity bajtu?
- 27. Ustaw teksturę według glUniform1i
- 28. Czy istnieje sposób, aby odwrócić formatowanie przez Intl.NumberFormat w JavaScript
- 29. Libgdx Czy SpriteBatch rysuje do StencilBuffer?
- 30. Jak odwrócić połączoną listę?
Pamiętaj, aby usunąć oryginalny Pixmap –
Thx! Btw, jeśli chcesz odwrócić oś Y, zamiast tego po prostu wykonaj 'flipped.drawPixel (x, y, src.getPixel (x, height - y - 1));'. – Sawny
Na wypadek, gdybyś chciał obrócić pixmapę o 90 stopni: Stworzyłem metodę inspiracji Twoim pomysłem, zobacz http://stackoverflow.com/a/34362685/2399024 – donfuxx