Untitled

mail@pastecode.io avatar
unknown
python
7 months ago
7.7 kB
2
Indexable
Never
import pygame
from pygame.constants import K_w, K_SPACE
from pygame.constants import K_a
from pygame.constants import K_s
from pygame.constants import K_d
from pygame.constants import K_o
import pygame.rect
import random
import sys
import time

pygame.init()
DISPLAYSURF = pygame.display.set_mode((750, 550))
pygame.display.set_caption("Submarine game")

shieldangle = "behind"
currentposition = "Outersea"
blockcount = 0
oxygen = 100
Breach = True
hit = False
tpassed = 0
move = False
goal = 100 - blockcount
radar = pygame.image.load("Assets//radar.png")
enemy = pygame.image.load("Assets//enemy.png")
enemy = pygame.image
exterior = pygame.image.load("Assets//outsidecamera.jpg")
interior_top = pygame.image.load("Assets//topinterior.jpg")
interior_behind = pygame.image.load("Assets//behindinterior.jpg")
interior_below = pygame.image.load("Assets//belowinterior.jpg")
running = False
Close = 20
Attack = 40
Dist = 60
shield = pygame.image.load("Assets//shield-removebg-preview.png")

def display_position(currentposition):
  if currentposition == hitbehind or currentposition == hittop or currentposition == hitfront or currentposition == hitbelow:
    DISPLAYSURF.fill(100,100,100)
  else:
    DISPLAYSURF.blit(radar,(125,125))
    if currentposition == behinddistant:
      DISPLAYSURF.blit(enemy,(125-Dist,125))
    elif currentposition == behindclose:
      DISPLAYSURF.blit(enemy,(125-Close,125))
    elif currentposition == behindattack:
      DISPLAYSURF.blit(enemy,(125-Attack,125))
    elif currentposition == topdistant:
      DISPLAYSURF.blit(enemy,(125,125 + Dist))
    elif currentposition == topclose:
      DISPLAYSURF.blit(enemy,(125,125 + Close))
    elif currentposition == topattack:
      DISPLAYSURF.blit(enemy,(125,125 + Attack))
    elif currentposition == frontdistant:
      DISPLAYSURF.blit(enemy,(125+Dist,125))
    elif currentposition == frontclose:
      DISPLAYSURF.blit(enemy,(125+Close,125))
    elif currentposition == frontattack:
      DISPLAYSURF.blit(enemy,(125+Attack,125))
    elif currentposition == belowdistant:
      DISPLAYSURF.blit(enemy,(125,125-Dist))
    elif currentposition == belowclose:
      DISPLAYSURF.blit(enemy,(125,125-CLose))
    elif currentposition == belowdistant:
      DISPLAYSURF.blit(enemy,(125,125-Attack))
  pygame.display.update
    
def shield_controls():
  keys = pygame.key.get_pressed()
  if keys[K_a]:
    shieldangle = "behind"
    move_position(currentposition)
    DISPLAYSURF.blit(shield,(125,125))
  elif keys[K_d]:
    shieldangle = "front"
    move_position(currentposition)
    shield = pygame.transform.rotate(shield,(180))
    DISPLAYSURF.blit(shield,(125,125))
  elif keys[K_w]:
    shieldangle = "top"
    move_position(currentposition)
    shield = pygame.transform.rotate(shield,(90))
    DISPLAYSURF.blit(shield,(125,125))
  elif keys[K_s]:
    shieldangle = "below"
    move_position(currentposition)
    shield = pygame.transform.rotate(shield,(270))
    DISPLAYSURF.blit(shield,(125,125))
  pygame.display.update
  pygame.event.pump()
  shield = pygame.image.load("Assets//shield-removebg-preview.png")

def draw_start_menu():
  DISPLAYSURF.fill((50, 50, 250))
  font = pygame.font.SysFont('arial', 40)
  Title = font.render('Submarine security game', True, (255, 255, 255))
  start_button = font.render('Start', True, (255, 255, 255))
  GameOver = font.render('game over',True,(255,0,0))
  DISPLAYSURF.blit(Title,(375 - Title.get_width()/2, 425 - Title.get_height()*7))
  DISPLAYSURF.blit(start_button, (375 - 255 / 4, 425 - 255 ))
  pygame.display.update()



def start_pressed():
  currentposition = "Outersea"
  blockcount = 0
  shieldangle = "behind"
  oxygen = 100
  Breach = False
  tpassed = pygame.time.get_ticks()
  running = True
  DISPLAYSURF.fill((100,100,100))
  DISPLAYSURF.blit(radar,(125,125))
  DISPLAYSURF.blit(shield,(150,70))
  pygame.display.update
  pygame.transform.rotate(shield,(180))
def moveposition(currentposition):
  text_file = open("Mapping_layout/" + currentposition + ".txt", "r")
  x = random.randrange(0, 75)
  if x <= 25:
    L1 = text_file.readline(1)
    if L1 == "hitbehind" or L1 == "hittop" or L1 == "hitbehind" or L1 == "hitbelow":
      hit = True
    else:
      currentposition = text_file.readline(1)
      print(currentposition)
      display_position(currentposition)
  elif x > 25 and x <= 50:
    currentposition = text_file.readline(2)
    print(currentposition)
    display_position(currentposition)
  elif x > 50 and x <= 65:
    currentposition = text_file.readline(3)
    print(currentposition)
    display_position(currentposition)
  elif x > 65:
    currentposition = text_file.readline(4)
    print(currentposition)
    display_position(currentposition)

def check_hit():
  while currentposition == "hitbehind":
    if shieldangle == "behind":
      blockcount =+ 1000
      currentposition = "Outerseas"
      DISPLAYSURF.blit(exterior,(125,125))
      pygame.time.wait(5000)
      display_position(currentposition)
    else:
      y = random.randint(10, 20)
      oxygen = oxygen - y
      currentposition = "behindclose"
      DISPLAYSURF.blit(interior_behind,(125,125))
      pygame.time.wait(5000)
      display_position(currentposition)
  while currentposition == "hittop":
    if shieldangle == "top":
      blockcount =+ 1000
      currentposition = "Outerseas"
      DISPLAYSURF.blit(exterior,(125,125))
      pygame.time.wait(5000)
      display_position(currentposition)
    else:
      y = random.randint(10, 20)
      oxygen = oxygen - y
      currentposition = "topclose"
      DISPLAYSURF.blit(interior_top,(125,125))
      pygame.time.wait(5000)
      display_position(currentposition)
  while currentposition == "hitbelow":
    if shieldangle == "below":
      blockcount =+ 1000
      currentposition = "Outerseas"
      DISPLAYSURF.blit(exterior,(125,125))
      pygame.time.wait(5000)
      display_position(currentposition)
    else:
      y = random.randint(10, 20)
      oxygen = oxygen - y
      currentposition = "belowclose"
      DISPLAYSURF.blit(interior_below,(125,125))
      pygame.time.wait(5000)
      display_position(currentposition)
  
  while currentposition == "hitfront":
    if shieldangle == "front":
      blockcount =+ 1000
      currentposition = "Outerseas"
      DISPLAYSURF.blit(exterior,(125,125))
      pygame.time.wait(5000)
      display_position(currentposition)
    else:
      y = random.randint(10, 20)
      oxygen = oxygen - y
      currentposition = "frontclose"
      DISPLAYSURF.blit(exterior,(125,125))
      pygame.time.wait(5000)
      display_position(currentposition)

while True:
  keys = pygame.key.get_pressed()
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
      pygame.quit()
      sys.exit()
  pygame.display.update()
  if not running:
    draw_start_menu()
    keys = pygame.key.get_pressed()
    if keys[K_SPACE]:
      running = True
      start_pressed()
      shield_controls()
  keys = pygame.key.get_pressed()
  if keys[K_SPACE]:
    running = True
    start_pressed()
  while running == True:
    shield_controls()
    pygame.event.pump()
  if hit == True:
    check_hit()
  if oxygen <= 0:
    breach = true
    DISPLAYSURF.fill(0,0,0)
    DISPLAYSURF.blit(GameOver,(125,125))
  if keys[K_o]:
    font2 = pygame.font.SysFont('Arial', 14)
    oxygenread = "Current oxygen level is: " + str(oxygen)
    oxygen_level = font2.render(oxygenread,True,(0,0,255))
    DISPLAYSURF.blit(oxygen_level, (20,0))
Leave a Comment