0
私はゲームをしています。このゲームでは、ゲームウィンドウに表示するには黄色い矩形が必要ですが、黄色の長方形が表示されませんでした。私はPlayer()
クラスの四角形を描いています。誰でも助けてくれますか?スプライトが私の画面に表示されない理由を理解できない
main.py
# IMPORTS
import pygame
from config import *
from sprites import *
# GAME
class Game():
def __init__(self):
# INIT PYGAME
pygame.init()
pygame.mixer.init()
pygame.display.set_caption(TITLE)
self.screen = pygame.display.set_mode((WIDTH, HEIGHT))
self.clock = pygame.time.Clock()
self.running = True
# NEW GAME
def new(self):
self.allSprites = pygame.sprite.Group()
self.player = Player()
self.allSprites.add(self.player)
self.run()
# RUN GAME
def run(self):
self.playing = True
while self.playing:
self.clock.tick(FPS)
self.events()
self.update()
self.draw()
self.animate()
self.collision()
# DRAW
def draw(self):
self.screen.fill(WHITE)
pygame.display.update()
# ANIMATE
def animate(self):
pass
# DETECT COLLISION
def collision(self):
pass
# CHECK FOR EVENTS
def events(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
if self.playing:
self.playing = False
self.running = False
# UPDATE GAME
def update(self):
self.allSprites.update()
# GAME OVER
def gameOver(self):
pass
# START SCREEN
def startScreen(self):
pass
# END SCREEN
def endScreen(self):
pass
game = Game()
game.startScreen()
while game.running:
game.new()
game.gameOver()
pygame.quit()
quit()
sprites.py
import pygame
from config import *
class Player(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.img = pygame.Surface((30, 40))
self.img.fill(YELLOW)
self.rect = self.img.get_rect()
self.vx = 0;
self.vy = 0;
def update(self):
self.vx = 0
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
self.vx -= 5
if keys[pygame.K_RIGHT]:
self.vx += 5
if keys[pygame.K_UP]:
self.vy -= 5
if keys[pygame.K_DOWN]:
self.vy += 5
self.rect.x += self.vx
self.rect.y += self.vy
config.py
# IMPORTS
import pygame
# ENTIRE GAME VARIABLES
TITLE = "Sky Jumper"
WIDTH = 480
HEIGHT = 600
FPS = 60
# COLORS
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
YELLOW = (255, 255, 0)
'print()'を実行すると、コードのどの部分が実行されているのか、そしてあなたが持っているものがわかります。 – furas
あなたは 'self.allSprites.draw()'や 'self.player.draw()'を持っていないので描画しません。 – furas
BTW: 'self.allSprites.draw()'は、スプライトが 'self.rect'と' self.image'を持っていて、 'self.img' – furas