Sep-11-2018, 06:22 AM
I'm feeling so angry right now over something that I assume is trivial. First I hope that whoever has the misfortune of reading my question to bear with me because I have to post code in an awkward manner due to the object oriented nature of this lesson in the book. I've been having trouble working through the pygame API, namely the classes and the direction in which the ship would be placed but let me show the code.
Main file or Alien invasion.py
Main file or Alien invasion.py
from pygame from settings import Settings #I'll omit settings for the sake of brevity. Game width 1200, game height = 800, bg_color = white def run_game(): pygame.init() ai_settings = Settings() #A little shaky on this. I presume it allows the instance to access the attributes of the Settings class which seems to make the most sense to me. screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("Alien Invasion") ship = Ship(screen) #Why do you need to pass in screen? Is the Ship class able to understand what all the parameters are doing? Ie the width, height, and background? What does that have to do with the other attributes in the ship class? while True: screen.fill(ai_settings.bg_color) ship.blitme() pygame.display.flip() run_game() #Ship.py new python file containing the class class Ship() def__init__(self,screen): self.screen = screen self.image = pygame.image.load("shimp.bmp") self.rect = self.image.get_rect() self.screen_rect = screen.get_rect() self.rect.centerx = self.screen_rect.centerx #What the hell is this doing? I have no idea. self.rect.bottom = self.screen_rect.bottom #Yet again the books explanation doesn't really help nor does google def bliteme(self): self.screen.blit(self,image,self.rect)Basically I don't understand what self.rect.centerx = self.screen_rect.centerx is doing in the ship class. I do not know what self.rect.bottom = self.screen_rect.bottom is doing either. And for ship = Ship(Screen) this also haunts me... What is the screen parameter doing with the ship class that makes you need it? Sorry if this post was huge but I'm really confused.