255我是python / pygame的新手。我正在尝试制作一个可移动的精灵,但是这个代码只会打开一个没有精灵的黑色pygame窗口。它甚至不应该是黑色的,因为我写道,窗口应该是白色的。请帮我。谢谢。
import pygame
import os, sys
import itertools
import pygame
import random
pygame.init()
screen = pygame.display.set_mode((640,400))
class killer(pygame.sprite.Sprite):
def _init_(self):
pygame.sprite.Sprite.__init__(self)
self.screen = screen
self.image = pygame.image.load("player.png")
self.image = self.image.convert()
self.rect = self.image.get_rect()
self.rect.center = (320, 400)
self.dx = 0
self.dy = 0
self.x = self.rect.centerx
self.y = self.rect.centery
def update(self):
self.CheckBounds()
def checkBounds(self):
screen = self.screen
if self.x > screen.get_width():
self.x = screen.get_width()
if self.x < 0:
self.x = 0
def handle_keys(self):
key = pygame.key.get_pressed()
dist = 1
if key[pygame.K_DOWN]: # down key
self.y += dist # move down
elif key[pygame.K_UP]: # up key
self.y -= dist # move up
if key[pygame.K_RIGHT]: # right key
self.x += dist # move right
elif key[pygame.K_LEFT]: # left key
self.x -= dist # move left
def draw(self,surface):
surface.blit(self.image, (self.x, self.y))
ZK = killer()
Clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
running = False
ZK.handle_keys()
screen.fill((255,255,255))
ZK.draw(screen)
pygame.display.update()
clock.tick(40)
答案 0 :(得分:0)
您的代码充满了错误:
1。)压痕被打破了
2.)killer
从不运行初始值设定项,因为您将其命名为_init_
,而不是__init__
3.)没有名为clock
的变量,因为您将其命名为Clock
4.)当您关闭窗口时,将引发错误,因为在视频系统关闭后将调用pygame.key.get_pressed
(因为您之前致电pygame.quit
)
修复此问题,您的程序运行正常。
答案 1 :(得分:-1)
1)。 第11行:你有
def _init_(self):
应该是
def __init__(self):
2)。 第65行:你有
clock.tick(40)
应该是
Clock.tick(40)
因为您在第50行将时钟命名为“时钟”
Clock = pygame.time.Clock()
〜只是改变这些错误,你应该好好去!〜