Я знаю, что это старо, но здесь вы go
class HollowBox:
def __init__(self,x,y, w,h,t):
self.x = x
self.y = y
self.w = w
self.h = h
self.t = t
self.Update()
def Update(self,x = None, y = None, w = None, h = None, t = None):
self.x = x if x != None else self.x
self.y = y if y != None else self.y
self.w = w if w != None else self.w
self.h = h if h != None else self.h
self.t = t if t != None else self.t
self.rect_left = pygame.Rect(self.x,self.y,self.t,self.h)
self.rect_right = pygame.Rect(self.x + self.w - self.t,self.y,self.t,self.h)
self.rect_up = pygame.Rect(self.x,self.y,self.w,self.t)
self.rect_down = pygame.Rect(self.x,self.y + self.h - self.t,self.w,self.t)
def Draw(self):
pygame.draw.rect(screen,(255,0,0),self.rect_left)
pygame.draw.rect(screen,(255,0,0),self.rect_right)
pygame.draw.rect(screen,(255,0,0),self.rect_up)
pygame.draw.rect(screen,(255,0,0),self.rect_down)
вот в моей программе я сделал очень быстро
import pygame
from pygame.locals import *
import time
class HollowBox:
def __init__(self,x,y, w,h,t):
self.x = x
self.y = y
self.w = w
self.h = h
self.t = t
self.Update()
def Update(self,x = None, y = None, w = None, h = None, t = None):
self.x = x if x != None else self.x
self.y = y if y != None else self.y
self.w = w if w != None else self.w
self.h = h if h != None else self.h
self.t = t if t != None else self.t
self.rect_left = pygame.Rect(self.x,self.y,self.t,self.h)
self.rect_right = pygame.Rect(self.x + self.w - self.t,self.y,self.t,self.h)
self.rect_up = pygame.Rect(self.x,self.y,self.w,self.t)
self.rect_down = pygame.Rect(self.x,self.y + self.h - self.t,self.w,self.t)
def Draw(self):
pygame.draw.rect(screen,(255,0,0),self.rect_left)
pygame.draw.rect(screen,(255,0,0),self.rect_right)
pygame.draw.rect(screen,(255,0,0),self.rect_up)
pygame.draw.rect(screen,(255,0,0),self.rect_down)
class Player:
def __init__(self,x,y):
self.rect = pygame.Rect(x,y,20,20)
def Draw(self):
pygame.draw.rect(screen,(0,255,0),self.rect)
screen = pygame.display.set_mode((500,500))
player = Player(100,100)
key = ""
clock = pygame.time.Clock()
box = HollowBox(0,0,500,500,5)
thickness = 5
start = time.time()
running = True
while running:
screen.fill((255,255,255))
player.Draw()
box.Draw()
pygame.display.update()
clock.tick(60)
if time.time() - start > 0.2:
thickness += 1
box.Update(t = thickness)
start = time.time()
if key == "a":
player.rect.x -= 3
if key == "d":
player.rect.x += 3
for e in pygame.event.get():
if e.type == pygame.QUIT:
running = False
pygame.quit()
break
if e.type == KEYDOWN:
key = e.unicode
if e.type == KEYUP:
key = ""