Upload files to "Game_1"
parent
e7d561c587
commit
6b2a8fa21f
|
@ -0,0 +1,35 @@
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>5a0a8f0a-4743-4282-a2fa-e1f09ffc6a22</ProjectGuid>
|
||||||
|
<ProjectHome>.</ProjectHome>
|
||||||
|
<StartupFile>Game_1.py</StartupFile>
|
||||||
|
<SearchPath>
|
||||||
|
</SearchPath>
|
||||||
|
<WorkingDirectory>.</WorkingDirectory>
|
||||||
|
<OutputPath>.</OutputPath>
|
||||||
|
<Name>Game_1</Name>
|
||||||
|
<RootNamespace>Game_1</RootNamespace>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Game_1.py" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Python Tools\Microsoft.PythonTools.targets" />
|
||||||
|
<!-- Uncomment the CoreCompile target to enable the Build command in
|
||||||
|
Visual Studio and specify your pre- and post-build commands in
|
||||||
|
the BeforeBuild and AfterBuild targets below. -->
|
||||||
|
<!--<Target Name="CoreCompile" />-->
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
</Project>
|
|
@ -0,0 +1,197 @@
|
||||||
|
import pygame
|
||||||
|
from time import sleep
|
||||||
|
|
||||||
|
from pygame.sprite import Sprite
|
||||||
|
|
||||||
|
pygame.init()
|
||||||
|
|
||||||
|
class Camera:
|
||||||
|
def __init__(self, player, size=(400, 300)):
|
||||||
|
self.player = player
|
||||||
|
self.center = pygame.display.get_surface().get_rect().center
|
||||||
|
self.size = size
|
||||||
|
self.player_size = self.player.rect.size
|
||||||
|
self.speed_x = 0
|
||||||
|
self.speed_y = 0
|
||||||
|
|
||||||
|
def update(self, dt, sprites):
|
||||||
|
x_move = abs(self.player.rect.centerx - self.center[0]) > self.size[0] // 2
|
||||||
|
y_move = abs(self.player.rect.centery - self.center[1]) > self.size[1] // 2
|
||||||
|
if x_move or y_move:
|
||||||
|
for sprite in sprites:
|
||||||
|
if x_move:
|
||||||
|
self.speed_x = (self.player.rect.centerx - self.center[0]) * 2 * dt
|
||||||
|
sprite.rect.x -= self.speed_x
|
||||||
|
if y_move:
|
||||||
|
self.speed_y = (self.player.rect.centery - self.center[1]) * 2 * dt
|
||||||
|
sprite.rect.y -= self.speed_y
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class Wall(pygame.sprite.Sprite):
|
||||||
|
def __init__(self, size, pos) -> None:
|
||||||
|
super().__init__()
|
||||||
|
self.image = pygame.surface.Surface(size)
|
||||||
|
self.image.fill("red")
|
||||||
|
self.rect = self.image.get_rect(center=pos)
|
||||||
|
|
||||||
|
class Floor(pygame.sprite.Sprite):
|
||||||
|
def __init__(self, size, pos) -> None:
|
||||||
|
super().__init__()
|
||||||
|
|
||||||
|
|
||||||
|
def create_floor(file_name):
|
||||||
|
floor = []
|
||||||
|
with open (file_name) as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
for i, line in enumerate(lines[::2]):
|
||||||
|
if floor == "#":
|
||||||
|
floor.append(Floor((30,30), (30 + 30*i)))
|
||||||
|
return floor
|
||||||
|
|
||||||
|
|
||||||
|
def create_walls(file_name):
|
||||||
|
walls = []
|
||||||
|
with open(file_name) as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
for i, line in enumerate(lines[::2]):
|
||||||
|
for j, floor in enumerate(line[1::2]):
|
||||||
|
if floor == "|":
|
||||||
|
walls.append(Wall((5, 30), (15 + 30*j, 30*i)))
|
||||||
|
for i, line in enumerate(lines[1::2]):
|
||||||
|
for j, floor in enumerate(line[::2]):
|
||||||
|
if floor == "-":
|
||||||
|
walls.append(Wall((30, 5), (30*j, 15 + 30*i)))
|
||||||
|
|
||||||
|
return walls
|
||||||
|
|
||||||
|
class Player(pygame.sprite.Sprite):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self.right = True
|
||||||
|
self.move = True
|
||||||
|
self.player_pos = pygame.Vector2(screen.get_width() / 2, screen.get_height() / 2)
|
||||||
|
self.dt = 0
|
||||||
|
self.keys = pygame.key.get_pressed()
|
||||||
|
self.player_right = pygame.transform.scale(pygame.image.load("Sprites/Idle/Player_right.png").convert_alpha(), (35, 40)),
|
||||||
|
self.player_run_right_1 = pygame.transform.scale(pygame.image.load("Sprites/Running/Player_run_right_1.png").convert_alpha(), (35, 40)),
|
||||||
|
self.player_run_right_2 = pygame.transform.scale(pygame.image.load("Sprites/Running/Player_run_right_2.png").convert_alpha(), (35, 40)),
|
||||||
|
self.player_run_right_3 = pygame.transform.scale(pygame.image.load("Sprites/Running/Player_run_right_3.png").convert_alpha(), (35, 40)),
|
||||||
|
self.player_run_right_4 = pygame.transform.scale(pygame.image.load("Sprites/Running/Player_run_right_4.png").convert_alpha(), (35, 40)),
|
||||||
|
self.player_run_right_5 = pygame.transform.scale(pygame.image.load("Sprites/Running/Player_run_right_5.png").convert_alpha(), (35, 40)),
|
||||||
|
self.player_run_right_6 = pygame.transform.scale(pygame.image.load("Sprites/Running/Player_run_right_6.png").convert_alpha(), (35, 40))
|
||||||
|
|
||||||
|
self.player_left = pygame.transform.scale(pygame.image.load("Sprites/Idle/Player_left.png").convert_alpha(), (35, 40))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def movement(self):
|
||||||
|
if self.keys[pygame.K_w]:
|
||||||
|
self.player_pos.y -= 200 * dt
|
||||||
|
if self.keys[pygame.K_s]:
|
||||||
|
self.player_pos.y += 200 * dt
|
||||||
|
if self.keys[pygame.K_a]:
|
||||||
|
self.player_pos.x -= 200 * dt
|
||||||
|
screen.blit(self.player_left, (self.player_pos.x, self.player_pos.y))
|
||||||
|
right = False
|
||||||
|
|
||||||
|
if self.keys[pygame.K_d]:
|
||||||
|
self.player_pos.x += 200 * dt
|
||||||
|
screen.blit(self.player_right, (self.player_pos.x, self.player_pos.y))
|
||||||
|
self.right = True
|
||||||
|
self.move = True
|
||||||
|
else:
|
||||||
|
move = False
|
||||||
|
|
||||||
|
|
||||||
|
def sprites(self):
|
||||||
|
if self.right == True:
|
||||||
|
screen.blit(self.player_right, (self.player_pos.x, self.player_pos.y))
|
||||||
|
else:
|
||||||
|
screen.blit(self.player_left, (self.player_pos.x, self.player_pos.y))
|
||||||
|
|
||||||
|
while self.move == True:
|
||||||
|
screen.blit(self.player_run_right_1, (self.player_pos.x, self.player_pos.y))
|
||||||
|
sleep(0.05)
|
||||||
|
screen.blit(self.player_run_right_2, (self.player_pos.x, self.player_pos.y))
|
||||||
|
sleep(0.05)
|
||||||
|
screen.blit(self.player_run_right_3, (self.player_pos.x, self.player_pos.y))
|
||||||
|
sleep(0.05)
|
||||||
|
screen.blit(self.player_run_right_4, (self.player_pos.x, self.player_pos.y))
|
||||||
|
sleep(0.05)
|
||||||
|
screen.blit(self.player_run_right_5, (self.player_pos.x, self.player_pos.y))
|
||||||
|
sleep(0.05)
|
||||||
|
screen.blit(self.player_run_right_6, (self.player_pos.x, self.player_pos.y))
|
||||||
|
sleep(0.05)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
screen = pygame.display.set_mode((1920, 1015))
|
||||||
|
pygame.display.set_caption("Game_name")
|
||||||
|
|
||||||
|
clock = pygame.time.Clock()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
floor_image = pygame.transform.scale(pygame.image.load("Floor.png").convert_alpha(), (30, 30))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
running = True
|
||||||
|
|
||||||
|
wall_list = create_walls("lvl.txt")
|
||||||
|
for wall in wall_list:
|
||||||
|
print(f'{wall.rect.size})x = {wall.rect.x}; y = {wall.rect.y}')
|
||||||
|
walls = pygame.sprite.Group(*wall_list)
|
||||||
|
|
||||||
|
floor_list = create_floor("lvl.txt")
|
||||||
|
for floor in floor_list:
|
||||||
|
print(f'{floor.rect.size})x = {floor.rect.x}; y = {floor.rect.y}')
|
||||||
|
floor = pygame.sprite.Group(*floor_list)
|
||||||
|
|
||||||
|
|
||||||
|
player = Player()
|
||||||
|
all_sprites = pygame.sprite.Group()
|
||||||
|
all_sprites.add(player)
|
||||||
|
|
||||||
|
while running:
|
||||||
|
for event in pygame.event.get():
|
||||||
|
if event.type == pygame.QUIT:
|
||||||
|
running = False
|
||||||
|
|
||||||
|
screen.fill("cyan")
|
||||||
|
for y in range(10,20):
|
||||||
|
for x in range(26,38):
|
||||||
|
screen.blit(floor_image, (30*x, 30*y))
|
||||||
|
|
||||||
|
all_sprites.draw(screen)
|
||||||
|
|
||||||
|
|
||||||
|
walls.draw(screen)
|
||||||
|
pygame.display.flip()
|
||||||
|
|
||||||
|
dt = clock.tick(60)/1000
|
||||||
|
|
||||||
|
floor.draw(screen)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
pygame.quit()
|
Loading…
Reference in New Issue