Update controls.py
parent
19089824f9
commit
66c81fe557
222
controls.py
222
controls.py
|
@ -1,112 +1,112 @@
|
||||||
import pygame, sys
|
import pygame, sys
|
||||||
import time
|
import time
|
||||||
from bullet import Bullet
|
from bullet import Bullet
|
||||||
from enemy import Enemy
|
from enemy import Enemy
|
||||||
|
|
||||||
def events(gun, screen, bullets):
|
def events(gun, screen, bullets):
|
||||||
for event in pygame.event.get():
|
for event in pygame.event.get():
|
||||||
if event.type == pygame.QUIT:
|
if event.type == pygame.QUIT:
|
||||||
sys.exit()
|
sys.exit()
|
||||||
elif event.type == pygame.KEYDOWN:
|
elif event.type == pygame.KEYDOWN:
|
||||||
if event.key == pygame.K_RIGHT:
|
if event.key == pygame.K_RIGHT:
|
||||||
gun.mright = True
|
gun.mright = True
|
||||||
elif event.key == pygame.K_LEFT:
|
elif event.key == pygame.K_LEFT:
|
||||||
gun.mleft = True
|
gun.mleft = True
|
||||||
elif event.key == pygame.K_SPACE:
|
elif event.key == pygame.K_SPACE:
|
||||||
new_bullet = Bullet(screen, gun)
|
new_bullet = Bullet(screen, gun)
|
||||||
bullets.add(new_bullet)
|
bullets.add(new_bullet)
|
||||||
elif event.type == pygame.KEYUP:
|
elif event.type == pygame.KEYUP:
|
||||||
if event.key == pygame.K_RIGHT:
|
if event.key == pygame.K_RIGHT:
|
||||||
gun.mright = False
|
gun.mright = False
|
||||||
elif event.key == pygame.K_LEFT:
|
elif event.key == pygame.K_LEFT:
|
||||||
gun.mleft = False
|
gun.mleft = False
|
||||||
|
|
||||||
|
|
||||||
def update(bg_color, screen, gun, enemies, bullets, stats, scores):
|
def update(bg_color, screen, gun, enemies, bullets, stats, scores):
|
||||||
screen.fill(bg_color)
|
screen.fill(bg_color)
|
||||||
gun.output()
|
gun.output()
|
||||||
enemies.draw(screen)
|
enemies.draw(screen)
|
||||||
scores.score_output()
|
scores.score_output()
|
||||||
for bullet in bullets.sprites():
|
for bullet in bullets.sprites():
|
||||||
bullet.draw_bullet()
|
bullet.draw_bullet()
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
|
|
||||||
def update_bullets(bullets, enemies, screen, stats, scores):
|
def update_bullets(bullets, enemies, screen, stats, scores):
|
||||||
bullets.update()
|
bullets.update()
|
||||||
for bullet in bullets.copy():
|
for bullet in bullets.copy():
|
||||||
if bullet.rect.bottom <= 0:
|
if bullet.rect.bottom <= 0:
|
||||||
bullets.remove(bullet)
|
bullets.remove(bullet)
|
||||||
collisions=pygame.sprite.groupcollide(bullets, enemies, True, True)
|
collisions=pygame.sprite.groupcollide(bullets, enemies, True, True)
|
||||||
if collisions:
|
if collisions:
|
||||||
for enemies in collisions.values():
|
for enemies in collisions.values():
|
||||||
stats.score += 10 * len(enemies)
|
stats.score += 10 * len(enemies)
|
||||||
scores.image_score()
|
scores.image_score()
|
||||||
high_score_check(stats, scores)
|
high_score_check(stats, scores)
|
||||||
scores.image_guns()
|
scores.image_guns()
|
||||||
if len(enemies)==0:
|
if len(enemies)==0:
|
||||||
bullets.empty()
|
bullets.empty()
|
||||||
create_army(screen, enemies)
|
create_army(screen, enemies)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def create_army(screen, enemies):
|
def create_army(screen, enemies):
|
||||||
enemy = Enemy(screen)
|
enemy = Enemy(screen)
|
||||||
enemy_width = enemy.rect.width
|
enemy_width = enemy.rect.width
|
||||||
enemy_height = enemy.rect.height
|
enemy_height = enemy.rect.height
|
||||||
number_enemy_y = int((500 - 100 - 2 * enemy_height)/ enemy_height)
|
number_enemy_y = int((500 - 100 - 2 * enemy_height)/ enemy_height)
|
||||||
number_enemy_x = int((500 -2 * enemy_width)/ enemy_width)
|
number_enemy_x = int((500 -2 * enemy_width)/ enemy_width)
|
||||||
|
|
||||||
for j in range (number_enemy_y):
|
for j in range (number_enemy_y):
|
||||||
for i in range(number_enemy_x):
|
for i in range(number_enemy_x):
|
||||||
enemy = Enemy(screen)
|
enemy = Enemy(screen)
|
||||||
enemy.rect.x = enemy_width + enemy_width * i
|
enemy.rect.x = enemy_width + enemy_width * i
|
||||||
enemy.y = enemy_height + enemy_height * j
|
enemy.y = enemy_height + enemy_height * j
|
||||||
enemy.rect.y = enemy.y
|
enemy.rect.y = enemy.y
|
||||||
enemies.add(enemy)
|
enemies.add(enemy)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def update_enemies(stats,screen, gun, enemies, bullets, scores):
|
def update_enemies(stats,screen, gun, enemies, bullets, scores):
|
||||||
enemies.update()
|
enemies.update()
|
||||||
if pygame.sprite.spritecollideany(gun, enemies):
|
if pygame.sprite.spritecollideany(gun, enemies):
|
||||||
gun_kill(stats,screen, gun, enemies, bullets, scores)
|
gun_kill(stats,screen, gun, enemies, bullets, scores)
|
||||||
enemies_check(stats,screen, gun, enemies, bullets, scores)
|
enemies_check(stats,screen, gun, enemies, bullets, scores)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def gun_kill(stats,screen, gun, enemies, bullets, scores):
|
def gun_kill(stats,screen, gun, enemies, bullets, scores):
|
||||||
if stats.guns_left>0:
|
if stats.guns_left>0:
|
||||||
stats.guns_left -= 1
|
stats.guns_left -= 1
|
||||||
scores.image_guns()
|
scores.image_guns()
|
||||||
enemies.empty()
|
enemies.empty()
|
||||||
bullets.empty()
|
bullets.empty()
|
||||||
create_army(screen, enemies)
|
create_army(screen, enemies)
|
||||||
gun.create_gun()
|
gun.create_gun()
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
else:
|
else:
|
||||||
stats.run_game==False
|
stats.run_game==False
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
|
|
||||||
def enemies_check(stats,screen, gun, enemies, bullets, scores):
|
def enemies_check(stats,screen, gun, enemies, bullets, scores):
|
||||||
screen_rect = screen.get_rect()
|
screen_rect = screen.get_rect()
|
||||||
for enemy in enemies.sprites():
|
for enemy in enemies.sprites():
|
||||||
if enemy.rect.bottom >= screen_rect.bottom:
|
if enemy.rect.bottom >= screen_rect.bottom:
|
||||||
gun_kill(stats,screen, gun, enemies, bullets, scores)
|
gun_kill(stats,screen, gun, enemies, bullets, scores)
|
||||||
break
|
break
|
||||||
|
|
||||||
def high_score_check(stats, scores):
|
def high_score_check(stats, scores):
|
||||||
if stats.score >= stats.high_score:
|
if stats.score >= stats.high_score:
|
||||||
stats.high_score = stats.score
|
stats.high_score = stats.score
|
||||||
scores.image_high_score()
|
scores.image_high_score()
|
||||||
with open("highscore.txt", "w") as f:
|
with open("highscores.txt", "w") as f:
|
||||||
f.write(str(stats.high_score))
|
f.write(str(stats.high_score))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue