pygame用键盘移动图像

时间:2014-11-23 18:06:50

标签: python keyboard pygame

我对pygame有些困难。我试图创建一个简单的游戏,但到目前为止,我似乎无法使用键盘显示图像并在屏幕上移动。我很乐意解决这个问题所以我可以继续前进并添加更多详细信息,但直到它我不幸被卡住了。我非常感谢任何饲料和支持

enter code here import math, os, pygame, random
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((640,480))

running = True
while running:
   for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False
    if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
        running = False

class Game(object):
 def main(self, screen):

    background = pygame.image.load("background.png")
    image = pygame.image.load("plane.png")
    sprites = pygame.sprite.Group()
    self.player = Player(sprites)
    while 1:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                return
            if event.type == pygame.KEYDOWN and event.key ==pygame.K_ESCAPE:
                return
        sprites.update()   
        screen.fill((200,200,200))
        screen.blit(background,(0,0))
        sprites.draw(screen)       
        pygame.display.flip()

class Player(pygame.sprite.Sprite):
    def __init__(self, *group):
    super(Player, self). __init__(*groups)
    self.image = pygame.image.load("plane.png")
    self.rect = pygame,rect.Rect((320, 240), self.image.get.size())

def update(self):    
    key = pygame.key.get_pressed()
    if key[pygame.K_LEFT]:
        self.rect.x -= 10
    if key[pygame.K_RIGHT]:
        self.rect += 10
    if key[pygame.K_UP]:
        self.rect -= 10
    if key[pygame.K_DOWN]:
        self.rect += 10


if __name__ == "__main__":
pygame.init()
screen = pygame.display.set.mode((640,480))
Game().main(screen)


class Wall(pygame.sprite.Sprite):
def __init__(self.color,x,y,width,height):
    pygame.sprite.Sprite.__init__(self)
    self.image = pygame.Surface((width.height))
    self.image.fill(pygame.colour.Colour(colour))
    self.rect = self.image.get_rect()
    self.rect. x = x
    self.rect. y = y

1 个答案:

答案 0 :(得分:0)

您的代码中存在很多错误。 (语法,语义等)

首先,你在运行程序时没有看到任何东西的原因是因为第一个循环(在最顶层)。它会继续运行,直到您按Escpygame.QUIT。只有在该循环被打破之后,程序的其余部分才会启动。摆脱它。

接下来,有一些语法,缩进问题,方法和属性对于特定的pygame类等不存在。使用diffchecker将现有代码与我提供的代码进行比较{{ 3}}