Я пытался заставить игрока двигаться в Pygame, но это не сработало, и это дает мне эту ошибку: - PullRequest
0 голосов
/ 15 февраля 2020

Есть ошибка:

File "C:/Users/jimos/PycharmProjects/ffg/app.py", line 40
   if event.type==pygame.KEYUP:
                              ^
IndentationError: unindent does not match any outer indentation level

И я следовал этому уроку: https://www.youtube.com/watch?v=FfWpgLFMI7w&t=53s

import pygame

pygame.init()

#create the screen
screen=pygame.display.set_mode((800, 600))

#Title and Icon
pygame.display.set_caption("Space Invaders")
icon=pygame.image.load('ufo.png')
pygame.display.set_icon(icon)

#Player
playerImg=pygame.image.load('player.png')
playerX=370
playerY=480
playerX_change=0

def player(x,y):
    screen.blit(playerImg, (x, y))


#game loop
running=True
while running:

    screen.fill((255, 128, 0))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

            # if keystroke is pressed check whether its left or right
            if event.type==pygame.KEYDOWN:
                if event.key==pygame.K_LEFT:
                   playerX_change= -0.1
                if event.key==pygame.K_RIGHT:
                   playerX_change= 0.1
         if event.type==pygame.KEYUP:
             if event.key==pygame.K_LEFT or event.key == pygame.K_RIGHT:
                playerX_change= 0

    # 5=5 + -0.1 -> 5=5 - 0.1
    # 5=5 + 0.1
    playerX += playerX_change
    player(playerX,playerY)
    pygame.display.update()

1 Ответ

2 голосов
/ 15 февраля 2020

Это Отступ . Перед строкой if event.type==pygame.KEYUP:.
слишком много пустых, просто удалите один пробел, чтобы решить проблему.

running=True
while running:

    screen.fill((255, 128, 0))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

            # if keystroke is pressed check whether its left or right
            if event.type==pygame.KEYDOWN:
                if event.key==pygame.K_LEFT:
                   playerX_change= -0.1
                if event.key==pygame.K_RIGHT:
                   playerX_change= 0.1

        # remove 1 bank here <----------------------------
         if event.type==pygame.KEYUP:
             if event.key==pygame.K_LEFT or event.key == pygame.K_RIGHT:
                playerX_change= 0 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...