Home > Blockchain >  Pygame draggable frame seems not to be working
Pygame draggable frame seems not to be working

Time:03-20

I am working with Pygame currently, and I made a simple function to create window instances much like Windows 10 UI. the code I made doesn't give any errors or any unwanted outputs. It just seems not to be working properly, what I mean by "not working properly"; it just doesn't seem to be moving the frames that are meant to be dragged around by a master frame...

This is my code:

import pygame
from pyautogui import size
import datetime

pygame.init()
infoObject = pygame.display.Info()
surface = pygame.display.set_mode((900, 700))
run = True
clock = pygame.time.Clock()

def draw_text(text, font, text_col, x,y):
    img = font.render(text, True, text_col)
    rect = img.get_rect()
    rect.center = (x,y)
    surface.blit(img, rect)
    return rect


class make_a_window():
    def __init__(self,app,width=750,height=500):
        self.app_name = str(app)
        self.width = width
        self.height = height
        
    def run(self):
        self.top_frame = pygame.draw.rect(surface, "#C0C0C0", pygame.Rect(0,0,int(self.width),40))#master frame
        
        
        self.main_frame = pygame.draw.rect(surface, (255,255,255), pygame.Rect(0,40,int(self.width),int(self.height)))
        self.red_frame_for_exit_btn_X = pygame.draw.rect(surface, (255,0,0), pygame.Rect(self.width-42,0,42,40))
        self.exit_btn_X = draw_text("x", pygame.font.SysFont("calibri",25), "black", self.width-20, 15)
        
        self.mouse_position = pygame.mouse.get_pos()
        
        if pygame.mouse.get_pressed()[0] == 1:
            if self.top_frame.collidepoint(self.mouse_position):
        
                #moving the frames
                
                self.top_frame.move(self.mouse_position[0],self.mouse_position[1])
                self.main_frame.move(self.mouse_position[0]-40,self.mouse_position[1])
                self.red_frame_for_exit_btn_X.move(self.mouse_position[0]-42,self.mouse_position[1])
                self.exit_btn_X.move(self.mouse_position[0]-20,self.mouse_position[1])
        
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            run = False
            
    app = make_a_window("hello")
    app.run()
    
    pygame.display.update()
    clock.tick(60) 

Sorry for my bad English. and thanks for the help, I really appreciate it

  • Related