Estou tentando desenvolver um jogo simples no estilo Zelda. Eu achei esse tópico muito útil
Como o LoZ: A Link to the Past lidou com colisões de sub-blocos?
que estou usando como referência para desenvolver meu mecanismo de detecção de colisões. No entanto, há algo que não consegui entender. Quando Link está atrás de edifícios, apenas parte dele é mostrada. Alguém pode me ajudar a entender como esse efeito pode ser alcançado? O edifício não faz parte do plano de fundo?
Respostas:
Os jogos 2D lado a lado geralmente têm mais camadas, que são renderizadas em diferentes camadas - algumas são renderizadas em segundo plano, outras acima do jogador.
Essa parte do telhado fica acima do jogador e é por isso que o jogador pode ir atrás desse edifício.
Aqui está o exemplo da imagem do meu jogo para explicar melhor:
fonte
Enquanto a resposta de Blodyavenger cobre como é mais provável, aqui está outra possibilidade que permitiria uma fácil mudança de perspectiva (por exemplo, quatro ou oito direções diferentes ou alguns níveis de elevação da câmera):
Considere a vista de cima para baixo do seu mapa, por exemplo
Onde, digamos,
X
marca um pilar alto. Para cada objeto, você armazena imagens de todas as perspectivas possíveis (ou usa o mesmo ...), que podem ser arbitrárias com muitos ladrilhos. Agora, ao desenhar, basta começar com a coluna ou linha que está na parte de trás da perspectiva atual, por exemplo, linha 1, se estiver olhando para o sul. Depois disso, desenhe a linha / coluna a segunda mais para trás e assim por diante. Dessa forma, quando algo estiver mais alto do que um bloco (esticado para a perspectiva atual), ele simplesmente excederá o que está por trás.(Desculpe pela falta de boas fotos, não sou muito bom em gráficos aplicados ...)
fonte
Você deve ter uma variável para profundidade e ter as imagens com maior profundidade desenhadas primeiro, depois as outras com menor profundidade. E a profundidade de cada objeto deve ser igual ao negativo de sua coordenada y.
Depth=-y
fonte