Alex.SilR

RSS

Day 26 – [SinC] – Internal improvements, Inverter/Remove gravity and remove forces

Today I started refactoring the internal mechanics of winning leaving it much more flexible than it was before. Now when I do the level design will be much easier.

In the winning script I ended up using the singleton (design pattern [or !design pattern]). The singleton is basically a class that is structured in a way that can only be instantiated once. The class has a private constructor and a public get that returns a reference to the object (if not created yet it creates and then returns).

In winning script itself I added the maximum time to complete a level. If the player reaches that time he loses.

After this refactoring I created a script to remove the forces of the cubes (velocity and angular velocity) when pressed Ctrl. All cubes are affected simultaneously. This provides another strategic point, but the player has to know when to use, if he use to save a cube that will leave the level can end up affecting others who are in good trajectories.

Finally I created the script to remove and invert the gravity of the cubes. To remove the gravity the player selects the projectile corresponding and hits the cube with it, if hit again the gravity returns. To invert the gravity the process is the same. The two are independent, that is, if the player invert the gravity and then removing the gravity, and after that return to gravity it will be inverted.

Dia 26 – [SinC] – Melhorias internas, Inverter/Remover gravidade e remover forças

Hoje comecei reformulando a mecânica interna de vencimento deixando ela bem mais flexível do que estava antes. Agora quando for fazer os levels vai ser bem mais fácil.

Nesse script de vencimento acabei utilizando o singleton (Design pattern [ou !Design pattern]). O singleton basicamente é uma classe que é estruturada de forma que só pode ser instanciada uma vez. A classe tem um construtor privado e um get público que retorna a referencia do objeto (caso não estiver criado ainda ele cria e depois retorna).

No próprio script de vencimento adicionei o tempo máximo para completar um level. Se o jogador atingir esse tempo ele perde.

Depois dessa reformulação criei um script para remover as forças dos cubos (velocidade e velocidade angular) quando pressionado o Ctrl. Todos os cubos são afetados ao mesmo tempo. Isso possibilita mais um ponto estratégico, mas o jogador tem que saber quando usar, se ele usar para salvar um cubo que vai sair do level pode acabar tirando outros que estão com trajetórias boas.

Por último criei o script de remover e inverter a gravidade dos cubos. Para remover a gravidade o jogador seleciona o projétil correspondente e acerta o cubo com ele, se acertar novamente a gravidade retorna. Para inverter a gravidade o processo é o mesmo. Os dois são independentes, ou seja, se o jogador inverter a gravidade e depois remover a gravidade, e após isso retornar a gravidade ela vai estar invertida.