精灵和运动与箭头键

时间:2015-03-11 23:45:51

标签: python python-3.x pygame

所以我一直在为游戏制作精灵。我的目标是让我的广场图片移动。但是我在实际移动广场时遇到了困难。关于我的代码的关键事件部分有什么问题的任何帮助将非常感激。

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()

1 个答案:

答案 0 :(得分:0)

首先,不要将pygame.init()放入你的循环中。

我觉得您的问题是因为在update()的{​​{1}}方法中,sprite甚至没有定义。在方法的开头添加行event,并在其下面缩进其余部分。

for event in pygame.event.get():