surf588 发表于 2021-10-30 22:27:53

请教,大神,代码没有错误,为什么运行后没有效果

import pygame
import sys

WIDTH = 360
HEIGHT = 480
FPS = 30

WHITE = (255,255,255)
BLACK = (0,0,0)
RED = (255,0,0)
GREEN = (0,255,0)
BLUE = (0,0,255)

pygame.display.set_caption("my game")
clock=pygame.time.Clock()
pygame.init()
pygame.mixer.init()
screen=pygame.display.set_mode((WIDTH,HEIGHT))
screen.fill(BLACK)

class Player(pygame.sprite.Sprite):
    def __init__(self):
      pygame.sprite.Sprite.__init__(self)
      self.image=pygame.Surface((100,100))
      self.image.fill(GREEN)
      self.rect=self.image.get_rect()
      self.rect.center=(WIDTH/2,HEIGHT/2)
    def update(self):

      self.rect.x+=5

      if self.rect.left>WIDTH:

            self.rect.right=0
all_sprites=pygame.sprite.Group()
player=Player()
all_sprites.add(player)


running=True
while running:
    clock.tick(FPS)
    for event in pygame.event.get():
      if event.type == pygame.QUIT:
            running=False

all_sprites.update()

all_sprites.draw(screen)
pygame.display.flip()

傻眼貓咪 发表于 2021-10-31 08:33:50

all_sprites.update()

all_sprites.draw(screen)
pygame.display.flip()

以上几段代码应该在 while 里面

一般游戏渲染类似于一张张图片摆在眼前一样,由于速度超级快(以FPS帧计算),所以可以骗过我们人类的眼睛。while 语句类似于把已经画好的图一张张呈现在画面里,但是你的呈现图片的代码却在 while 外面?

surf588 发表于 2021-11-1 09:28:57

傻眼貓咪 发表于 2021-10-31 08:33
all_sprites.update()

all_sprites.draw(screen)


谢谢帮助,已按解决。
页: [1]
查看完整版本: 请教,大神,代码没有错误,为什么运行后没有效果