Conceitos

Os conceitos básicos do GDevelop são simples. Leia as informações a seguir para iniciar com o programa.

Sistema de coordenadas

Os objetos na cena têm duas coordenadas, X e Y, a coordenada X representada no Plano Cartesiano pelo eixo horizontal conhecido como eixo das abcissas e a coordenada Y representada no Plano Cartesiano pelo eixo vertical conhecido como eixo das ordenadas.

As coordenadas do mouse são exibidas na barra de status do Editor de Cena:

Como mostrado abaixo, a coordenada X aumenta quando você move o mouse para a direita e diminui quando você move o mouse para a esquerda, enquanto que a coordenada Y aumenta quando você move o mouse para baixo e diminui quando você move o mouse para cima.

Para mover ou rotacionar objetos, você precisará especificar o ângulo desejado em graus. Veja abaixo como GDevelop entende o ângulo de rotação:

Note que se você quiser usar as funções trigonométricas como a função seno ou a cosseno, você deverá especificar o ângulo em radianos. A conversão de graus para radianos e de radianos para graus é simples, basta lembrar das aulas de trigonometria do ensino médio. Apenas como informativo, lembre-se que um radiano equivale a igualdade entre a medida do arco do ângulo com o seu raio, em outras palavras, sabemos que o comprimento da circunferência é determinado por 2πr, sabendo que um ciclo(uma volta completa) equivale a 360º e que 2πr=360º, teremos que r=360º÷2π, fazendo as simplificações, encontramos como resultado que 1 radiano equivale a r=180º÷π.


Seleção de objetos por eventos

Muitas das condicionais de testes e das ações para modificação são referentes aos objetos. Uma ação sem uma condicional irá se referir a todos os objetos. Se você usa um objeto pela primeira vez em um evento, o GDevelop testará ou modificará todos os objetos de mesmo nome na cena. Se você usar o objeto no mesmo evento novamente, o GDevelop testará ou modificará apenas o objeto escolhido nas condições previamente estabelecidas.

Esse processo é uma simples aplicação de lógica. Por exemplo, esse evento não especifica nenhuma condição, portanto todos os objetos chamados “Square” serão deletados:

Este evento no entanto, deletará apenas os objetos “Square” com a posição X inferior a 100 pixels:


Eventos: a ordem é importante

A ordem do evento é importante: Os evento mais acima são executados primeiros. Observe que os pares de eventos a seguir não são equivalentes:

O primeiro par de eventos cria um objeto “Square” na posição 200;100 e em seguida deleta os mesmos. Nenhum objeto “Square” é exibido na tela.
O segundo par de eventos primeiro deleta todos os objetos “Square” da cena, e então cria um objeto “Square” na posição 200;100, de modo que Square ainda permanece visível.


Movendo os objetos através de forças internas

O movimento de objetos podem ser aplicados graças as forças, que são utilizadas para “atrair” objetos.

Você pode especificar as coordenadas cartesianas (X,Y em pixels) de uma força, as suas coordenadas polares, o ângulo do vetor força e sua intensidade, e a força de dispersão, um coeficiente entre 0 e 1. Cada segundo, a intensidade da força será multiplicada pela dispersão: sendo que o valor 1 significa que a força continuará para sempre, enquanto que o valor 0 significa que ela irá parar imediatamente. Todos os valores intermediários fará com que a força pare gradualmente.

Exemplo

Vamos imaginar que você queira mover um objeto para baixo:

Você pode adicionar uma força usando as coordenadas (X,Y), especificando digamos 0 pixels para X e 150 pixels para Y. Você pode também utilizar as coordenadas polares para adicionar uma força com um ângulo de 90º e uma intensidade de 150 pixels.

Outras formas de mover objetos

Algumas extensões de comportamentos como o de Física ou de Encontrar o Caminho(Pathfinding) pode mover objetos usando o seu próprio sistema. E nesse caso, é melhor usar somente as ações fornecidas pelas extensões em vez de utilizar o sistema de forças internas.


Variáveis

As variáveis permitem que você armazene dados, como por exemplo um número ou um texto. Nós podemos comparar as variáveis como sendo gavetas ou caixas, onde poderemos guardar alguma coisa, como por exemplo a sua gaveta de meias ou de joias. Qualquer dado pode ser armazenado, desde que o mesmo seja ou esteja em formato de texto ou de número: o número de vidas restantes, a pontuação máxima, as balas disponíveis, a quantidade de inimigos mortos e etc… São exemplos de dados que podem ser armazenados em variáveis. Você provavelmente irá utilizar números com bastante frequência.

Podemos testar o valor da variável em condicionais e ações ou alterar o valor da mesma.


Escopo de variáveis

O escopo de uma variável determina de onde a mesma pode ser acessada. Em GDevelop, três escopos de variáveis estão disponíveis:

Global são variáveis que podem ser acessadas a partir de qualquer cena no jogo; por exemplo, elas podem ser utilizadas para armazenar a pontuação do jogador durante as fases;
Cena são variáveis acessíveis apenas pela cena na qual a mesma foi declarada, em outras palavras, variáveis de cena podem ser utilizadas apenas para armazenar ou lê dados da cena que a declarou, e não para qualquer cena do jogo como acontece com a Global. Um exemplo de uma variável de cena seria o status de vida do chefão.
Objeto são variáveis que pertencem apenas ao objeto. Por exemplo, o objeto herói pode ter uma variável chamada tipodearma ou quantidadedebalas.


O tempo decorrido desde o último quadro (TimeDelta)

O jogo avalia os eventos e repinta a tela várias vezes por segundo: quando isso acontece nós dizemos que o jogo foi atualizado. Com que frequência isso acontece depende do poder de processamento do seu computador ou da quantidades de recursos disponíveis para processamento: um computador lento pode renderizar 25 quadros por segundo, enquanto que um computador rápido pode renderizar 140 quadros por segundo. GDevelop pode na grande maioria das vezes assegurar que esse valor seja o mesmo em todos os computadores, mas a velocidade de alguma operação pode variar de computador para computador, como por exemplo as operações matemáticas e a renderização de movimentos.

Para alterar a velocidade constantemente, use a expressão TimeDelta(), a qual retorna o tempo em segundos desde o último quadro. Por exemplo, não faça isto:

Em vez disso, faça isto:

O primeiro evento está adicionando 20 unidades a variável Life a cada vez que o jogo é atualizado, isto é, assim que seja possível. Isso não é correto, pois não deve-se utilizar tal evento dessa forma para incrementar a velocidade da variável que não será o mesmo e que irá variar de computador para computador: Por exemplo, não poderemos determinar o valor da variável depois de 10 segundos.
O segundo evento é correto e confiável: o número 300 é multiplicado pelo valor retornado por TimeDelta(). Dessa forma, a variável será incrementada com o mesmo tempo em todos os computadores. Como TimeDelta() retorna o tempo em segundos, o mesmo permite quantificar a quantidade exata: Em nosso caso, a variável irá aumentar 300 unidades/segundos, em outras palavras, a cada segundo a variável irá aumentar 300 unidades. Assim poderemos predizer que a variável Life aumentará em 3000 unidades em 10 segundos.

Lembre-se de usar TimeDelta() sempre que você quiser aumentar ou diminuir a quantidade de alguma coisa continuamente.

Quando você estiver movendo um objeto utilizando forças, não existe a necessidade de usar TimeDelta(), pois GDevelop já o usa automaticamente.

E isso é quase tudo o que você precisa saber

Você pode continuar lendo a Página Iniciando para ter uma visão geral da interface do GDevelop.