Cenário com tiles
Você quer montar a fase pintando o chão e as paredes, sem arrastar um objeto para cada bloco.
No editor
Seção intitulada “No editor”- Tileset. Importe a imagem dos tiles como sprite, fatie no tamanho do tile e crie o tileset em + › Novo tileset…. Na aba dele, clique nos tiles que são sólidos (chão, parede).
- Camada. No painel Camadas, + Camada › Tiles. Dê o nome
Chao. - Pinte. Escolha um tile na paleta do Inspetor e arraste na room. O botão direito apaga.
O passo a passo completo está em Tileset e tiles.
No código
Seção intitulada “No código”Nada muda. O jogador de plataforma é o mesmo de quando o chão era um objeto sólido:
void Player::onUpdate() { hspeed = axis("esquerda", "direita") * 1.5f; if (pressed("pular") && onGround()) vspeed = -4.5f; moveAndStop();}Como funciona
Seção intitulada “Como funciona”- Os tiles marcados como sólidos no tileset barram o movimento, como um objeto com Sólido marcado.
moveAndStop()para no tile, eonGround()vê o tile embaixo do jogador.- A colisão é feita pela grade, olhando só os tiles que a caixa do jogador toca. Uma fase grande, cheia de tiles, não fica mais lenta.
Variações
Seção intitulada “Variações”Enfeites que não colidem. Crie outra camada de Tiles, Enfeites, e desligue Colide no Inspetor. Pinte nela a grama, as flores e as placas.
Saber em que tile o jogador está. tileAt devolve o número do tile num ponto (ou -1 se não há tile), e solidAt diz se há algo sólido ali:
if (tileAt("Chao", x, y + 12) == 7) Audio::play("passo_na_pedra");if (solidAt(x + 10, y)) flipX = !flipX;Bordas e cantos sozinhos. Marque um terreno no tileset e use o pincel de terreno. Veja Tileset e tiles.
Veja também
Seção intitulada “Veja também”- O modelo Plataforma, em Novo projeto, tem uma fase pronta feita assim.
- Jogo de plataforma.
- Camadas e tiles.
