/ / Pygame zooming / scrolling window - python, scroll, zoom, transform, pygame

Okno powiększania / przewijania Pygame - python, scroll, zoom, transform, pygame

Obecnie pracuję nad projektem z pygame i potrzebuję móc oglądać część powierzchni, poruszać się, powiększać i pomniejszać ect

Czy ktoś może polecić sposób osiągnięcia tegoefektywnie, w tej chwili działam w zawiłej metodzie, ale jest zbyt wolna i redukuje grę do około 1 kl./s przy powiększeniu, aby zobaczyć cały obszar. (moja wersja tylko przewijania i bez powiększania działa dobrze bez opóźnień)

Wygląda na to, że dokumentacja pygame.transform.scroll wygląda obiecująco, ale nie jestem pewien, jak poprawnie ją zaimplementuję za pomocą pygame.transform.scale do powiększania i pomniejszania

Każda pomoc mile widziana

aktualizacja: Trochę się bawiłem i działałemskalowanie obiektów i ich pozycji przed ich podciekaniem. Teraz natrafiłem na problem polegający na tym, że skalowanie wygląda na nienaturalne ze względu na niską rozdzielczość zdarzeń kółka przewijania pygame, więc staram się teraz wprowadzić jakiś rodzaj wygładzania.

Odpowiedzi:

1 dla odpowiedzi № 1

Nie jestem do końca pewien, co dokładnie robisz. Mogę jednak powiedzieć, że nie brzmi to tak, jakbyś podchodził do problemu w sposób pasujący do Pygame.

Wydaje mi się, że polegasz na oprogramowaniualgorytmy skalowania, których używa Pygame, aby skalować duży obraz (cały świat gry) do znacznie mniejszego rozmiaru. Coś takiego, na dużych powierzchniach i na każdej ramce, znacznie obciąży procesor.

Jeśli powiększanie jest naprawdę ważne, zalecam zmianę biblioteki, która ma skalowane przyspieszanie sprzętowe, tj pyglet. W końcu, jak często widziałeś, jak gry pomniejszają liczbę dni przed GPU? Praktycznie nigdy, to jak często.


0 dla odpowiedzi nr 2

Możesz używać pygame z OpenGL, ponieważ znasz już pygame. W przeciwnym razie pirglet jest podobną biblioteką opengl.


-1 dla odpowiedzi nr 3

Do gry, której nigdy nie skończyłem, użyłemtrygonometria, aby uzyskać nowe pozycje rysowania za pomocą swobodnie powiększonego i obróconego aparatu (nieco skomplikowane). Nie trzeba było wiele czasu na obliczenie, ale myślę, że bardziej efektywne jest korzystanie z innych bibliotek. Ale jeśli chcesz mieć kilka przykładów, po prostu zapytaj.