我对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 :(得分:0)
您的代码中存在很多错误。 (语法,语义等)
首先,你在运行程序时没有看到任何东西的原因是因为第一个循环(在最顶层)。它会继续运行,直到您按Esc
或pygame.QUIT
。只有在该循环被打破之后,程序的其余部分才会启动。摆脱它。
接下来,有一些语法,缩进问题,方法和属性对于特定的pygame类等不存在。使用diffchecker将现有代码与我提供的代码进行比较{{ 3}}