我希望 pygame 中的这个立方体在我更新它时移动

问题描述

我正在更新以每帧移动 5 个像素的立方体不会移动。我检查了我的代码,但找不到问题,请发送披萨。我希望让立方体每帧向右移动 5 个像素。

#---- Main-----
import pygame,sys
from os import path
from settings import *
from sprites import *

class Game:
    def __init__(self):
        pygame.init()
        pygame.display.set_caption(TITLE)
        self.screen = pygame.display.set_mode((WIDTH,HEIGHT))
        self.clock = pygame.time.Clock()

    def update(self):
        #self.dt = self.clock.tick(FPS) / 1000
        self.new()
        self.draw()

    def draw(self):
        self.sprites.update()
        self.sprites.draw(self.screen)
        pygame.display.flip()
        self.clock.tick(30)
    def events(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                self.quit()

    def new(self):
        self.screen.fill(DARKGREY)
        self.sprites = pygame.sprite.Group()
        player = Player(self)

    def quit(self):
        pygame.quit()
        sys.exit()


while True:
    g = Game()
    g.events()
    g.update()

单独的文件

#---sprites
import pygame
from settings import *

class Player(pygame.sprite.Sprite):
    def __init__(self,game):
        self.groups = game.sprites
        pygame.sprite.Sprite.__init__(self,self.groups)
        self.image = pygame.Surface((TILESIZE,TILESIZE))
        self.image.fill(WHITE)
        self.rect = self.image.get_rect()

    def update(self):
        self.rect.x += 5

分离文件

WHITE = (255,255,255)
BLACK = (0,0)
DARKGREY = (40,40,40)
LIGHTGREY = (100,100,100)
GREEN = (0,0)
RED = (255,0)
YELLOW = (255,0)

WIDTH = 600
HEIGHT = 500
FPS = 60
TITLE = 'bruh zelda'
PLAYER_SPEED = 100

TILESIZE = 32
TILEWIDTH = WIDTH / TILESIZE
TILEHEIGHT = HEIGHT / TILESIZE

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)