AttributeError: 'Ino' object has no attribute 'screen'

Shampoo

Новичок
Пользователь
Фев 18, 2023
9
0
1
Здравствуйте, пишу по видео свою первую игру, но выскочила эта ошибка, помогите исправить пожалуйста. Код состоит из 5 блоков, подключенных друг к другу

main.py
Python:
import pygame, controls
from gun import Gun
from pygame.sprite import Group
from ino import Ino
def run():

     pygame.init()
     screen = pygame.display.set_mode((700, 800))
     pygame.display.set_caption(("Космичиские войны"))
     gun = Gun(screen)
     bg_color = (0, 0, 0)
     gun = Gun(screen)
     bullets = Group()
     ino = Ino()

     while True:
         controls.events(screen, gun, bullets)
         gun.update_gun()
         bullets.update()
         controls.update(bg_color, screen, gun, ino, bullets)

run()
controls.py
Python:
import pygame, sys
from bullet import Bullet

def events(screen, gun, bullets):
    """Обработка событий"""
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            #кнопка вправо
            if event.key == pygame.K_d:
                gun.mright = True
            #кнопка влево
            elif event.key == pygame.K_a:
                gun.mleft = True
            elif event.key == pygame.K_SPACE:
                new_bullet = Bullet(screen, gun)
                bullets.add(new_bullet)
        elif event.type == pygame.KEYUP:
            #кнопка вправо
            if event.key == pygame.K_d:
                gun.mleft = False
            elif event.key == pygame.K_a:
                gun.mright = False

def update(bg_color, screen, gun, ino, bullets):
    """"Обновление экрана"""
    screen.fill(bg_color)
    for bullet in bullets.sprites():
        bullet.draw_bullet()
    gun.output()
    ino.draw()
    pygame.display.flip()

def update_bullets(bullets):
    """"Обновляем позицию пуль"""
    bullets.update()
    for bullet in bullets.copy():
        if bullet.rect.bottom <= 0:
            bullets.remove(bullet)
gun.py
Python:
import pygame
import sys

class Gun():

    def __init__(self, screen):
        """"инилизация пушки"""

        self.screen = screen
        self.image = pygame.image.load('img/pixil-frame-1.png')
        self.rect = self.image.get_rect()
        self.screen_rect = screen.get_rect()
        self.rect.centerx = self.screen_rect.centerx
        self.center = float(self.rect.centerx)
        self.rect.bottom = self.screen_rect.bottom
        self.mright = False
        self.mleft = False

    def output(self):
        """"Рисование пушки"""
        self.screen.blit(self.image, self.rect)

    def update_gun(self):
        """"Рисование пушки"""
        if self.mright and self.rect.right < self.screen_rect.right:
            self.center += 1.5
        if self.mleft and self.rect.left > 0:
            self.center -= 1.5

        self.rect.centerx = self.center
bullet.py
Python:
import pygame

class Bullet(pygame.sprite.Sprite):

    def __init__(self, screen, gun):
        """"Создаем пули в текущей позиции пушки"""
        super(Bullet, self).__init__()
        self.screen = screen
        self.rect = pygame.Rect(0, 0, 2, 12)
        self.color = 34, 177, 77
        self.speed = 1
        self.rect.centerx = gun.rect.centerx
        self.rect.top = gun.rect.top
        self.y = float(self.rect.y)



    def update(self):
        """"Перемещение пули вверх"""
        self.y -= self.speed
        self.rect.y = self.y

    def draw_bullet(self):
        """"рисуем пулю"""
        pygame.draw.rect(self.screen, self.color, self.rect)
ino.py
Код:
import pygame

class Ino(pygame.sprite.Sprite):
    """"1 пришелец"""
    def __int__(self, screen):
        """"выводим и даем начальную позицию"""
        super(Ino, self).__init__()
        self.screen = screen
        self.image = pygame.image.load('img/ino.png')
        self.rect = self.image.get_rect()
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height
        self.x = float(self.rect.x)
        self.y = float(self.rect.y)

    def draw(self):
        """"вывод пришельца на экран"""
        self.screen.blit(self.image, self.rect)
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
вы думаете кто то будет это собирать?
возможно не внимательно делали по видео...
в какой строке хоть ошибка?
 

Shampoo

Новичок
Пользователь
Фев 18, 2023
9
0
1
вы думаете кто то будет это собирать?
возможно не внимательно делали по видео...
в какой строке хоть ошибка?
1676805056360.png
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
Python:
class Ino(pygame.sprite.Sprite):
    """"1 пришелец"""
    def __int__(self, screen):

не int а init
 

Shampoo

Новичок
Пользователь
Фев 18, 2023
9
0
1
Python:
class Ino(pygame.sprite.Sprite):
    """"1 пришелец"""
    def __int__(self, screen):

не int а init
Спасибо огромное!!!!!!
 

Форум IT Специалистов