2013-05-23 3 views
-1

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

ответ

2

Я не собираюсь сделать для вас код, но вот то, что вам нужно сделать

  • Blit врагов на экране в точке или в случайных координатах

  • случайным образом изменить координаты или направление врага, чтобы он случайно перемещался

  • то вам нужно было определить, касается ли героя к нему врага, для этого вы можете использовать pygame.Rect.colliderect (вам понадобится t о заставить игрок и враги прямоугольники)

  • затем сделать что-то, если два касания

вы можете сделать, может быть более простой игрой для Youre первой, но это может быть хорошим вызов также вы , безусловно, необходимо использовать произвольный модуль, чтобы получить случайный Интс и такие

, чтобы сделать изображение икры каждые х секунд здесь пример код:

import math, sys, os, pygame, random, time 

pygame.init() 
screen = pygame.display.set_mode((500,500)) 
pygame.display.set_caption('Example') 

black = (0, 0, 0) 

def shapeBlit(): 
    screen.fill(white) 
    smiley = pygame.image.load('picture.jpg') 
    x = random.randint(1,100) 
    y = random.randint(1,100) 
    screen.blit(smiley,(x,y)) 

c = 0 

done = False 
while done==False: 
    for event in pygame.event.get(): # User did something 
     if event.type == pygame.QUIT: # If user clicked close 
      done=True # Flag that we are done so we exit this loop 

    screen.fill(black) 
    while c == 0: 
     shapeBlit() 
     pygame.display.flip() 
     time.sleep(5) 
pygame.quit() 

это сделает изображение регенерированным каждые 5 секунд в случайном месте, но вы хотите, чтобы изображение было прямым, а не просто ярким изображением. Также вам может потребоваться переключить несколько вещей, но это только основная идея.

+0

thank я понимаю движение и случайное размещение, купите проблему mt, я не знаю, как порождать один, скажем каждые 15 секунд, неопределенно. –

+0

, так что вы хотите, чтобы первый исчез, когда следующий из них появится: – Serial

+0

посмотрите на мою Редактировать! также вы можете использовать что-то другое, отличное от time.sleep, потому что это полностью останавливает вашу программу в течение 5 секунд, и ничего не произойдет, это просто пример, который вы можете понять, – Serial