2014-11-23 110 views
0

我在玩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 

回答

0

你的代码有很多错误。 (语法,语义等)

首先,你在运行程序时看不到任何东西的原因是由于第一个循环(在最顶端)。它将继续运行,直到您按Escpygame.QUIT。只有在循环被破坏后,程序的其余部分才会开始。摆脱它。

下,有相当多的语法,压痕问题,方法和不特定pygame的班组长等使用diffchecker与我提供了一个比较现有的代码存在的属性Pastebin Link