terça-feira, 1 de setembro de 2015

C.A.P. (Cursos Abertos Profissionalizantes): Game Maker 8.0 - AÇÕES DE MOVIMENTO - Parte 2


Ações de movimento (parte 2):


Create Moving (Criar uma instância de um objeto com velocidade e direção)
instance_create(x,y,obj)
speed
direction

É praticamente idêntica a anterior, mas com dois campos adicionais. Com ela também é possível especificar a velocidade e direção da instância a ser criada.

Observe que se a caixa Relative for marcada, apenas a posição é relativa, e não a velocidade e a direção. Por exemplo, para ajustar o movimento de um tiro, é preciso utilizar um pequeno truque.

Como posição, usar 0,0 e marcar a caixa Relative. Como direção, é preciso a direção atual da instância, que pode ser obtida digitando a palavra direction (uma variável que indica a direção atual em que uma instância está se movendo).


Create random (Criar instância de um objeto aleatório)
instance_create(random(400),random(400),obj)

Esta ação o deixa criar uma instância de um entre quatro objetos. Você especifica os quatro objetos e a posição.

Uma instância de um destes quatro objetos é criada à determinada posição. Se você marcar a caixa Relativa, a posição é relativa à posição da instância atual.

Se você precisa de uma escolha fora de menos dos quatro objetos você pode usar No Object para alguns deles. Isto é por exemplo útil para gerar um inimigo aleatório em um local.


Change Instance (Modificar a instância)
instance_change(obj,perf)

Utiliza-se para mudar a instância atual para uma instância de um outro objeto. Por exemplo, é possível mudar a instância de uma bomba para uma explosão.

Todas as configurações, como o movimento e o valor das variáveis, permanecerão iguais. Pode-se
indicar ou não a realização de um evento destruir para o objeto atual e um creation event para o novo objeto.


Destroy Instance (Destruir a instancia)
instance_destroy()

Esta ação destrói uma determinada instância. É executado um evento destruir para a instância em questão.


Destroy at position (Destruir instâncias em uma posição)
position_destroy(x,y)

Com esta ação, é possível destruir todas as instâncias contidas em um retângulo abrangendo uma determinada posição. É útil, por exemplo, quando acontece a explosão de uma bomba, que deve atingir uma determinada área.

Marcando-se a caixa Relative, a posição se torna relativa à posição da instância atual.


Change Sprite (Mudar a sprite)
sprite_index

Utiliza-se esta ação para mudar a sprite de uma instância. Indica-se, também, qual subimagem deve ser exibida. Normalmente, o valor apropriado é 0 (indicando a primeira subimagem), a menos que se queira exibir uma sub-imagem em particular.

Usa-se -1 se não se quer modificar a sub-imagem atualmente exibida. Finalmente, é possível mudar a velocidade da animação. Se for desejada a visualização de uma sub-imagem em particular, utiliza-se o valor 0 para a velocidade.

Se o valor de velocidade for maior do que 1, algumas sub-imagens não serão exibidas; se for menor do que 1, algumas subimagens serão exibidas mais de uma vez. Não se deve utilizar valores negativos para velocidade.

A modificação de sprites é uma característica importante. Por exemplo, freqüentemente é desejado modificar a sprite de um objeto dependendo da sua direção de movimento, o que pode ser obtido criando sprites diferentes para cada uma das 4 direções.

Dentro dos eventos do teclado para as teclas de setas direcionais, ajusta-se a direção de movimento e a sprite correspondente.


Transform Sprite (Transformar a sprite)
sprite_width
sprite_height

Utiliza-se esta ação para modificar o tamanho e orientação da sprite para a instância. Através de fatores de escala, é possível torná-la maior ou menor.

O ângulo é fornecido no sentido anti-horário. Para criar a sprite orientada na direção de movimento, usa-se como valor direction. Isto é útil, por exemplo, para representar um carro.

Também é possível indicar se a sprite deve ser espelhada vertical ou horizontalmente.


Color Sprite (Configurar a cor de uma sprite)
image_blend

Normalmente, a sprite é desenhada como foi definida. Através desta ação, é possível mudar a cor da sprite. Esta cor é misturada com a sprite, isto é, é combinada com as cores da sprite.

Se for desejado desenhar uma sprite em cores diferentes, é melhor definir a sprite em preto e branco e usar a cor de mistura para ajustar a cor. Também é possível indicar uma transparência: valor igual a 1, a sprite fica opaca; valor igual a 0, fica completamente transparente; com um valor intermediário (entre 0 e 1), se vê parcialmente o fundo.

Este efeito é muito bom para criar explosões. Esta ação só está disponível na versão registrada.


Play a sound (Tocar um som)
sound_play(index)

Com esta ação, é possível tocar um dos sons (sound resouces) que foram adicionados ao jogo. Indica-se o som e se este deve ser tocado uma vez (o padrão) ou em repetição contínua. Pode ser tocado mais de um som wave por vez, mas sons do tipo midi só podem ser tocados um de cada vez.

Quando se inicia um novo som midi, o atual é
interrompido.


Stop a sound (Parar um som)
sound_stop(index)

A ação interrompe o som indicado. Se múltiplas instâncias desse som estão em execução, todas são interrompidas.


If a sound is playing (Se um som está em execução)
sound_isplaying(index)

Se o som indicado está em execução, a próxima ação é realizada. De outro modo, ela é ignorada. Pode-se selecionar Not para indicar que a ação deveria executar se o som indicado não estiver em execução.

Por exemplo, pode-se verificar se há uma música de fundo em execução e, se não houver, pôr alguma música em execução.


Go to previous room (Ir para sala anterior)
room_goto_previous()

Move para o room anterior. É possível indicar o tipo do efeito de transição entre rooms (experimente e verifique o que lhe parece mais atraente). Se ainda está no primeiro room, é exibido um erro.


Go to next room (Ir para próxima sala)
room_goto_next()

Move para o próximo room. Também pode-se indicar a transição.


Restart to current room (Reiniciar a sala atual)
room_restart()

O room atual é reiniciado. Indica-se o efeito de transição.



Go to a diferent room (Ir para uma sala diferente)
room_goto(numb)

Através desta ação, se pode ir a um room em particular. Indica-se o room e o efeito de transição.


If previous rooms exists (Se há uma sala anterior)

Esta ação testa se o room anterior existe. Existindo, a ação definida é executada.

Geralmente, é preciso fazer este teste antes de se mover para o room anterior.


If next rooms exists (Se há uma próxima sala)

Testa se o próximo room existe. Existindo, a ação definida é executada. Geralmente, utiliza-se este teste antes de se mover para o próximo room.

Até a próxima aula!

Nenhum comentário:

Postar um comentário