0
HeyGuys!我剛剛加入了這個網站,所以我對這個問題的處理方式很輕鬆。Pygame Sprites bug?
所以,我最近開始玩PyGames,並使用pygame.sprite.Sprite模塊進行了一些測試。這裏是我的代碼:
#Game
import pygame
pygame.init()
screen_width, screen_height = 800, 600
screen = pygame.display.set_mode((screen_width,screen_height))
clock = pygame.time.Clock()
black = (0,0,0)
white = (255,255,255)
red = (255,0,0)
green = (0,255,0)
blue = (0,0,255)
class Block(pygame.sprite.Sprite):
def __init__(self, block_color = white, block_width = 64, block_height = 64):
super(Block, self).__init__()
self.image = pygame.Surface((block_width, block_height))
self.image.fill(block_color)
self.rect = self.image.get_rect()
def set_position(self, x, y):
self.rect.x = x
self.rect.y = y
def change_color(self, color):
self.image.fill(color)
def load_image(self, url):
self.image = pygame.image.load(url)
self.rect = self.image.get_rect()
block_group = pygame.sprite.Group()
a_block = Block(green)
b_block = Block(red)
c_block = Block(blue)
d_block = Block()
a_block.set_position(0,0)
b_block.set_position(0,64)
c_block.set_position(64,0)
d_block.set_position(64,64)
d_block.load_image("brick.png")
block_group.add(a_block,b_block,c_block,d_block)
running = True
while running:
screen.fill(black)
block_group.draw(screen)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
pygame.quit()
quit()
pygame.display.update()
clock.tick(10)
正如你已經可以推斷出,我意在打造this,而是得到 this這都是錯誤的。奇怪的是,每次我運行該文件時,#1和#2都是異想天開地繪製而沒有模式,所以我想知道它是否與我在while循環中更新屏幕的方式有關。
有關如何解決此問題的任何想法?在此先感謝,我希望更經常地使用此網站!
感謝您的深刻解答,現在我的代碼正在按照我的要求工作:^)。 – Yourchingoo
很高興我可以幫助並歡迎來到StackOverflow!如果這解決了您的問題,您可以考慮使用複選標記接受此答案作爲正確答案,以便其他人知道您的問題已得到解決。 :) – Isa
gotchyu breh .... – Yourchingoo