random rectangle game
A downloadable game
This i know its really bad i just made it for fun and maybe wanted to share it to some ppl if anyone will ever see this I'm also really new to this so yeah lol
Download
Download
run-rectanglegame.exe 28 MB
Install instructions
Download
Run the exe and done

Comments
Log in with itch.io to leave a comment.
code for the app:
also w a s d for to go to top,left,bottom,right and f for shoot
import pygame,random,time from sys import exit pygame.init() width=480 height=240 fps=60 screen=pygame.display.set_mode((width,height)) pygame.display.set_caption("meowonID's rectangle game (Inactive)") plr=pygame.Surface((15,15)) plr.fill((50,50,135)) bullet=pygame.Surface((20,5)) bullet.fill((165,165,55)) enemy=pygame.Surface((15,15)) enemy.fill((165,10,10)) border=pygame.Surface((15,240)) border.fill((255,255,255)) borderrect= border.get_rect(center=(15, height//2)) enemylist=[] bulletlist=[] plrrect=plr.get_rect(center=(width//2,height//2)) plrspeed=2.5 maxammo=15 ammo=15 score=0 isreloading=False isshooting=False reloadtime=1000 shootdebounce=250 lastshoottime=0 middletime=2500 enemyevent=pygame.USEREVENT+1 pygame.time.set_timer(enemyevent,1000) active="False" dev=False def enemytouchedborderUI(): screen.fill((35,5,5)) etbfont=pygame.font.SysFont("Arial",25,bold=True,italic=False) etbtext=etbfont.render("game over! enemy touched the white border",True,pygame.Color(135,10,10)) etbrect=etbtext.get_rect(center=(width//2,height//2)) screen.blit(etbtext,etbrect) pygame.display.update() pygame.time.delay(2000) pygame.quit() exit() def enemytouchedplayerUI(): screen.fill((35,5,5)) etpfont=pygame.font.SysFont("Arial",25,bold=True,italic=False) etptext=etpfont.render("game over! enemy touched the player :C",True,pygame.Color(135,10,10)) etprect=etptext.get_rect(center=(width//2,height//2)) screen.blit(etptext,etprect) pygame.display.update() pygame.time.delay(2000) pygame.quit() exit() def movementhandler(): #move enemy for enemyrect in enemylist[:]: enemyrect.x-=3 enemyrect.y+=random.randint(-2,2) if enemyrect.y<=0: enemyrect.y+=20 if enemyrect.y>=height: enemyrect.y-=20 #move stuff for bulletrect in bulletlist[:]: bulletrect.x+=5 for bulletrect in bulletlist: screen.blit(bullet,bulletrect) key=pygame.key.get_pressed() bordercollideplr=pygame.Rect.colliderect(plrrect,borderrect) if key[pygame.K_a] and not bordercollideplr: plrrect.x-=plrspeed+0.5 if key[pygame.K_d] and plrrect.right<width: plrrect.x+=plrspeed if key[pygame.K_w] and plrrect.top>height-height: plrrect.y-=plrspeed+0.5 if key[pygame.K_s] and plrrect.bottom<height: plrrect.y+=plrspeed def shootingreloadinghandler(): global isreloading,isshooting,ammo,maxammo if isreloading==True: current_time_reload=pygame.time.get_ticks() reloadingfont = pygame.font.SysFont("Arial", 65, bold=True) reloadtext = reloadingfont.render("Reloading...", True, pygame.Color(255, 255, 255)) reloadrect = reloadtext.get_rect(center=(width//2,height//2)) screen.blit(reloadtext, reloadrect) if current_time_reload-reloadstarttime>=reloadtime: # as current time reload gets larger reload start times effect on minusing gets smaller # and thus can be above reloadtime ammo=maxammo isreloading=False if isshooting==True: current_time_shooting=pygame.time.get_ticks() if current_time_shooting-lastshoottime >= shootdebounce: isshooting=False def collisionhandler(): global score for enemyrect in enemylist: screen.blit(enemy,enemyrect) collide=pygame.Rect.colliderect(plrrect,enemyrect) collide2=pygame.Rect.colliderect(borderrect,enemyrect) if collide and dev==False: enemytouchedplayerUI() if collide2 and dev==False: enemytouchedborderUI() for bulletrect in bulletlist: collide3=pygame.Rect.colliderect(enemyrect,bulletrect) if collide3: bulletlist.remove(bulletrect) enemylist.remove(enemyrect) score+=1 def wincondition(): if score==45: pygame.display.set_caption("OMG U WON !@(#@$! thanks for playing - meowonID") screen.fill((30,125,30)) wintxt=pygame.font.SysFont("Arial",25,bold=True).render("you won :O!!!#!# (u dont get anything.)",True,pygame.Color(25,76,25)) wintxtrect=wintxt.get_rect(center=(width//2,height//2)) screen.blit(wintxt,wintxtrect) pygame.display.flip() pygame.time.delay(3500) exit() while True: for event in pygame.event.get(): if event.type==pygame.QUIT or event.type==pygame.KEYDOWN and event.key==pygame.K_ESCAPE: pygame.quit() exit() if event.type==pygame.KEYDOWN and event.key==pygame.K_j and active=="False": active="Middle" middle_start_time=pygame.time.get_ticks() if event.type==enemyevent and active=="True": newenemy=enemy.get_rect(center=(500,random.randint(15,height-15))) enemylist.append(newenemy) if event.type==pygame.KEYDOWN and event.key==pygame.K_f and active=="True": if ammo>0 and not isshooting: newbullet=bullet.get_rect(midleft=(plrrect.x+15,plrrect.y+6.5)) bulletlist.append(newbullet) ammo-=1 isshooting=True lastshoottime=pygame.time.get_ticks() if ammo==0 and not isreloading: isreloading=True reloadstarttime=pygame.time.get_ticks() if active=="False": #starting screen screen.fill((35,35,35)) startfont=pygame.font.SysFont('Arial',55,bold=True,italic=True) starttxt=startfont.render("J to start the game :D",True,pygame.Color(255,255,255)) starttxtrect=starttxt.get_rect(center=(width//2,height//2)) screen.blit(starttxt,starttxtrect) if active=="Middle": pygame.display.set_caption("meowonID's rectangle game (Middle)") screen.fill((35,35,35)) current_middle_time=pygame.time.get_ticks() middletext=pygame.font.SysFont('Arial',17,bold=True).render("Mission: kill red rectangles and dont let them collide with the border",True,pygame.Color(255,255,255)) middletext2=pygame.font.SysFont('Arial',25,bold=True).render("And main goal: get 45 score to win!!",True,pygame.Color(100,200,100)) middletext3=pygame.font.SysFont('Arial',25,bold=True).render("(And stats are in the title bar of the window)",True,pygame.Color(255,255,255)) middletextrect=middletext.get_rect(center=(width/2,height/2)) middletext2rect=middletext2.get_rect(center=(width/2,height/2+17)) middletext3rect=middletext3.get_rect(center=(width/2,height/2+17+25)) screen.blit(middletext,middletextrect) screen.blit(middletext2,middletext2rect) screen.blit(middletext3,middletext3rect) pygame.display.update() if current_middle_time - middle_start_time >=middletime: active="True" if active=="True": pygame.display.set_caption("Ingame | Ammo: " + str(ammo) + " | Score: " + str(score)) screen.fill((15,15,15)) #collision detection # for enemyrect in enemylist: # screen.blit(enemy,enemyrect) # collide=pygame.Rect.colliderect(plrrect,enemyrect) # collide2=pygame.Rect.colliderect(borderrect,enemyrect) # if collide and dev==False: # enemytouchedplayer() # if collide2 and dev==False: # enemytouchedborder() # for bulletrect in bulletlist: # collide3=pygame.Rect.colliderect(enemyrect,bulletrect) # if collide3 and dev==True: # bulletlist.remove(bulletrect) # enemylist.remove(enemyrect) collisionhandler() movementhandler() shootingreloadinghandler() wincondition() #blit screen.blit(plr,plrrect) screen.blit(border,borderrect) pygame.display.update() pygame.time.Clock().tick(fps)