From 9eab9d00f0fb3ce260bbbe66905ef798bdec79ac Mon Sep 17 00:00:00 2001 From: Unbewohnte Date: Mon, 17 Aug 2020 13:49:23 +0300 Subject: [PATCH] Added cooldown feature for the player and the enemy --- Main.py | 24 +++++++++++++++--------- beings.py | 43 ++++++++++++++++++++++++++----------------- particles.py | 12 +++++++----- 3 files changed, 48 insertions(+), 31 deletions(-) diff --git a/Main.py b/Main.py index a1e20a5..13eb0bf 100644 --- a/Main.py +++ b/Main.py @@ -26,7 +26,7 @@ def play(): death_timer = 70 text = font.render(str(death_timer), True,(0,0,0)) #Declaring just for rect text_rect = text.get_rect(center = (windowX//2,windowY//2 - 100)) - +########################## while True: for event in pygame.event.get(): if event.type == pygame.QUIT: @@ -35,8 +35,9 @@ def play(): break window.fill((41, 64, 59)) +########################## - +#PPPPPPPPPPPPPPPPPPPPPPPPP player.teleportation() player.shoot(window) player.draw(window) @@ -52,25 +53,30 @@ def play(): break else: death_timer = 70 +#PPPPPPPPPPPPPPPPPPPPPPPPP - +#EEEEEEEEEEEEEEEEEEEEEEEEE enemy.enemy_shoot(window) enemy.draw(window) enemy.move('right') if enemy.enemy_x >= windowX-10: #That returning thingy enemy.enemy_x = 5 - enemy.collision() + enemy.collision(window) if enemy.out_of_area(): print('Random is on our side') break +#EEEEEEEEEEEEEEEEEEEEEEEEE - partic = Particle(400,400) - particles_on_screen.append(partic) - for particle in particles_on_screen: - particle.draw(window) - particle.update() +#PRTCLS_PRTCLS_PRTCLS_PRTCLS_ + # partic = Particle(400,400) + # particles_on_screen.append(partic) + # for particle in particles_on_screen: + # particle.draw(window) + # particle.update() + # print('PARTICLES: ',str(len(particles_on_screen))) +#PRTCLS_PRTCLS_PRTCLS_PRTCLS_ clock.tick(FPS) pygame.display.update() diff --git a/beings.py b/beings.py index e17ecee..df1c7a9 100644 --- a/beings.py +++ b/beings.py @@ -2,7 +2,7 @@ import pygame from random import randint from time import time from bullets import * -#from particles import * # !!! +from particles import * # !!! import time import sys @@ -18,7 +18,7 @@ player_image = pygame.image.load('pics/32x64.png') class Player: def __init__(self): - self.bul_cooldown = 50 + self.bul_cooldown = 14 self.tp_cooldown = 100 self.x = 300 self.y = 300 @@ -47,14 +47,14 @@ class Player: def shoot(self,window): - # if self.bul_cooldown >= 1: #With cooldown the game looks not so spicy. - # self.bul_cooldown -= 2 #Maybe it will be the matter of upgrades ? + if self.bul_cooldown >= 1: + self.bul_cooldown -= 2 keys = pygame.key.get_pressed() - if keys[pygame.K_z]: # and self.bul_cooldown == 0 + if keys[pygame.K_z] and self.bul_cooldown == 0: new_bullet = Bullet(self.x + self.width/2, self.y + 10) bullets_on_screen.append(new_bullet) - #self.bul_cooldown = 20 + self.bul_cooldown = 14 if int(len(bullets_on_screen)) > 0: for bullet in bullets_on_screen: @@ -94,11 +94,6 @@ class Player: def collision(self,window): for bullet in enemy_bul_on_screen: if self.player_rect.colliderect(bullet.bullet_rect): - # new_particle = Particle(bullet.x,bullet.y) - # particles_on_screen.append(new_particle) - # for particle in particles_on_screen: - # particle.draw(window) - # particle.update() self.x += randint(-100,100) self.y += randint(-100,100) @@ -111,6 +106,7 @@ class Enemy: self.en_width = 32 self.en_height = 64 self.vel = 3 + self.bul_cooldown = 10 def draw(self,window): pygame.draw.rect(window,(0,0,0),(self.enemy_x, self.enemy_y, self.en_width, self.en_height)) window.blit(enemy_image,(self.enemy_x, self.enemy_y)) @@ -125,15 +121,22 @@ class Enemy: elif str(side) == "down": self.enemy_y += self.vel def enemy_shoot(self,window): - new_bullet = Bullet(self.enemy_x + self.en_width/2, self.enemy_y + 10) - enemy_bul_on_screen.append(new_bullet) + if self.bul_cooldown >= 1: + self.bul_cooldown -= 2 + + if self.bul_cooldown <= 0: + new_bullet = Bullet(self.enemy_x + self.en_width/2, self.enemy_y + 10) + enemy_bul_on_screen.append(new_bullet) + self.bul_cooldown = random.randint(6,14) #10 + if int(len(enemy_bul_on_screen)) > 0: for bullet in enemy_bul_on_screen: bullet.draw(window,(0,0,0),enemy_bul_img) bullet.movedwn() if bullet.bullet_rect[1] >= windowY +20: - enemy_bul_on_screen.remove(bullet) # !!??? - print('Bullets (Enemy,Player): ' + str(len(bullets_on_screen + enemy_bul_on_screen))) + enemy_bul_on_screen.remove(bullet) + + #print('Bullets (Enemy,Player): ' + str(len(bullets_on_screen + enemy_bul_on_screen))) def out_of_area(self): if self.enemy_x > windowX+1 or self.enemy_x < -1 or self.enemy_y > windowY+1 or self.enemy_y < -1: @@ -141,9 +144,15 @@ class Enemy: else: return False - def collision(self): + def collision(self,window): for bullet in bullets_on_screen: if self.enemy_rect.colliderect(bullet.bullet_rect): - #Particle effect here self.enemy_x += randint(-60,60) self.enemy_y += randint(-60,60) + + particle = Particle(self.enemy_rect[0] + self.en_width/2, self.enemy_rect[1] + self.en_height) + particles_on_screen.append(particle) + if len(particles_on_screen) != 0: + for particle in particles_on_screen: + particle.draw(window) + particle.update() diff --git a/particles.py b/particles.py index 320d6dd..24b25d6 100644 --- a/particles.py +++ b/particles.py @@ -10,15 +10,17 @@ class Particle: self.width = 4 self.height = self.width self.vel = int(randint(0,3)/5) - self.timer = 200 + self.rect = pygame.Rect(self.x,self.y,self.width,self.height) + self.timer = randint(10,40) def draw(self,window): - for i in range(10): - pygame.draw.rect(window,(255,255,255),(self.x + randint(-30,30), self.y + randint(-30,30), self.width, self.height)) + for i in range(5): #+ randint(-30,30) + pygame.draw.rect(window,(255,255,255),(self.rect[0] + randint(-30,30), self.rect[1] + randint(-30,30), self.rect[2], self.rect[3])) def update(self): for particle in particles_on_screen: - self.timer -= 1 + self.timer -= 0.5 #self.x += self.vel - randint(1,2) - self.y += self.vel + self.rect[1] += int(randint(-2,2)) #self.vel + + self.rect[0] += int(randint(-1,1)) if particle.timer <= 0: particles_on_screen.remove(particle) #print('Particles :',str(len(particles_on_screen)))