2008-10-26 16 views

Odpowiedz

5

pygame bardzo dużo streszcza interfejs SDL, dlatego nie sądzę, aby przewagę tę nadano.

6

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.

5

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.

1

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.

3

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ę).

0

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.

1

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.

15

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.

+2

Link nie działa (404). – SwiftsNamesake

+0

Jestem pewien, że nowy poprawny link jest następujący: https://taw.github.io/jrpg/ – ZN13

+0

URL jest teraz naprawiony. – taw

1

Dla twojego celu PySDL2 jest lepszy niż pygame. Importuje SDL2 API prawie bezpośrednio.

Powiązane problemy