Форум сайта python.su
впервые встречаюсь с этой ошибкой
Игра - комические защитники
space_game.py
import pygame
import sys
from gun import Gun
def run():
pygame.init()
screen = pygame.display.set_mode((1200, 800))
pygame.display.set_caption('Космические защитники')
bg_color = (0, 0, 0)
gun = Gun(screen)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
screen.fill(bg_color)
gun.output()
pygame.display.flip()
run()
gun.py
import pygame
class Gun():
def __init__(self, screen):
‘инициализация пушки’
self.screen = screen
self.image = pygame.image.load(r'C:\Users\Home\PycharmProjects\pythonProject\game_space\images/file01.png')
self.rect = self.image.get_rect()
self.screen_rect = screen.get.rect()
self.rect.centerx = self.screen_rect.centerx
self.rect.bottom = self.screen_rect.bottom
def output(self):
‘рисование пушки’
self.screen.blit(self.image, self.rect)
Ошибка:AttributeError: ‘pygame.Surface’ object has no attribute ‘get’
Помогите пожалуйста
Офлайн
Офлайн
Игра - комические защитники
space_game.py
import pygame import sys from gun import Gun def run(): pygame.init() screen = pygame.display.set_mode((1200, 800)) pygame.display.set_caption('Космические защитники') bg_color = (0, 0, 0) gun = Gun(screen) while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() screen.fill(bg_color) gun.output() pygame.display.flip() run()
import pygame class Gun(): def __init__(self, screen): ‘инициализация пушки’ self.screen = screen self.image = pygame.image.load(r'C:\Users\Home\PycharmProjects\pythonProject\game_space\images/file01.png') self.rect = self.image.get_rect() self.screen_rect = screen.get.rect() self.rect.centerx = self.screen_rect.centerx self.rect.bottom = self.screen_rect.bottom def output(self): ‘рисование пушки’ self.screen.blit(self.image, self.rect)
Офлайн
SemTimv12сообщение об ошибке показывайте полностью
Так пойдет?
Офлайн
хотя я уже кажется понял, что косяк вот тут
self.screen_rect = screen.get.rect()
self.rect = self.image.get_rect()
Офлайн
Traceback (most recent call last):
File "C:\Users\Home\PycharmProjects\pythonProject\game_space\space_game.py", line 22, in <module>
run()
File "C:\Users\Home\PycharmProjects\pythonProject\game_space\space_game.py", line 12, in run
gun = Gun(screen)
File "C:\Users\Home\PycharmProjects\pythonProject\game_space\gun.py", line 11, in __init__
self.screen_rect = screen.get.rect()
AttributeError: 'pygame.Surface' object has no attribute 'get'
Офлайн
self.rect = self.image.get_rect() self.screen_rect = self.screen.get.rect()
Traceback (most recent call last): File "C:\Users\Home\PycharmProjects\pythonProject\game_space\space_game.py", line 22, in <module> run() File "C:\Users\Home\PycharmProjects\pythonProject\game_space\space_game.py", line 12, in run gun = Gun(screen) File "C:\Users\Home\PycharmProjects\pythonProject\game_space\gun.py", line 11, in __init__ self.screen_rect = self.screen.get.rect() AttributeError: 'pygame.Surface' object has no attribute 'get'
Офлайн
SemTimv12
ваше домашнее задание на сегодня, найти документацию к тому фреймворку который вы используете и конкретно pygame.Surface
Офлайн
SemTimv12Напиши там get_rect() .self.screen_rect = screen.get.rect()
Офлайн
Я еще новичок в питоне и не понимаю некоторые вещи. Можете пожалуйста ответить на некоторые вопросы.
1 pyGame это по большей части библиотека или фреймворк?
2 Можно ли сказать что pyGame работает в программе как фреймворк?
3 В чем заключается моя ошибка? FishHook говорит поправить строку, а py.user.next говорит сделать как и было.
Извините если что то не правильно спросил, просто я только начинаю изучать программы.
Спасибо за помощь!
Офлайн