2014-11-23 2 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

В коде есть много ошибок. (синтаксис, семантика и т. д.)

Сначала причина, по которой вы ничего не видите при запуске программы, связана с первым циклом (на самом верху). Он будет продолжать работать, пока вы не нажмете Esc или pygame.QUIT. Только после того, как этот цикл будет нарушен, остальная часть программы начнется. Избавиться от этого.

Далее, существует довольно много синтаксиса, вопросы отступа, методы и атрибуты, которые не существуют для конкретного Pygame classs и т.д. Используйте diffchecker сравнить существующий код с одним я предоставил Pastebin Link

Смежные вопросы