Skip to content
Snippets Groups Projects
Block.py 2.27 KiB
Newer Older
'''Block object which will be used in a corsi-blocks test'''

#pygame is the library for drawing
import sys
import pygame
s2032074's avatar
s2032074 committed

class Block:
    '''Block class defines the main functions that can be done with the block'''
s2032074's avatar
s2032074 committed

    #Constructor to initiate a block (square)
    #x and y -- coordinates of the top left corner
    #length -- the length of one side of the square
    #pressed -- is the boolean variable for detecting whether a user clicked on the block
    def __init__(self, x, y, length, pressed):
        self.x_coord = x
        self.y_coord = y
s2032074's avatar
s2032074 committed
        self.length = length
        self.pressed = pressed

    def draw_block(self, screen):
        '''function for drawing a block with initialized parameters'''
        if self.pressed:
            pygame.draw.rect(screen, (169,169,169),
            (self.x_coord, self.y_coord, self.length, self.length),0)
        else:
            pygame.draw.rect(screen, (0, 0, 0),
            (self.x_coord, self.y_coord, self.length, self.length),0)

    def clicked(self, screen, event):
        '''function for detecting whether a user has pressed on the block'''
        if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
            coord_x, coord_y = pygame.mouse.get_pos()
            if coord_x >= self.x_coord and coord_x <= self.x_coord + self.length and coord_y >= self.y_coord and coord_y <= self.y_coord + self.length:
                self.pressed = True
            self.draw_block(screen)

#this class will be tested, thus, we need this main method
#as it sets the environment where we are going to test
def main():
    '''This is MAAAAIN'''
    #defining the screen parameters
    pygame.init()
    width = 1000
    height = 800
    pygame.display.set_mode((width, height))
    screen = pygame.display.get_surface()
    screen.fill((255,255,255))

    #creating an object
    pressed = False
    block1 = Block(100, 100, 50, pressed)

    #drawing initial block
    block1.draw_block(screen)
    pygame.display.update()

    #checking and updating the color when the block is clicked
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            block1.clicked(screen, event)
            pygame.display.update()

#class functions testing
main()