Objetos sem código
Você quer um chão, uma parede ou um espinho: coisas que só ficam paradas na fase. Elas não precisam de código.
Em Recursos, clique com o botão direito numa pasta e escolha Novo objeto (sem código)…. O objeto é criado só com os dados: sprite, Sólido, máscara, física e o resto do que está no Inspetor.
Arraste-o para a room como qualquer outro objeto.
Reagir a ele no código
Seção intitulada “Reagir a ele no código”Um objeto sem código não tem classe, então não dá para escrever onCollide<Espinho>. Use o nome do objeto entre aspas:
void Player::onSpawn() { onTouchStart("Espinho", [this](Entity&) { restart(); });}As funções que aceitam o nome:
| Para | Funções |
|---|---|
| Saber se encosta | touching("Espinho"), collidesAt("Espinho", x, y + 1), findAt("Espinho", x, y) |
| Reagir ao contato | onCollide("Espinho", ...), onTouchStart("Espinho", ...), onTouchEnd("Espinho", ...) |
| Contar e percorrer | count("Moeda"), any("Moeda"), each("Chao", ...), destroyAll("Moeda") |
Elas também valem para objetos com classe.
Chão e paredes
Seção intitulada “Chão e paredes”Para o jogador não atravessar um objeto, basta marcar Sólido nele: moveAndStop e placeFree já respeitam todos os sólidos, com ou sem código.
Quando criar o código
Seção intitulada “Quando criar o código”Um objeto sem código não tem eventos nem variáveis no código. Se ele precisar se mexer, contar tempo ou guardar um valor, crie com Novo objeto….
