Python и pygame - хороший способ изучить SDL?

Если в будущем я захочу перейти на C++ и SDL, будут ли Python и pygame хорошим способом изучить SDL?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
18
0
23 213
9

Ответы 9

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++ должно быть достаточно простым.

Ссылка не работает (404).

SwiftsNamesake 23.08.2014 06:54

Я уверен, что новая правильная ссылка такова: taw.github.io/jrpg

ZN13 27.07.2016 00:33

Для вашей цели PySDL2 лучше, чем pygame. Он почти напрямую импортирует SDL2 API.

Другие вопросы по теме