So I have been trying to create a game with a small map that moves with the player. If the player goes to a wall, the camera also stops. No scrolling. If you want to discover an area, you go to it. And there are many obstacles. the map should be sort of the cafeteria from among us. I tried using tiled, but… It is not beginner friendly. Making a separate file is okay with me. Thanks in advance.
Full code:
'''
Imports
'''
import os
import random
import sys
import pygame
import pygame_textinput
from pygame.locals import *
os.chdir(os.path.dirname(os.path.abspath(file)))
'''
Basic Stuff for Pygame
'''
pygame.init()
display_surface = pygame.display.set_mode((800, 640))
pygame.display.set_caption("AMOGUS")
gameIcon = pygame.image.load('icon_of_the_game.png')
pygame.display.set_icon(gameIcon)
'''
Variables
'''
fps =600
ai_move_speed = 2
player_changeable_name = pygame_textinput.TextInputVisualizer()
clock = pygame.time.Clock()
white = (255, 255, 255)
WINDOWHEIGHT = 580
WINDOWWIDTH = 740
'''
Game State Variable
'''
menu = "menu"
game = "game"
ending_ani = "ending_ani"
'''
Functions
'''
def menu():
print("In Proggress")
def game():
print("In Proggress")
def ending_ani():
print("In Proggress")
'''
Images
'''
special_character = random.randint(1, 5)
if special_character == 1:
imposter = pygame.image.load('sus1.png')
chooseable_var = random.randint(1, 4)
if chooseable_var == 1:
sussie1 = pygame.image.load('sus2.png')
sussie2 = pygame.image.load('sus3.png')
sussie3 = pygame.image.load('sus4.png')
sussie4 = pygame.image.load('sus5.png')
if chooseable_var == 2:
sussie1 = pygame.image.load('sus5.png')
sussie2 = pygame.image.load('sus2.png')
sussie3 = pygame.image.load('sus3.png')
sussie4 = pygame.image.load('sus4.png')
if chooseable_var == 3:
sussie1 = pygame.image.load('sus4.png')
sussie2 = pygame.image.load('sus5.png')
sussie3 = pygame.image.load('sus2.png')
sussie4 = pygame.image.load('sus3.png')
if chooseable_var == 4:
sussie1 = pygame.image.load('sus3.png')
sussie2 = pygame.image.load('sus4.png')
sussie3 = pygame.image.load('sus5.png')
sussie4 = pygame.image.load('sus2.png')
elif special_character == 2:
imposter = pygame.image.load('sus2.png')
chooseable_var = random.randint(1, 4)
if chooseable_var == 1:
sussie1 = pygame.image.load('sus1.png')
sussie2 = pygame.image.load('sus3.png')
sussie3 = pygame.image.load('sus4.png')
sussie4 = pygame.image.load('sus5.png')
if chooseable_var == 2:
sussie1 = pygame.image.load('sus5.png')
sussie2 = pygame.image.load('sus1.png')
sussie3 = pygame.image.load('sus3.png')
sussie4 = pygame.image.load('sus4.png')
if chooseable_var == 3:
sussie1 = pygame.image.load('sus4.png')
sussie2 = pygame.image.load('sus5.png')
sussie3 = pygame.image.load('sus1.png')
sussie4 = pygame.image.load('sus3.png')
if chooseable_var == 4:
sussie1 = pygame.image.load('sus3.png')
sussie2 = pygame.image.load('sus4.png')
sussie3 = pygame.image.load('sus5.png')
sussie4 = pygame.image.load('sus1.png')
elif special_character == 3:
imposter = pygame.image.load('sus3.png')
chooseable_var = random.randint(1, 4)
if chooseable_var == 1:
sussie1 = pygame.image.load('sus2.png')
sussie2 = pygame.image.load('sus1.png')
sussie3 = pygame.image.load('sus4.png')
sussie4 = pygame.image.load('sus5.png')
if chooseable_var == 2:
sussie1 = pygame.image.load('sus5.png')
sussie2 = pygame.image.load('sus2.png')
sussie3 = pygame.image.load('sus1.png')
sussie4 = pygame.image.load('sus4.png')
if chooseable_var == 3:
sussie1 = pygame.image.load('sus4.png')
sussie2 = pygame.image.load('sus5.png')
sussie3 = pygame.image.load('sus2.png')
sussie4 = pygame.image.load('sus1.png')
if chooseable_var == 4:
sussie1 = pygame.image.load('sus1.png')
sussie2 = pygame.image.load('sus4.png')
sussie3 = pygame.image.load('sus5.png')
sussie4 = pygame.image.load('sus2.png')
elif special_character == 4:
imposter = pygame.image.load('sus4.png')
chooseable_var = random.randint(1, 4)
if chooseable_var == 1:
sussie1 = pygame.image.load('sus2.png')
sussie2 = pygame.image.load('sus3.png')
sussie3 = pygame.image.load('sus1.png')
sussie4 = pygame.image.load('sus5.png')
if chooseable_var == 2:
sussie1 = pygame.image.load('sus5.png')
sussie2 = pygame.image.load('sus2.png')
sussie3 = pygame.image.load('sus3.png')
sussie4 = pygame.image.load('sus1.png')
if chooseable_var == 3:
sussie1 = pygame.image.load('sus1.png')
sussie2 = pygame.image.load('sus5.png')
sussie3 = pygame.image.load('sus2.png')
sussie4 = pygame.image.load('sus3.png')
if chooseable_var == 4:
sussie1 = pygame.image.load('sus3.png')
sussie2 = pygame.image.load('sus1.png')
sussie3 = pygame.image.load('sus5.png')
sussie4 = pygame.image.load('sus2.png')
else:
imposter = pygame.image.load('sus5.png')
chooseable_var = random.randint(1, 4)
if chooseable_var == 1:
sussie1 = pygame.image.load('sus2.png')
sussie2 = pygame.image.load('sus3.png')
sussie3 = pygame.image.load('sus4.png')
sussie4 = pygame.image.load('sus1.png')
if chooseable_var == 2:
sussie1 = pygame.image.load('sus1.png')
sussie2 = pygame.image.load('sus2.png')
sussie3 = pygame.image.load('sus3.png')
sussie4 = pygame.image.load('sus4.png')
if chooseable_var == 3:
sussie1 = pygame.image.load('sus4.png')
sussie2 = pygame.image.load('sus1.png')
sussie3 = pygame.image.load('sus2.png')
sussie4 = pygame.image.load('sus3.png')
if chooseable_var == 4:
sussie1 = pygame.image.load('sus3.png')
sussie2 = pygame.image.load('sus4.png')
sussie3 = pygame.image.load('sus1.png')
sussie4 = pygame.image.load('sus2.png')
hero = pygame.image.load('hero.png')
'''
Hero
'''
heroX = 100
heroY = 100
MOVESPEED = 2
moveRight = False
moveLeft = False
moveUp = False
moveDown = False
'''
Imposter
'''
ImpX = 50
ImpY = 500
imp_left = False
imp_right = True
down_val = 64
up_val = -64
default_mover = down_val
'''
Sussies
'''
Sussie1X = 0
Sussie1Y = 0
Sussie2X = 50
Sussie2Y = 50
Sussie3X = 100
Sussie3Y = 100
Sussie4X = 250
Sussie4Y = 250
'''
Main Script
'''
game_state = menu
while game_state == menu:
display_surface.fill(white)
display_surface.blit(imposter, (ImpX, ImpY))
display_surface.blit(sussie1, (Sussie1X, Sussie1Y))
display_surface.blit(sussie2, (Sussie2X, Sussie2Y))
display_surface.blit(sussie3, (Sussie3X, Sussie3Y))
display_surface.blit(sussie4, (Sussie4X, Sussie4Y))
display_surface.blit(hero, (heroX, heroY))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
# Change the keyboard variables.
if event.key == K_LEFT or event.key == K_a:
moveRight = False
moveLeft = True
if event.key == K_RIGHT or event.key == K_d:
moveLeft = False
moveRight = True
if event.key == K_UP or event.key == K_w:
moveDown = False
moveUp = True
if event.key == K_DOWN or event.key == K_s:
moveUp = False
moveDown = True
if event.type == pygame.KEYUP:
if event.key == K_LEFT or event.key == K_a:
moveLeft = False
if event.key == K_RIGHT or event.key == K_d:
moveRight = False
if event.key == K_UP or event.key == K_w:
moveUp = False
if event.key == K_DOWN or event.key == K_s:
moveDown = False
else:
pass
if moveDown and heroY < WINDOWHEIGHT:
heroY += MOVESPEED
if moveUp and heroY > 0:
heroY -= MOVESPEED
if moveLeft and heroX > 0:
heroX -= MOVESPEED
if moveRight and heroX < WINDOWWIDTH:
heroX += MOVESPEED
if heroY == 0:
heroY = 0
if heroX == 0:
heroX = 0
if heroX == 740:
heroX = 740
if heroY == 580:
heroY = 580
if imp_right:
ImpX += ai_move_speed
if ImpX == WINDOWWIDTH or ImpX > WINDOWWIDTH:
imp_right = False
imp_left = True
ImpY += default_mover
if ImpY == 0 or ImpY > WINDOWHEIGHT:
default_mover = up_val
imp_left = True
imp_right = False
if ImpY == 0 or ImpY < 0:
default_mover = down_val
imp_left = True
imp_right = False
if imp_left:
ImpX -= ai_move_speed
if ImpX == 0 or ImpX < 0:
imp_left = False
imp_right = True
ImpY += default_mover
if ImpY == WINDOWHEIGHT or ImpY > WINDOWHEIGHT:
default_mover = up_val
imp_left = False
imp_right = True
if ImpY == 0 or ImpY < 0:
default_mover = down_val
imp_left = False
imp_right = True
clock.tick(fps)
pygame.display.update()
Cafeteria: https://among-us.fandom.com/wiki/Cafeteria