Skip to content
Snippets Groups Projects
Commit 6cb39ec6 authored by s2032074's avatar s2032074
Browse files

block changes color if clicked on

parent f1cabfc8
No related branches found
No related tags found
No related merge requests found
'''Block object which will be used in a corsi-blocks test'''
#pygame is the library for drawing
#keyboard is the library for tracking what user does with their keyboard
import sys
import pygame
import keyboard
......@@ -11,36 +12,58 @@ class Block:
#Constructor to initiate a block (square)
#x and y -- coordinates of the top left corner
#length -- the length of one side of the square
def __init__(self, x, y, length):
#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
self.length = length
self.pressed = pressed
def draw_block(self, screen):
'''function for drawing a block with initialized parameters'''
pygame.draw.rect(screen, (0, 0, 0),
(self.x_coord, self.y_coord, self.length, self.length),0)
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
while True:
block1 = Block(100, 100, 50)
block1.draw_block(screen)
pygame.display.update()
try:
if keyboard.is_pressed('q'):
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
except:
break
block1.clicked(screen, event)
pygame.display.update()
#class functions testing
main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment