2013-04-06 1 views
0

Я пытаюсь перенести какой-то код с Javascript на Python, и у меня возникли проблемы, даже когда вы узнаете, с чего начать. Я смотрел хороший десяток руководств для PyGame, но ни один из них, похоже, не щелкнул для меня. Итак, я надеялся получить здесь быстрый пример или, по крайней мере, точку в правильном направлении.Как бы вы нарисовали несколько экранов в PyGame (только в одном окне)?

Я хочу сделать несколько экранов. Я могу переключаться между ними, в зависимости от того, что делает пользователь в то время, и даже показывать два бок о бок. На данный момент у меня есть Javascript, который рисует случайные круги на экране. Логика PyGame - единственное, с чем я столкнулся.

Here's my javascript for reference.

ответ

0

Pygame является оболочкой для SDL. SDL использует поверхность для представления растрового изображения или всего, что можно рисовать на экране. С pygame.display.set_mode((w,h),0,d) вы можете получить поверхность или весь холст. Затем вы можете нарисовать или разжечь другие поверхности, а затем вызвать flip(), чтобы показать изменения. Если вы хотите иметь несколько экранов, вы можете иметь текущий номер состояния и соответственно экранировать экраны. Например:

if(current_state == MAIN_SCREEN): 
    drawAll(screen) 
else 
    drawEnemiesOnly(screen) 

вы можете изменить экраны с помощью цифровых клавиш:

for event in pygame.event.get(): 
     if event.type == KEY_DOWN: 
      if(event.key == K_1): 
       current_state = 1 
1

Вы можете создать Subsurface для каждого подэкране, который вы хотите создать.

Затем вы можете рассматривать каждый, как если бы это была полноэкранная/одиночная поверхность, но они все еще ссылаются на исходный экран.