所以我一直在为游戏制作精灵。我的目标是让我的广场图片移动。但是我在实际移动广场时遇到了困难。关于我的代码的关键事件部分有什么问题的任何帮助将非常感激。
import pygame
import sys
import time
from time import sleep
import random
from pygame.locals import *
image1 = pygame.image.load('square.png')
class sprite(pygame.sprite.Sprite):
def __init__(self):
self.image = pygame.image.load('square.png')
self.image = self.image.convert_alpha()
self.rect=self.image.get_rect()
self.x = 100
self.y = 100
self.dx=50
self.dy=50
def update(self):
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
self.x -= self.dx
if event.key == pygame.K_DOWN:
self.x += self.dx
if event.key == pygame.K_LEFT:
self.x -= self.dx
if event.key == pygame.K_RIGHT:
self.x += self.dx
self.rect.center=(self.x,self.y)
if event.type == pygame.KEYUP:
if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
sprite.dy = 0
if event.key == pygame.K_RIGHT or event.key == pygame.K_LEFT:
sprite.dx = 0
def background(self, surface):
self.image2 = pygame.image.load(white.png)
screen.blit(self.image2, (0,0))
def draw(self, surface):
surface.blit(self.image, (self.x, self.y))
screen = pygame.display.set_mode((1250, 500))
screen.fill((255,255,255))
my_sprite=sprite()
while True:
pygame.init()
pygame.event.get()
pygame.event.pump
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
my_sprite.draw(screen)
pygame.display.update()
答案 0 :(得分:0)
首先,不要将pygame.init()
放入你的循环中。
我觉得您的问题是因为在update()
的{{1}}方法中,sprite
甚至没有定义。在方法的开头添加行event
,并在其下面缩进其余部分。
for event in pygame.event.get():