7!FPIGŘAf*fHisBEe%
z$|$NVs%)w(2y&QF(}tD}VT^1L>gCsgT8|RpPvAOPyi1Dn;!=QR{#rxwzjr5gM$FSzc7QKKQ9BjKQ{xXKPy<+z>v|H
zQJGoLSWq2gH;i7m;a}GV=3{;uj6%o!G??!FRbpJsX!Y-y|C~Ah_@N92(5gK>1_mY#
zrh5$h3?dAYV81Z3i<=sYinFV;E1H_Cn<_Gj8k_4gikq7%Gd^h-ZZQcm4*Ykgw3Kn%
zzh6<3!3yg7VT>D{lDuk0VSn=Cht&7$|Xp;*Q}Mvl;^n*lbWNvun%?
zVe-4t5(1I`|Adi==@$b#SYBMvSQHd;8n?8xWSGS!{NtLyz{sHR{|Un{gc@a2P(U01
zx}~LcOJ)M&w+Wz?jyep77+aX6V5v&nT$~-`1$A@viEggxu5PJdl1UQAN_BGu+poiL
zgt3810;UffjgSb`Nt%$9G$Dy`8;DE-*`e`&3&RbD2~fX)LWx~tLx|6v4v<$E7#TDe
z)fj6Sw=pn-{UWR=s;I#j@^1~}HfWmBU|<02hscAh(%1k=%$
zFm7Xf`0uaZgl~*YVFlntq!9B#ZV>?M)nqhPG*t&>CsRdJML~9P#(N;G3cGeG{QJeY
zEiP_Cg~9}dvI+mbrKEw}#{_oYJ*N8%Y|v0w6jT&6R}^G6Rc04u)cf~qKBM>sIV(mD
zM)3uI6&ZI-vx))fL)gm?w$~V(!_<`p6-5Pg^zIzN@3^1LFpd1R)q-t!ct_%*t^!fjOg&C~>sJSoa9
zxT*!@xi-dVm8w
zQ$c~fAuN49BOBQ9f0ce^&6v+9J|P9&|E^+mkN&rj
zvDe|BPU%-hE+tT<%OJc#58p~nHr!`H7f
zW;}ZaE|+2P&ceXW0Lf>J>dKdLO!JK)nNd_(R8dp|loxN^Vq{~wH(}a@8Sr?9lw)wyL77(+Wcs#$
zzi!R~OedJ`G4O!%ow1;zG$W{JXI5qw)L>-u@?vD$5YrLE
zbnjmmW7%IN#x4JRKp541P`?No3xkq0GpN+uunMH-38TzkB}SQlPeAGsWhSW21qvD5
z^$kKTtUL#)WmlGD1SL`p#%=R5RE)xy?*03==HCs*9VSVTboPG+xITlm13`K~?Iv?j
zOfhb2+0X*6)iN^R^%}w+SdIYcVTS}T+%j+&n<;?pgNHC9C^LY=4{Rr-77zy2i=Z}>
zs3N!~0jDTXfNuz6eEAjHP6M~nkkdJ&og!?iC<;zfAeS=vO_=a^6I#6rRR>N8f{Gd&
zAQ=s$?5`5YJVdzw3SCBHW<_RWVPi(64T}GI6*dUzfs!C7=Amktt}ubxXdt!5Acexl
zAjqt!uFP%+QZBMiL{Dgg!oM3ld^{j+OnwlnZrnghThKZQl!PIn#xAHVXs#}3EGTZw
zs0U7-VvtlS#&`oMi7Nd2!N`@8#>n;WmjcK=urdOYFBw7Rfl@il98hCd0ct|`zwM0f
zy-=OVdLe1p9MpDDlw|}rKQtKGK&2U^?eUF~BVdBm-G4s=plP3ob|PvUN}5rbdDEi}
zk3elGW-*Z6#Iz$peyd@a0Bwhv!`g5YK&^^%=e*k!mRA7>5T5m|8_Fpk7|fw
zU>Ys!N6UJ6S)Y;_#?>9s>FfcNh{5N8Z0`GeTwFwkO*})xf#;BfIVG3q5
zCMd{3$J&tlN{piHqTr^#sky1SsInK1
zg3=L+4St|Rg=EDdaPk7R3I7{`+rki+3M2Z3%Fv_)85IfJPzOp;9guET)-OoXf{m##
z--q|Z!5tQGwo(*jWMx-{_x}D(f+h`cClJz9BA}mHoK+pJ-wTo=pt>Q+0YyJFH6Zmo
z8NsOmZo
z{L0MY?CPo;Hn7}Oz6lC?n4ht#6^5wYq*Id
zi)`5NS-HGic_vtWYlEw6LnNrYVg7%Nfq~J2c>}n-f%f-}1(iXgIG|jwzF|Y+JTq{5
zW0nG^G|+eoBn<8|a5BKc5!N$gRyPNYqN;=XE~{c<;2Gc_yr;;_+5pW0%#blXXgEOZ
z2KCNBBb1=B0^GMsgC>N(O5i>nvp=|qV8EvrR6c<9?t`QPxK?l|f$}oU{h)p-q(1_;
z7nTY(gk?Yz08~3uDKrV7*$pk{pd+hr|AR(Y5#C3b0rfiz)bEh`05&cKcLgF9Z3vqJ
zPCzgdIv|n2$e_h=h_MOl*mXa6)EfKPH8X?8|4WP?m_Z{%eDK&)1Wj}ZDzYovGn%q9
zi<)aNYVpMJIQ+ZE7sq$ORoRc}o|@WUB|W_f4<9n_`}-Ht7YB`*K+9-QZ6XZqwSsy$
zpxFQCL5=*!tMV(a2d+S09v5~9W4Y6NSJ~~l?8>(K?B+v3mC;BBcE9)Ss1CwSt&6kEco{&
zCGy|v2_-83wlUsPDFTgd6RIacc?hLkAFXde`%D>@W-!e03F(fh8F;yYAlT3|8Sxps1S&c=NYc~A*#~AYO--Zp0
zuO>`5GGT%VXf$xNt_77E@S2*=buFUa2i4n1*U>3k7swRYhO$8gw#Gvti3u7L5jRwSA@G1=?wV>4+V5Ok8|Nj@v`dI`Q
zY*4Blm#=jNJde9ysvtYxl0Uwp}0`#}pfG
zFE7O}9V98n#$_T|$il`eBqhpzUqFEwhtvap1;({|89Dy_*t_@N4@Qo?EjxC!wCvcy
zZ5YAGXlBkNC@QPrX2YbyEzHl%s>m56ENg~cCXz=Mysklufq@CM4hu3a2I>EUyYHZp
qF;I9Zf=0$bI0lpljEszoKx0K98Z;JQ*5KD*mG$dXgI@y!0|NkCXyHQu
literal 0
HcmV?d00001
diff --git a/main.py b/main.py
new file mode 100644
index 0000000..6ea3dcb
--- /dev/null
+++ b/main.py
@@ -0,0 +1,20 @@
+from setup import *
+from game import Game
+
+screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT), pygame.RESIZABLE)
+delta = 1000/fps
+is_running = True
+
+scene = Game()
+
+while is_running:
+ if pygame.event.peek(pygame.QUIT):
+ is_running = False
+
+ scene.update(delta)
+ scene.draw(screen)
+
+ pygame.display.update()
+ delta = clock.tick(fps)
+
+pygame.quit()
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..410e284
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,28 @@
+import pygame
+import math
+import random
+pygame.init()
+
+SCREEN_WIDTH, SCREEN_HEIGHT = 1920/2, 1080/2
+dimensions = (SCREEN_WIDTH, SCREEN_HEIGHT)
+center = pygame.Vector2(SCREEN_WIDTH/2, SCREEN_HEIGHT/2)
+
+pygame.display.set_caption("Basketball")
+# icon = pygame.image.load("logo.ico")
+# icon = pygame.transform.scale(icon, (32, 32))
+# pygame.display.set_icon(icon)
+
+clock = pygame.time.Clock()
+fps = 120
+
+
+class Colour:
+ BLACK = (0, 0, 0)
+ WHITE = (255, 255, 255)
+ GRAY = (127, 127, 127)
+ DARK_GRAY = (40, 40, 40)
+ LIGHT_GRAY = (200,200,200)
+ RED = (204, 0, 0)
+ BLUE = (100, 149, 237)
+ ORANGE = (244, 187, 68)
+ TAN = (242, 210, 189)
--
2.54.0