diff --git a/first.py b/first.py deleted file mode 100644 index 8f9dd89..0000000 --- a/first.py +++ /dev/null @@ -1,195 +0,0 @@ -import pygame -import random -import math -from pygame import mixer - -# initialize pygame -pygame.init() - -# screen resolutions -width = 800 -height = 425 -screen = pygame.display.set_mode((width, height)) # create screen - -# Background -background = pygame.image.load('img/background.jpg') - -# Soundtrack -mixer.music.load('31 Flashback.mp3') -mixer.music.play(-1) - -# Title and Icon -pygame.display.set_caption("You should be in quarantine!") -icon = pygame.image.load('img/icon.png') -pygame.display.set_icon(icon) - -# Player -playerImg = pygame.image.load('img/player.png') -playerX = 100 -playerY = 360 -playerX_change, playerY_change = 0, 0 -score = 0 - -# Enemy -enemyImg = [] -enemyX = [] -enemyY = [] -enemyX_change = [] -enemyY_change = [] -num_of_enemies = 6 - -for i in range(num_of_enemies): - enemyImg.append(pygame.image.load('img/enemy.png')) - enemyX.append(random.randint(150, width - 32)) - enemyY.append(360) - enemyX_change.append(-0.7) - enemyY_change.append(0) - -# Player spray Attack: Ready - spray attack isn't being seen / Fire - spray is moving -sprayImg = pygame.image.load('img/spray.png') -sprayX = 0 -sprayY = 360 -sprayX_change = 2 -spray_state = "ready" - -# Score text - -score_value = 0 -font = pygame.font.Font('8-BIT WONDER.ttf', 18) -textX, textY = 10, 10 - -# Game Over text -over_font = pygame.font.Font('8-BIT WONDER.ttf', 36) -game_over = False # game_over remains False until player loses the game - - -def show_score(x, y): - score = font.render("Score " + str(score_value), True, (245, 194, 66)) - screen.blit(score, (x, y)) - - -def game_over_text(): - over_text = over_font.render("GAME OVER", True, (0, 0, 0)) - screen.blit(over_text, (int(width / 2) - 160, int(height / 2) - 20)) - - -def player(x, y): - screen.blit(playerImg, (x, y)) - - -def enemy(x, y, i): - screen.blit(enemyImg[i], (x, y)) - - -def player_attack(x, y): - global spray_state - spray_state = "fire" - screen.blit(sprayImg, (x + 10, y + 10)) - - -def isCollision(x1, y1, x2, y2): - distance = math.sqrt((math.pow(x1 - x2, 2)) + (math.pow(y1 - y2, 2))) - if distance < 27: - return True - return False - - -# Game loop -running = True -while running: # leaves window opened - screen.fill((250, 152, 3)) # note: things appear on top of the things above it in the code - # background image - screen.blit(background, (0, 0)) - - for event in pygame.event.get(): - if event.type == pygame.QUIT: - running = False - - # when key is being pressed, below are all the game keys - if event.type == pygame.KEYDOWN and game_over is False: - if event.key == pygame.K_LEFT: - playerX_change = -1 - if event.key == pygame.K_RIGHT: - playerX_change = 1 - if event.key == pygame.K_UP: - playerY_change = -1 - if event.key == pygame.K_DOWN: - playerY_change = 1 - if event.key == pygame.K_z: - if spray_state is "ready": - # spray_sound = mixer.Sound('quickfart.wav') #later change .wav to the spray sound - # spray_sound.play() - # get's current x, y coordinate of the player - sprayX = playerX - sprayY = playerY - player_attack(sprayX, sprayY) - - if event.type == pygame.KEYUP: - if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: - playerX_change = 0 - if event.key == pygame.K_UP or event.key == pygame.K_DOWN: - playerY_change = 0 - - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE: - game_over = False - - playerX += playerX_change - playerY += playerY_change - - # set boundaries so player doesn't leave the screen - if playerX <= 0: - playerX = 0 - elif playerX >= width - 32: - playerX = width - 32 - if playerY <= 0: - playerY = 0 - elif playerY >= height - 32: - playerY = height - 32 - - # Enemy movement patterns - for i in range(num_of_enemies): - - # Game over - player_collision = isCollision(playerX, playerY, enemyX[i], enemyY[i]) - if player_collision: - score_value = 0 - game_over = True - - enemyX[i] += enemyX_change[i] - # set boundaries to define enemy movement - if enemyX[i] <= 0: # later change this value to any left boundary, like a wall on it's left - enemyX_change[i] = 0.7 - elif enemyX[i] >= width - 32: # later change this value to any right boundary, like a wall on it's right - enemyX_change[i] = -0.7 - - # Collision between attack and enemy - attack_collision = isCollision(enemyX[i], enemyY[i], sprayX, sprayY) - if attack_collision: - sprayY = height - spray_state = "ready" - score_value += 1 - enemyX[i] = random.randint(120, width - 32) - enemyY[i] = 360 - enemydeath_sound = mixer.Sound('quickfart.wav') # later change .wav to the player being attacked sound - enemydeath_sound.play() - - enemy(enemyX[i], enemyY[i], i) - - # Spray attack movement - if sprayX >= width: - sprayX = 0 - spray_state = "ready" - - if spray_state is "fire": - sprayX += sprayX_change - player_attack(sprayX, sprayY) - - # When player loses the game: - if game_over: - game_over_text() - - player(playerX, playerY) - show_score(textX, textY) - # note: things appear on top of the things above it in the code - pygame.display.update() diff --git a/main.py b/main.py index baad6c6..bc1cefa 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,4 @@ import pygame -import random -import math import os.path from pygame import mixer from sprites import * @@ -84,14 +82,7 @@ class Game: self.player.y = lowest.y + 1 self.player.vel.y = 0 # hitting blocks from the side - for hit in range(0, len(hits)): - if self.player.y > hits[hit].y: - if self.player.x < hits[hit].x: - self.player.x = hits[hit].x - 1 - self.player.vel.x = 0 - if self.player.x > hits[hit].x: - self.player.x = hits[hit].x + 1 - self.player.vel.x = 0 + # Die, by falling of the screen if self.player.rect.bottom > height + 60: diff --git a/map2.txt b/map2.txt index 176c03c..e976f97 100644 --- a/map2.txt +++ b/map2.txt @@ -1,16 +1,16 @@ ............................................................ -....P.....1................................................. +..........1................................................. ............................................................ ............................................................ ...............11........................................... ............................................................ ....111..................................................... ...................111...................................... -...........111.............................................. -................111.............1111111111.................. +...........111........................................P..... +................................1111111111.................. .................................................11111111... -.....111............11111111................................ -1..........11111............................................ +....................11111111................................ +............................................................ 1............................1.............................. 111111111111111111111111111111.............................. ..............................111111111111111111111111111111 \ No newline at end of file diff --git a/tile_testing.py b/tile_testing.py deleted file mode 100644 index 39a57be..0000000 --- a/tile_testing.py +++ /dev/null @@ -1,30 +0,0 @@ -import pygame - - -class spritesheet(object): - def __init__(self, filename): - self.sheet = pygame.image.load(filename).convert() - - # Load a specific image from a specific rectangle - def image_at(self, rectangle, colorkey=None): - "Loads image from x,y,x+offset,y+offset" - rect = pygame.Rect(rectangle) - image = pygame.Surface(rect.size).convert() - image.blit(self.sheet, (0, 0), rect) - if colorkey is not None: - if colorkey is -1: - colorkey = image.get_at((0, 0)) - image.set_colorkey(colorkey, pygame.RLEACCEL) - return image - - # Load a whole bunch of images and return them as a list - def images_at(self, rects, colorkey=None): - "Loads multiple images, supply a list of coordinates" - return [self.image_at(rect, colorkey) for rect in rects] - - # Load a whole strip of images - def load_strip(self, rect, image_count, colorkey=None): - "Loads a strip of images and returns them as a list" - tups = [(rect[0] + rect[2] * x, rect[1], rect[2], rect[3]) - for x in range(image_count)] - return self.images_at(tups, colorkey)