I have never truly grasped the concept of object orientation. I tend to make classes that don't make much sense, or I fail to encapsulate correctly. I think I'm getting better at it, but I'm open to suggestions. In the following code, do you think I'm being correctly object oriented? I really appreciate any help.
import pygame
from pygame.locals import *
class Ball:
def __init__(self,imageFile,position_arg):
self.image = pygame.image.load(imageFile)
self.position = (position_arg)
class AssetManager:
def load_ball(self,imageFile,position):
return Ball(imageFile,position)
class Game:
def __init__(self,resolution,caption):
self.screen = pygame.display.set_mode(resolution)
pygame.display.set_caption(caption)
self.clock = pygame.time.Clock()
self.running = True
self.gray = (220,220,220)
def check_events(self):
for event in pygame.event.get():
if event.type == QUIT:
self.running = False
def draw_screen(self,ball):
self.screen.fill(self.gray)
self.screen.blit(ball.image,ball.position)
pygame.display.flip()
def main_loop(self,framerate,assets):
ball = assets.load_ball('ball.png',(350,250))
while self.running:
self.clock.tick(framerate)
self.check_events()
self.draw_screen(ball)
pygame.quit()
assets = AssetManager()
game = Game((800,600),"Game")
game.main_loop(60,assets)