我有一款遊戲,我正在用pygame庫製作Python。其中,我有兩個班級,導致屏幕出現的主類,圖像等等,以及創建和呈現我的怪物精靈的怪物類,它們是:如何在Pygame中連續移動圖像
主類:
import pygame, sys, random
from monster import *
pygame.init()
class Main:
clock = pygame.time.Clock()
screenSize = (500,500)
background = pygame.image.load("C:/Users/Nathan/PycharmProjects/Monsters II A Dark Descent/images/background.jpg")
screen = pygame.display.set_mode(screenSize)
pygame.display.set_caption("MONSTERS!")
monsters = pygame.sprite.Group()
counter = 0
x = 450
while counter < 5:
y = random.randint(50,450)
monster = Monster(x,y)
monsters.add(monster)
counter = counter + 1
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
screen.blit(background,(0,0))
for monster in monsters:
monster.render(screen)
x=x-1 #This doesn't move the sprites
clock.tick(60)
pygame.display.flip()
Main()
怪物等級:
import random, pygame
class Monster(pygame.sprite.Sprite):
def __init__(self, x, y):
pygame.sprite.Sprite.__init__(self)
self.x = x
self.y = y
self.image = pygame.image.load("C:\Users\Nathan\PycharmProjects\Monsters II A Dark Descent\images\monster.png")
def render(self, screen):
screen.blit(self.image, (self.x, self.y))
我想要的怪物,直到他們打在屏幕的另一端通過一個隨機x值繼續向左移動。在那之後,我希望他們能夠傳送回到他們的出發點並重新執行。在主類中,我嘗試在主循環中添加「x = x + 1」,以至少讓它們移動一個,但它不起作用。我也試着用「x = x + 1」做出一個不起作用的循環。如果你需要更多細節,請告訴我。感謝您的時間。
感謝您的答案!它確實有幫助。如果沒有太多的麻煩,你知道我怎麼能讓怪物一次產卵一次,在它們產卵之間有一段時間的延遲?謝謝。 – user163505
@ user163505使用pygame.Clock。時鐘的滴答方法返回自上次調用以來的毫秒數。如果你在一個循環中調用它,並存儲ms的總和,你將能夠添加一個新的怪物到列表中,並重置時鐘。 –
謝謝!我會檢查你的答案。 – user163505