Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Game.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import pygame # Importa biblioteca Pygame
from settings import *
from random import choice
from funcoes import *

# Inicializa o Pygame
pygame.init()
Expand Down
Binary file modified __pycache__/Game.cpython-39.pyc
Binary file not shown.
Binary file modified __pycache__/assets.cpython-39.pyc
Binary file not shown.
Binary file modified __pycache__/enemy_class.cpython-39.pyc
Binary file not shown.
Binary file added __pycache__/funcoes.cpython-39.pyc
Binary file not shown.
Binary file modified __pycache__/level_class.cpython-39.pyc
Binary file not shown.
Binary file modified __pycache__/player_class.cpython-39.pyc
Binary file not shown.
Binary file modified __pycache__/settings.cpython-39.pyc
Binary file not shown.
3 changes: 1 addition & 2 deletions assets.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
groups = {} # Inicializa dicionário que conterá os grupos de sprites
assets = {}


# =========== Carregando todos os sprites =============
# --- Fundo:
assets['background'] = pygame.image.load('Assets/sprites/teste/fundo_completo1.png')
Expand Down Expand Up @@ -49,4 +48,4 @@
assets['lore6'] = pygame.image.load('Assets/lore/Lore6.jpeg')

# --- Objetivo:
assets['computer'] = pygame.image.load('Assets/sprites/teste/final.png')
assets['computer'] = pygame.image.load('Assets/sprites/teste/final.png')
54 changes: 31 additions & 23 deletions enemy_class.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import pygame
from settings import level_map, screen_height, tile_size, screen_width
from assets import *
from level_class import groups

Expand All @@ -16,12 +15,19 @@ def __init__(self, position, size):

self.speedx = -2

def snail_moviment(self):
'''
Programa o movimento do caracol: ele se move até bater em um tile (geralmente, o invisível)
quando isso ocorre, a velocidade (direção) inverte
'''

def snailImage(self, direction):
if direction == "left":
self.image = pygame.image.load('Assets/sprites/teste/el caracol.png').convert_alpha() #Quando colide, vira para esquerda
self.image = pygame.transform.scale(self.image, (78,64))
self.mask = pygame.mask.from_surface(self.image)

elif direction == "right":
self.image = pygame.image.load('Assets/sprites/teste/caracol_virado.png').convert_alpha() #Quando colide, vira para direita
self.image = pygame.transform.scale(self.image, (78,64))
self.mask = pygame.mask.from_surface(self.image)

def snailCollision(self):

collision_snail_inv = pygame.sprite.groupcollide(groups['all_snails'], groups['invisible_tiles'], False, False)
collision_snail_tile = pygame.sprite.groupcollide(groups['all_snails'], groups['all_tiles'], False, False)

Expand All @@ -30,44 +36,46 @@ def snail_moviment(self):

# Caracol indo para direita
if bloco.rect.right > snail.rect.right > bloco.rect.left:
self.image = pygame.image.load('Assets/sprites/teste/el caracol.png').convert_alpha() #Quando colide, vira para esquerda
self.image = pygame.transform.scale(self.image, (78,64))
self.mask = pygame.mask.from_surface(self.image)
direction = "right"
self.snailImage(direction)
snail.rect.right = bloco.rect.left
snail.speedx = -snail.speedx

# Caracol indo para esquerda
elif bloco.rect.left < snail.rect.left < bloco.rect.right:
self.image = pygame.image.load('Assets/sprites/teste/caracol_virado.png').convert_alpha() #Quando colide, vira para direita
self.image = pygame.transform.scale(self.image, (78,64))
self.mask = pygame.mask.from_surface(self.image)
direction = "left"
self.snailImage(direction)
snail.rect.left = bloco.rect.right
snail.speedx = -snail.speedx


for snail, tiles in collision_snail_tile.items():
bloco = tiles[0]

# Caracol indo para direita
if bloco.rect.right > snail.rect.right > bloco.rect.left:
self.image = pygame.image.load('Assets/sprites/teste/el caracol.png').convert_alpha() #Quando colide, vira para esquerda
self.image = pygame.transform.scale(self.image, (78,64))
self.mask = pygame.mask.from_surface(self.image)
direction = "right"
self.snailImage(direction)
snail.rect.right = bloco.rect.left
snail.speedx = -snail.speedx


# Caracol indo para esquerda
elif bloco.rect.left < snail.rect.left < bloco.rect.right:
self.image = pygame.image.load('Assets/sprites/teste/caracol_virado.png').convert_alpha() #Quando colide, vira para direita
self.image = pygame.transform.scale(self.image, (78,64))
self.mask = pygame.mask.from_surface(self.image)
direction = "left"
self.snailImage(direction)
snail.rect.left = bloco.rect.right
snail.speedx = -snail.speedx

def update(self, x_shift): # Quando player chegar a uma parte do level, o level mexe para o lado (pygame é assim "press F")
def snailMovement(self, x_shift):
'''
Programa o movimento do caracol: ele se move até bater em um tile (geralmente, o invisível)
quando isso ocorre, a velocidade (direção) inverte
'''
self.rect.x += x_shift + self.speedx
self.snail_moviment()

def update(self, x_shift): # Quando player chegar a uma parte do level, o level mexe para o lado (pygame é assim "press F")
self.snailMovement(x_shift)
self.snailCollision()


# ==============================================================================================================================================================================

Expand Down
8 changes: 8 additions & 0 deletions funcoes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from assets import *
from player_class import Munition

def addGroup(sprite, group, name):
for g in group:
g.add(sprite)
groups[name].add(sprite)

63 changes: 45 additions & 18 deletions level_class.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,22 @@
from player_class import *
from enemy_class import *
from assets import *
from funcoes import *

def recarregaMunicao(sprite, level):
if len(sprite.banana_storage) < 3:
recharge_hits = pygame.sprite.spritecollide(sprite, level.recharge, True)
for hit in recharge_hits:
if len(sprite.banana_storage) > 0:
for b in sprite.banana_storage:
sprite.banana_storage.sprites()[-1].kill()
score += 1000
x = 30
for i in range(3):
x += 30
balas_restantes = Munition(x, 10)
sprite.banana_storage.add(balas_restantes)
sprite.groups["all_sprites"].add(balas_restantes)

# Cria grupos de sprites
all_bananas = pygame.sprite.Group()
Expand All @@ -29,7 +45,7 @@ def __init__(self, level_data, surface):

# Lado do player para câmera
self.side_x = screen_width/2
self.zawarudo = 0
self.camShift = 0
self.minx = 0
self.maxx = 11520
self.p = None
Expand Down Expand Up @@ -251,8 +267,7 @@ def player_hit_time(self): # Colisão com hit ao player
player.dmg_score = True

def cam_shift(self):
self.zawarudo -= self.world_shift
pass
self.camShift -= self.world_shift

def cam_scroll(self):
player = self.player.sprite
Expand All @@ -265,10 +280,10 @@ def cam_scroll(self):
self.side_x = player.rect.x

# Movimento da Camera
if self.side_x >= screen_width * 3/4 and self.direction_x > 0 and self.zawarudo < self.maxx - screen_width: #indo a direita
if self.side_x >= screen_width * 3/4 and self.direction_x > 0 and self.camShift < self.maxx - screen_width: #indo a direita
self.world_shift = -8
player.speedx = 0
elif self.side_x <= screen_width/4 and self.direction_x < 0 and self.zawarudo > self.minx: #indo a esquerda
elif self.side_x <= screen_width/4 and self.direction_x < 0 and self.camShift > self.minx: #indo a esquerda
self.world_shift = 8
player.speedx = 0
else:
Expand Down Expand Up @@ -347,10 +362,13 @@ def __init__(self, position, size):
self.image = pygame.transform.scale(self.image, (size,size))
self.rect = self.image.get_rect(topleft = position)
self.mask = pygame.mask.from_surface(self.image)
def update(self, x_shift): # Quando player chegar a uma parte do level, o level mexe para o lado (pygame é assim "press F")

def tileShift(self, x_shift):
self.rect.x += x_shift

def update(self, x_shift): # Quando player chegar a uma parte do level, o level mexe para o lado (pygame é assim "press F")
self.tileShift(x_shift)

class Tile_fundo(pygame.sprite.Sprite):
def __init__(self, position, size):
super().__init__()
Expand All @@ -359,10 +377,13 @@ def __init__(self, position, size):
self.image = pygame.transform.scale(self.image, (size,size))
self.rect = self.image.get_rect(topleft = position)
self.mask = pygame.mask.from_surface(self.image)
def update(self, x_shift):

def tileShift(self, x_shift):
self.rect.x += x_shift

def update(self, x_shift):
self.tileShift(x_shift)

class Tile_t(pygame.sprite.Sprite):
def __init__(self, position, size):
super().__init__()
Expand All @@ -372,9 +393,12 @@ def __init__(self, position, size):
self.rect = self.image.get_rect(topleft = position)
self.mask = pygame.mask.from_surface(self.image)

def update(self, x_shift):
def tileShift(self, x_shift):
self.rect.x += x_shift

def update(self, x_shift):
self.tileShift(x_shift)

class Tile_move(pygame.sprite.Sprite):
def __init__(self, position, size):
super().__init__()
Expand Down Expand Up @@ -404,8 +428,11 @@ def tile_moviment(self):
move_tile.rect.left = bloco.rect.right
move_tile.speedx = -move_tile.speedx

def update(self, x_shift): # Quando player chegar a uma parte do level, o level mexe para o lado (pygame é assim "press F")
self.rect.x += x_shift + self.speedx
def tileShift(self, x_shift):
self.rect.x += x_shift

def update(self, x_shift):
self.tileShift(x_shift)
self.tile_moviment()

# ==============================================================================================================================================================================
Expand All @@ -419,21 +446,21 @@ def __init__(self, position, size):
self.image = pygame.transform.scale(self.image, (size, size))
self.rect = self.image.get_rect(topleft = position)

def update(self, x_shift): # Quando player chegar a uma parte do level, o level mexe para o lado
def tileShift(self, x_shift):
self.rect.x += x_shift

def update(self, x_shift):
self.tileShift(x_shift)

# ==============================================================================================================================================================================

# Classe do totem de finalização (nota na Delta)
class Computer(pygame.sprite.Sprite):
class Computer(Tile):
def __init__(self, position, size):
super().__init__()
super().__init__(position, size)

self.image = assets['computer']
self.image = pygame.transform.scale(self.image, (size, size))
self.rect = self.image.get_rect(topleft = position)
self.mask = pygame.mask.from_surface(self.image)

def update(self, x_shift):
self.rect.x += x_shift

2 changes: 1 addition & 1 deletion player_class.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import pygame
from settings import level_map, screen_height, tile_size, screen_width
from settings import tile_size, screen_width
from assets import *

# Classe do Carlos, o Macaco
Expand Down
3 changes: 1 addition & 2 deletions settings.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
# Setup do mapa

level_map = [

' FFF ',
' A T CT FFF ',
' T CT XXX TC T XXX XXXXXX FFF ',
' XXX XXXXX X XXXXX TV T FF ',
' XXX XXXXX X XXXXXX TV T FF ',
' X X XX FFFF T CTV TF X TV T TV T T CT FF O ',
' M XF FX EFFF XXXXXXX F F X X X X XXXXXXXEEEEXEEEE x X X XXX',
'XXXX T CT XFF FFX CT E EXFFFA EXXFFFFFFFXXEEEEFEEEFC FX TV T E XXX EEEEE T CXXXXXFFFFFFFFFFFFFFFF XXX FFF',
Expand Down