• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dlaczego wyskakuje mi błąd z niespójnością ?

Fiszki IT
Fiszki IT
0 głosów
65 wizyt
pytanie zadane 30 maja 2020 w Python przez tonn204 Mądrala (6,610 p.)

Cześć. Wie ktoś dlaczego wyskakuje mi taki błąd? Przecież wszystkie wcięcia są dobrze zrobione, jak to naprawić?

File "gra.py", line 94
    if enemyX[i] <= 0:
                     ^
TabError: inconsistent use of tabs and spaces in indentation

 

import pygame
import random
import math

pygame.init()

# Tworzy ekran
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Kosmiczny statek")
icon = pygame.image.load("spaceship.png")
pygame.display.set_icon(icon)
background = pygame.image.load("background.png")

# Tworzy gracza
playerImg = pygame.image.load("player.png")
playerX = 370
playerY = 480
playerX_change = 0

# Tworzy wrogów
enemyImg = []
enemyX = []
enemyY = []
enemyX_change = []
enemyY_change = []
num_of_enemies = 6

for i in range(num_of_enemies):
    enemyImg.append(pygame.image.load('enemy.png'))
    enemyX.append(random.randint(0, 736))
    enemyY.append(random.randint(50, 150))
    enemyX_change.append(4)
    enemyY_change.append(40)


bulletImg = pygame.image.load("bullet.png")
bulletX = 0
bulletY = 480
bulletX_change = 0
bulletY_change = 10
bullet_state = "ready"

score = 0

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

def enemy(x, y, i):
	screen.blit(enemyImg[i], (x, y))

def fire_bullet(x, y):
	global bullet_state
	bullet_state = "fire"
	screen.blit(bulletImg,(x + 16, y + 10))

def isCollision(enemyX, enemyY, bulletX, bulletY):
    distance = math.sqrt((math.pow(enemyX[i] - bulletX, 2)) + (math.pow(enemyY[i] - bulletY, 2)))
    if distance < 27:
        return True
    else:
        return False


# Gówna pętal gry 
running = True
while running:
	screen.fill((0,0,0))
	screen.blit(background, (0,0))
	for event in pygame.event.get():
		if event.type == pygame.QUIT:
			running = False
		if event.type == pygame.KEYDOWN:
			if event.key == pygame.K_LEFT:
				playerX_change = -5
			if event.key == pygame.K_RIGHT:
				playerX_change = 5
			if event.key == pygame.K_SPACE:
				if bullet_state == "ready":
					bulletX = playerX
					fire_bullet(bulletX, bulletY)
		if event.type == pygame.KEYUP:
			if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
				playerX_change = 0

		playerX += playerX_change
		if playerX <= 0:
			playerX = 0
		elif playerX >= 736:
			playerX = 736

		for i in range(num_of_enemies):

			enemyX[i] += enemyX_change[i]
	        if enemyX[i] <= 0:
	            enemyX_change[i] = 4
	            enemyY[i] += enemyY_change[i]
	        elif enemyX[i] >= 736:
	            enemyX_change[i] = -4
	            enemyY[i] += enemyY_change[i]

			collision = isCollision(enemyX[i], enemyY[i], bulletX, bulletY)
			if collision:
				bulletY = 480
	            bullet_state = "ready"
	            score_value += 1
	            enemyX[i] = random.randint(0, 736)
	            enemyY[i] = random.randint(50, 150)

			enemy(enemyX[i], enemyY[i], i)

	if bulletY <= 0:
		bulletY = 480
		bullet_state = "ready"
	if bullet_state is "fire":
		fire_bullet(bulletX, bulletY)
		bulletY -= bulletY_change 

	player(playerX, playerY)

	pygame.display.update()

 

1 odpowiedź

0 głosów
odpowiedź 30 maja 2020 przez DeBos123 Nałogowiec (44,920 p.)
Musisz poprawić wcięcie w tej linii. Najlepiej usuń wszystkie białe znaki z początku tej linii i daj spacje lub tab jeszcze raz zależnie od reszty kodu.

Podobne pytania

0 głosów
1 odpowiedź 124 wizyt
pytanie zadane 30 maja 2020 w Python przez tonn204 Mądrala (6,610 p.)
0 głosów
0 odpowiedzi 45 wizyt
pytanie zadane 23 marca 2020 w Python przez AdiReRe Nowicjusz (190 p.)
+1 głos
2 odpowiedzi 125 wizyt
pytanie zadane 19 lipca w Python przez Hajpa Początkujący (300 p.)
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

84,751 zapytań

133,554 odpowiedzi

295,976 komentarzy

56,010 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...