Jeśli chcę przenieść się do C++ i SDL w przyszłości, czy Python i pygame to dobry sposób na nauczenie się SDL?Czy Python i pygame to dobry sposób na nauczenie się SDL?
Odpowiedz
pygame bardzo dużo streszcza interfejs SDL, dlatego nie sądzę, aby przewagę tę nadano.
Możesz nauczyć się kilku technik, sposobów implementacji logiki gry itp. W środowisku opartym na SDL, ale po przejściu na C++/SDL będziesz musiał bezpośrednio korzystać z funkcji SDL, funkcje pomocnicze/obiekty z pyGame będą całkowicie użyteczne.
Tak. Jeśli Python jest dla ciebie bardziej naturalny niż C++, dobrze byłoby najpierw nauczyć się pygame. Podczas migracji do używania SDL i C będziesz musiał przejść proces tłumaczenia, ale powinno to być mniej lub więcej mapowanie jeden-do-jednego.
Możesz spróbować pyglet Jeśli celujesz w OpenGL. To znacznie lepiej przemyślana biblioteka niż to, czym jest pygame.
Ale jeśli chcesz przejść do C++ i SDL w przyszłości, zrób to teraz. W ten sposób uczysz się SDL. Ale zanim zrobi się taką nieodpowiedzialną rzecz, dobrze byłoby najpierw sprawdzić w pyglet. Tylko dlatego, że właściwie projektujesz swoje aplikacje w C++, niezależnie od tego, jak złe są twoje biblioteki.
Oczywiście. Możesz napisać grę sdl lub narzędzia w naprawdę krótszym czasie.
Możesz zacząć z tym kodem które mają się wyświetlać dane/chimp.bmp na ekranie 468x60:
import pygame, sys,os
from pygame.locals import *
pygame.init()
window = pygame.display.set_mode((468, 60))
pygame.display.set_caption('Monkey Fever')
screen = pygame.display.get_surface()
monkey_head_file_name = os.path.join("data","chimp.bmp")
monkey_surface = pygame.image.load(monkey_head_file_name)
screen.blit(monkey_surface, (0,0))
pygame.display.flip()
def input(events):
for event in events:
if event.type == QUIT:
sys.exit(0)
else:
print event
while True:
input(pygame.event.get())
Po zapoznaniu się z SDL obiektów można łatwo przenieść do C++ (jeśli znowu chce: p Pygame jest szybki i można z nim stworzyć kompleksową grę).
Nie uważałbym Pythona (ani żadnego języka zarządzanego lub interpretowanego, o to chodzi) za dobry sposób na nauczenie się skomplikowanego zadania, ponieważ zbyt mocno izoluje on programistę od działania systemu. Jak to ujął mój przyjaciel: "Python cię kocha i chce, żebyś był szczęśliwy". Wszystko dobrze i dobrze, jeśli znasz już podstawy, ale jeśli chcesz nauczyć się, ostatnią rzeczą, którą chcesz, jest język, który wykonuje całą pracę za Ciebie.
Dowiesz się, co bardzo szybko, ale nie dlaczego, a kiedy coś pójdzie nie tak, (i ostatecznie, w każdym nietrywialnym projekcie), nie będziesz miał pojęcia, co się dzieje lub dlaczego.
pyton nie przeszkodzi cię nauka projekt i to dość dużo ważniejsze jest, aby nauczyć IMO, robię Smash Bros klon z pygame i wiele się nauczyłem w projektowaniu. A jednak nauczysz się też nie pisać zbyt wiele nieoptymalnych kodów, Python ma też sprytne i piękne sztuczki.
Python + PyGame to naprawdę świetny pomysł na naukę SDL.
Napisałem somewhat popular game that way. Python/PyGame wydaje się dużo bardziej zaawansowany niż wiązania SDL do dowolnego innego języka, a jedną wielką zaletą w porównaniu z C++ jest to, że nie muszą kompilować kodu, a przy prostym hakowaniu można nawet zmodyfikować działający program i zobaczyć informację zwrotną na żywo. Robi ogromną różnicę - jak przy użyciu graficznego programu graficznego GUI i pisania SVG w edytorze tekstów. Niestety nie możesz tego wyjąć z pudełka, ponieważ musisz trochę zaadaptować swój program, aby go zobaczyć.
Jeśli chodzi o inne zalety gry PyGame, jrpg działał z bardzo małymi zmianami w systemach Linux, Windows i OSX. Musiałem zrobić kilka poprawek do przełączania trybu pełnoekranowego i podwójnego buforowania, ponieważ były pewne różnice między systemami, ale nie było potrzeby ponownego rekompilacji. Jeśli masz jakiekolwiek problemy, możesz uzyskać dobry ślad stosu i debugować swoje problemy na żywo, to nie jest możliwe z C++, gdy pojawi się uszkodzenie pamięci lub segfault.
Naprawdę nie wiem, jak łatwo lub jak trudno byłoby mieszać C++ i Python dla gier SDL. Myślę, że to nie może być zbyt trudne, ponieważ PyGame jest dość prostym, ale bardzo ładnie stworzonym opakowaniem dla SDL, a mieszanie Python/C++ powinno być łatwe.
Dla twojego celu PySDL2 jest lepszy niż pygame. Importuje SDL2 API prawie bezpośrednio.
- 1. Najlepszy sposób na nauczenie się Ruby?
- 2. Każdy sposób na przyspieszenie Pythona i Pygame?
- 3. Python: Czy jest to dobry sposób na przesłonięcie __eq__ i __hash__?
- 4. Czy to dobry sposób na wykonanie JS OOP?
- 5. Czy to dobry sposób na klonowanie obiektu w ES6?
- 6. Dobry sposób na łączenie React i ulotek
- 7. Czy MSMQ to dobry pomysł?
- 8. Czy jest to dobry sposób na iterowanie za pośrednictwem listy powiązań .NET i usuwanie elementów?
- 9. Python 3: jak zainstalować pygame?
- 10. Dobry sposób na uniknięcie "udostępniania"?
- 11. Odpowiednik Pygame dla Ruby?
- 12. Jaki jest dobry sposób renderowania zakreślonych czcionek?
- 13. Łączenie PySide i PyGame
- 14. Czy to dobry użytek z ExtensionMethod?
- 15. Haskell SDL na OS X
- 16. czy to dobry filtr do przesłanych plików?
- 17. Pygame i blitting: biały na białym = szary?
- 18. Dobry sposób na generowanie identyfikatorów GUID na silniku aplikacji?
- 19. Czy losowy ciąg to dobry kod weryfikacyjny
- 20. Czy istnieje dobry sposób na rozszerzenie Code-First Migrations
- 21. Czy istnieje dobry sposób na wykrycie, że MySQL jest "gotowy"?
- 22. Czy istnieje dobry sposób na wykrycie nieaktualnego mount NFS
- 23. Co to dobry sposób na zastanawianie się wszystkie możliwe słowa danej długości
- 24. Android: Czy istnieje dobry sposób na utworzenie okna dialogowego Toast?
- 25. Dobry sposób na debugowanie wyjątku nullPointerException
- 26. Czy istnieje dobry sposób na wykonanie mavenify play! aplikacja ramowa?
- 27. Czy minifender może to zrobić? (.... i czy to jest dobry pomysł?)
- 28. Czy istnieje dobry sposób na tworzenie dokumentacji dla interfejsów Swig?
- 29. Czy w trigger.io jest dobry sposób na obsługę OAuth?
- 30. Dobry sposób na wstępne ładowanie .NET assembly
Link nie działa (404). – SwiftsNamesake
Jestem pewien, że nowy poprawny link jest następujący: https://taw.github.io/jrpg/ – ZN13
URL jest teraz naprawiony. – taw