Может ли кто-нибудь понять, почему моя игра переходит в состояние неопределенности [закрыто]Python

Программы на Python
Ответить
Anonymous
 Может ли кто-нибудь понять, почему моя игра переходит в состояние неопределенности [закрыто]

Сообщение Anonymous »

это код моей игры:

Код: Выделить всё

import pygame
import math
import ast
import random
import noise
from collections import deque
pygame.init()
tile_size = 33
with open("tile_map0.tile", "r") as map_file:
tiles = map_file.read()
tiles = ast.literal_eval(tiles)
width = len(tiles[0]) * tile_size
height = len(tiles) * tile_size
screen = pygame.display.set_mode((width,height))
pygame.display.set_caption("Altercation")
image = pygame.image.load("Wall_sprite.png")
image = pygame.transform.scale(image, (tile_size, tile_size))
bullets = []
tile_rects = []
enemy_bullets = []
heals = []
heal_image = pygame.image.load("Heal.png")
background = pygame.image.load("Background.png")
background = pygame.transform.scale(background,(width,height))
paused = False
def generate_heights(map_width,map_height):
scale = 0.05
octaves = random.randint(1,20)
persistence = 0.3
lacunarity = 2.0
seed = random.randint(-1000, 500)
heights = []
for y in range(map_height):
row = []
for x in range(map_width):
noise_val = noise.pnoise2(x * scale, y * scale, octaves=octaves, persistence=persistence, lacunarity=lacunarity, base=seed)
height_val = int((noise_val + 0.5) * 100)
row.append(height_val)
heights.append(row)
return heights
def make_noise_tile_map(noise, map_width, map_height, player_start=(1, 28)):

def is_in_bounds(x, y):
return 0  0 and tile != 2 and tile != 4 and tile != 5:
if self.rect.colliderect(tile_rect):
if original_rect.y < self.rect.y:
self.rect.bottom = tile_rect.top
self.velocity = 0
self.on_ground = True
elif original_rect.y >  self.rect.y:
self.rect.top = tile_rect.bottom
self.velocity = 0
def move(self, keys):
original_rect = self.rect.copy()
if keys[pygame.K_a]:
self.rect.x -= 3
self.flipped = True
if keys[pygame.K_d]:
self.rect.x += 3
self.flipped = False
if self.velocity >= -1 and self.jumped:
self.image = pygame.image.load("Player.png")
self.image = pygame.transform.scale(self.image,(30,30))
self.image.set_colorkey((255,255,255))
self.jumped = False
self.check_horizontal_collision(original_rect)
self.update_gravity()
self.check_vertical_collision(original_rect)
def check_flipped(self):
if self.flipped:
self.current_image = pygame.transform.flip(self.image, True, False)
else:
self.current_image = self.image
def jump(self,event):
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE and self.on_ground:
self.jumped = True
self.velocity = -3.5
self.image = pygame.image.load("Player_Jump.png")
self.image = pygame.transform.scale(self.image,(30,68))
self.image.set_colorkey((255,255,255))
def update_gravity(self):
self.velocity += self.gravity
self.rect.y += self.velocity
def draw(self):
super().draw()
player = Player(50,height - 50)
clock = pygame.time.Clock()
hp1 = pygame.Rect(0,0,100,20)
hp2 = pygame.Rect(0,0,player.hp,20)
update_value = 0
def win(real_update_value,player_hp):
global player
global enemies
global tiles
global update_value
global tile_rects
global heals
player = Player(50,height - 70)
player.hp = player_hp
enemies = []
update_value = real_update_value + 1
tile_rects = []
if not update_value >= 4:
with open(f"tile_map{update_value}.tile", "r") as map_file:
tiles = map_file.read()
tiles = ast.literal_eval(tiles)
else:
with open("tile_map4.tile", "r") as map_file:
tiles = map_file.read()
base_tiles = ast.literal_eval(tiles)
noise = generate_heights(len(base_tiles[0]),len(base_tiles))
noise_map = make_noise_tile_map(noise,len(base_tiles[0]),len(base_tiles))
final_map = merge_tilemaps(base_tiles,noise_map)
tiles = final_map
for y, row in enumerate(tiles):
for x, tile in enumerate(row):
tile_rect = pygame.Rect(x * tile_size, y * tile_size, tile_size, tile_size)
if len(tile_rects)  width or ebullet_rect.y < 0 or ebullet_rect.y > height:
if enemy_bullet in enemy_bullets:
enemy_bullets.remove(enemy_bullet)
else:
for tile_rect in tile_rects:
if ebullet_rect.colliderect(tile_rect):
if enemy_bullet in enemy_bullets:
enemy_bullets.remove(enemy_bullet)
break
if ebullet_rect.colliderect(player.rect):
if enemy_bullet in enemy_bullets:
player.hp -= 3
enemy_bullets.remove(enemy_bullet)
pygame.draw.rect(screen, (150,0,0), ebullet_rect)
for enemy in enemies:
if enemy.hp 

Подробнее здесь: [url]https://stackoverflow.com/questions/79375586/can-anyone-figure-out-why-my-game-goes-into-a-limbo-state[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»