"unexpected argument"

Quentin Bock qberz2005 at gmail.com
Tue Mar 9 15:03:54 EST 2021


Error 1:
Space Invaders.py:90: SyntaxWarning: "is" with a literal. Did you mean "=="?
  if bullet_state is "fire":

Error 2:
line 66, in <module>
    if event.key == pygame.K_SPACE:
AttributeError: 'Event' object has no attribute 'key'

Code:
import pygame
import random
# Space Invaders!

background = pygame.image.load('space_invader_background.png')
# Title and Icon
pygame.display.set_caption ("Space Invaders")
icon = pygame.image.load ('space-invaders.png')
pygame.display.set_icon (icon)
# Player
player_Image = pygame.image.load ('player.png')
player_X = 370
player_Y = 480
player_X_change = 0

# Enemy
enemy_Image = pygame.image.load ('invader_enemy.png.')
enemy_X = random.randint(0, 800)
enemy_Y = random.randint(50, 150)
enemy_X_change = 5
enemy_Y_change = 35

# Bullet
bullet_Image = pygame.image.load ('bullet.png')
bullet_X = 0
bullet_Y = 480
bullet_X_change = 0
bullet_Y_change = 10
bullet_state = "ready"

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


def enemy(x, y):
    screen.blit (enemy_Image, (x, y))


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

# Game Loop


pygame.init()
screen = pygame.display.set_mode ((800, 600))
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

        # Check whether keystroke is being pressed

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                player_X_change = -6
            if event.key == pygame.K_RIGHT:
                player_X_change = 6

        if event.key == pygame.K_SPACE:
            fire_bullet(player_X, bullet_Y)

        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                player_X_change = 0
    #Player Movement and Boundaries
    player_X += player_X_change

    if player_X <= 0:
        player_X = 0
    elif player_X >= 736:
        player_X = 736
    #Enemy Movement and Boundaries
    enemy_X += enemy_X_change

    if enemy_X <= 0:
        enemy_X_change = 4
        enemy_Y += enemy_Y_change
    elif enemy_X >= 736:
        enemy_X_change = -4
        enemy_Y += enemy_Y_change

    # Bullet Movement
    if bullet_state == "fire":
        fire_bullet(player_X, bullet_Y)
        bullet_Y -= bullet_Y_change

    player(player_X, player_Y)
    enemy(enemy_X, enemy_Y)
    pygame.display.update()

Why is it saying unexpected argument?
Youtube Tutorial I'm Following:
https://www.youtube.com/watch?v=FfWpgLFMI7w


More information about the Python-list mailing list