Parte 2: As torres
Agora nós vamos criar quatro eventos para fazer a colocação da torre.
O primeiro evento gerará uma nova torre quando clicarmos no botão de torre de construção ou pressionaremos o hotkey correspondente (A, nesse caso). Como você pode ver, dividi o evento em duas partes: os primeiros testes para ver se a tecla é pressionada OU se o mouse é clicado no botão; Se acontecer, então Construct 2 vai saltar para a segunda parte para testar se o dinheiro atual do jogador é mais de R$ 30 – O custo que atribuí a esta torre. Há também uma condição que testa se InHand está atualmente definido como 0. Se tudo isso acontecer, então ele vai criar uma nova instância de torre no mouse do jogador, o que vamos dizer é "flutuante" até que ele tenha sido colocado para baixo. Também definimos InHand para 1, para evitar que o jogador "pegue" mais de uma torre de cada vez.
Em seguida, queremos definir as torres para sempre encaixar em uma grade. Eu configurei minhas torres para serem 64x64 pixels, então esse é o tamanho da grade. Crie um evento que teste para ver se a torre está flutuando (por exemplo: se Floating for verdadeiro). Isto irá testar automaticamente essa condição cada tick. Crie uma ação que ajuste a posição da torre como abaixo. A matemática é bastante simples e deve fazer sentido com base no nosso tamanho da torre mencionado anteriormente.
Our third event will be called when the player clicks the mouse, and we need to test if the current tower in-hand is within the placement grid, that it’s not overlapping another tower, and that it’s currently floating. Once we’re happy with all of that, we can set the tower’s Floating status to false (which stops it from being moved every tick as in the previous event), take $30 from the player, and set InHand back to zero to allow the player to pick up another tower if they wish.
Nosso terceiro evento será chamado quando o jogador clicar no mouse, e precisamos testar se a torre atual InHand está dentro da grade de posicionamento, que não está sobrepondo outra torre e que ela está flutuando atualmente. Uma vez que ficarmos felizes com tudo isso, podemos definir o status Floating da torre como false (o que impede que ele seja movido a cada tick como no evento anterior), tirar R$ 30 do player e definir InHand de volta para zero para permitir que o Jogador para pegar outra torre, se assim o desejarem.
Our final event is simple: if the player right-clicks while a tower is floating, then destroy that tower to cancel the build order.