Totalmente esperado – mundo da pesca – Devlog #2
A renderização emite o primeiro teste da função de renderização (que publiquei no último devLog) funcionou bem, mas que tinha uma lista 2×2 com a quantidade perfeita de ladrilhos para caber na tela. Quando tentei usar a mesma função para um mapa maior, ele basicamente tornou tudo isso. Percebi alguns erros no código enquanto escrevia o último post, mas mantive -o lá para poder comparar, aqui está a nova função de renderização, talvez um pouco mais desorganizada, mas é o melhor que já criei! Importar pygame como PG Importar Configurações como Stgs def render (camada, centro): gw, gh = stgs.grid_w, stgs.grid_h # max telhas por eixo da grade x, y = central # Posição do jogador # coordenadas da grade na tela esquerda = x – gw // 2, x + gw // A posição faz com que a grade # não apareça inteiramente na tela Offx, offy = 0, 0 # corrigindo os valores iniciados anteriormente se for embora < 0:
offx = -left
left = 0
if right > (l: = len (camada[0])): direita = L se o topo < 0:
offy = -top
top = 0
if bottom > (L: = Len (camada)): Bottom = L # Obtendo o intervalo de ladrilhos que serão renderizados chunck = camada[top:bottom+1]
chunck = [
i[left:right+1] for i in chunck ]ts = stgs.tile_size # Drawing each tile on the screen # (requires optimization) for y, row in enumerate(chunck): for x, tile in enumerate(row): stgs.screen.blit( tile.image, ( (x+offx)*ts+stgs.margin_w, (y+offy)*ts+stgs.margin_h ) ) Enter Modo de tela completa Sair do modo de tela cheia finalmente se divertir com a renderização concluída (por enquanto), felizmente tive algum tempo para fazer alguns ladrilhos básicos para teste. E com todo esse tempo, eu só fiz um terrível telha de grama de 32×32 (O Orange Guy no meio é o jogador por enquanto) o movimento disso, comecei a planejar como as interações do movimento funcionariam neste jogo. A interface do usuário no Pygame não é a coisa mais amigável a ser considerada, então eu rapidamente esboçei um toque para mover a interação. Ao converter a posição do clique no ladrilho da grade que ele bate, eu posso mover facilmente o jogador para esse ladrilho, e funcionou muito bem! Palavras finais eu meio que atrasei o post deste devlog porque não tive muito tempo para trabalhar no projeto, mas espero que os pequenos passos que estou dando se transformem em um dos melhores jogos que fiz. Obrigado pela leitura! Vejo você!
Fonte