




pygame довольно сильно абстрагирует интерфейс SDL, поэтому я не думаю, что у него есть много преимуществ.
Вы можете изучить некоторые методы, способы реализации игровой логики и т. д. В среде на основе SDL, но после перехода на C++ / SDL вам придется использовать функции SDL напрямую, вспомогательные функции / объекты из pyGame будут полностью полезными.
да. Если python для вас гораздо более естественен, чем C++, было бы неплохо сначала изучить pygame. При переходе на использование SDL и C вам придется пройти процесс перевода, но это должно быть более или менее однозначное сопоставление.
Вы можете попробовать пиглет, если вы ориентируетесь на OpenGL. Это намного лучше продуманная библиотека, чем pygame.
Но тогда, если вы хотите перейти на C++ и SDL в будущем, сделайте это сейчас. Таким образом вы действительно изучаете SDL. Но перед тем, как сделать такую безответственную вещь, было бы неплохо сначала проверить пиглет. Просто потому, что для правильной разработки ваших приложений на C++, независимо от того, насколько плохи ваши библиотеки.
Конечно. Вы можете написать SDL-игру или инструменты за меньшее время.
Вы можете начать с этого кода, который отображает файл data / chimp.bmp на экране 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())
Когда вы знакомы с объектами SDL, вы можете легко перейти на C++ (если вы снова захотите: p Pygame работает быстро, и с ним можно создавать сложные игры).
Я бы не стал считать Python (или любой другой управляемый или интерпретируемый язык, если на то пошло) хорошим способом изучения любой сложной задачи, потому что он слишком изолирует программиста от работы системы. Как сказал один мой друг, «Python любит вас и хочет, чтобы вы были счастливы». И это все хорошо, если вы уже знаете основы, но если вы хотите учиться, последнее, что вам нужно, - это язык, который сделает всю работу за вас.
Вы очень быстро узнаете, что именно, но не почему, а затем, когда что-то пойдет не так (а в конечном итоге это произойдет в любом нетривиальном проекте), вы не будете знать, что происходит и почему.
python не помешает вам изучить дизайн, и это гораздо более важная вещь для изучения IMO, я делаю клон smash bros с pygame, и я многому научился в дизайне. И все же вы научитесь не писать слишком много неоптимального кода, у python тоже есть умные и красивые хаки.
Python + PyGame - действительно отличная идея для изучения SDL.
Я написал довольно популярная игра таким образом. Python / PyGame кажется намного более продвинутым, чем привязка SDL к любому другому языку, и одно огромное преимущество по сравнению с C++ состоит в том, что не нужно компилировать код, и с помощью некоторого простого взлома можно даже изменить запущенную программу и увидеть отзывы вживую. Это имеет огромное значение - например, использование программы векторной графики с графическим интерфейсом пользователя и запись SVG в текстовом редакторе. К сожалению, вы не получаете этого из коробки, потому что вам нужно немного адаптировать свою программу, чтобы увидеть это.
Что касается других преимуществ PyGame, jrpg работал с очень небольшими изменениями в Linux, Windows и OSX. Мне пришлось внести некоторые изменения в переключение полноэкранного режима и двойную буферизацию, поскольку между операционными системами были некоторые различия, но перекомпиляция не потребовалась. Если у вас есть какие-либо проблемы, вы можете получить хорошую трассировку стека и отладить свои проблемы в реальном времени, что на самом деле невозможно с C++, если вы получаете повреждение памяти или segfault.
Я действительно не знаю, насколько легко или сложно будет смешивать C++ и Python для ваших SDL-игр. Я думаю, что это не может быть слишком сложно, поскольку PyGame - довольно простая, но очень хорошо сделанная оболочка для SDL, а смешивание Python / C++ должно быть достаточно простым.
Я уверен, что новая правильная ссылка такова: taw.github.io/jrpg
Для вашей цели PySDL2 лучше, чем pygame. Он почти напрямую импортирует SDL2 API.
Ссылка не работает (404).