Makers Brasil
Bem Vindos a Maker´s Brasil (um forum para criação de servidores 2D e 3D)Nos desejamos boa sorte no seu projeto!


Participe do fórum, é rápido e fácil

Makers Brasil
Bem Vindos a Maker´s Brasil (um forum para criação de servidores 2D e 3D)Nos desejamos boa sorte no seu projeto!
Makers Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[GB]CRIANDO UM EVENTO

Ir para baixo

[GB]CRIANDO UM EVENTO Empty [GB]CRIANDO UM EVENTO

Mensagem por spectrus Qua maio 11, 2011 11:00 am

TUTORIAL 11 - CRIANDO UM EVENTO

Neste tutorial aprenderemos como criar um evento no 3D Game Builder, um evento é o resultado de uma ação durante o jogo.


Primeiramente crie um novo projeto
ou use um anterior, em seguida crie um pequeno cenário com duas bases
sólidas, pode usar dois grandes cubos, um próximo do outro, porém um
mais alto que a outro para que o ator possa andar sobre o mais baixo
porem não consiga subir até o outro, também posicione um cubo na
extremidade em que as duas bases se unem, mas deixe-o próximo do solo
para que o ator possa subir sobre ele, em seguida se você quiser pode
colocar uma textura nos objetos para que eles tenham uma aparência mais
bonita, quando concluir o seu cenário devera estar parecido com este:


[GB]CRIANDO UM EVENTO Img33



Nós iremos fazer uma espécie de
elevador, quando o ator estiver sobre o cubo menor que será o nosso
elevador este cubo ira subir levando-o até a parte superior.



Agora que você já esta com o cenário
pronto e já sabe o que pretendemos fazer selecione o cubo que
representa o nosso elevador, na paleta onde são exibidas as propriedades
do objeto note que existe uma outra aba chamada “Eventos” clique nela.

[GB]CRIANDO UM EVENTO Img34

Aqui são listados os eventos que
podem ser criados no objeto que está selecionado, a seguir serão
explicados mais detalhadamente cada um deles:


- OnClick: Evento que ocorre quando o usuário clica sobre o objeto.
- OnInteract: Evento que
ocorre quando o usuário estiver colidindo com o objeto e pressionar
uma tecla de ação, por padrão esta tecla é “Enter”, mas pode ser
alterada nas propriedades do projeto.
- OnLoop: Evento que ocorre repetidamente dês do momento em que o objeto for criado até o momento que ele for destruído.
- OnCollision: Evento que ocorre no momento que o ator estiver colidindo com o objeto.



Além dos eventos associados ao
objeto também existem eventos associados ao mapa, para acessar estes
eventos use o menu “Mapa → Eventos”, os eventos que podem ser definidos
em um mapa são:


- OnCreate: Evento que ocorre uma vez no momento em que o mapa é criado.
- MainLoop: Evento que ocorre repetidamente dês do momento em que o mapa for criado até o momento que ele for destruído.
- OnDestroy: Evento que ocorre uma vez no momento em que o mapa é destruído.
- OnClick: Evento que ocorre quando o usuário efetua um clique com o mouse.
- OnCollision: Evento global de colisões, ocorre sempre que uma colisão entre objetos ocorrer no mapa.



Como o que nós queremos é que o
elevador suba no momento em que o ator estiver colidindo com o elevador
então vamos utilizar o evento “OnCollision” do objeto, clique sobre o
evento “OnCollision” na paleta eventos.

[GB]CRIANDO UM EVENTO Img35


Este é o editor de eventos, aqui são
criados e editados os scripts utilizados para executar ações durante o
jogo. O primeiro botão acima do editor é usado para salvar o script e o
segundo utilizado para verificar possíveis erros no script, antes de
salvar é necessário fazer a verificação de erros, não é possível salvar
scripts que possuam erros. Para facilitar a criação dos scripts durante a
escrita dele é possível pressionar CTRL+ESPAÇO para que todos os
comandos sejam exibidos oferecendo a possibilidade do comando ser auto
completado além possibilitar visualizar todos os parâmetros recebidos
pelas funções.


Vamos criar o nosso primeiro script, como nós queremos que o cubo
eleve-se até chegar a altura da outra plataforma temos que fazer uma
verificação, se a posição Y do cubo já não esta na posição desejada,
caso não esteja incrementamos a posição de Y. No meu caso o script ficou
assim:


Código:
[b]if[/b] GetObjectPositionY('Objeto1') < 2 [b]then[/b]
    SetObjectPosition('Objeto1',
                      GetObjectPositionX('Objeto1'),
                      GetObjectPositionY('Objeto1')+0.01,
                      GetObjectPositionZ('Objeto1'));
O comando “GetObjectPositionY” retorna o valor da posição no eixo Y
do objeto passado a ele como parâmetro, no caso do “Objeto1”, ele é o
meu elevador, verifico se ele é menor que 2 que foi valor necessário
para que o meu elevador atingisse o topo da outra plataforma, se for
menor então devo aumentar a altura do elevador, para isso uso o comando
“SetObjectPosition“, que recebe como parâmetro o nome do objeto a ser
movido, no meu caso “Objeto1”, e também recebe os valores a serem
alterados em X, Y e Z, como queremos alterar apenas o valor de Y é usado
o “GetObjectPositionX” para pegar novamente a posição de X do mesmo
objeto para não haver alteração na posição no eixo X e é feita a mesma
coisa com o eixo Z, já em Y note que é pego o ultimo valor no eixo Y com
o comando “GetObjectPositionY” e incremento a ele 0.01. Isto fará com
que o cubo eleve-se, porém não terá o resultado esperado, o elevador vai
subir, mas o nosso personagem não, isto porque o comando
“SetObjectPosition“ trabalha com objetos estáticos, isto quer dizer que
objeto será movido sem nenhuma verificação de colisão, para que
funciona-se desta maneira seria necessário tornar o elevador um objeto
dinâmico e usar o comando “ApplyForce” para movê-lo, mas existe uma
maneira mais fácil, mover juntamente com o elevador o ator, usando o
mesmo comando “SetObjectPosition“ mas desta vez no objeto “Player”, o
objeto “Player” é um objeto que existe dentro de todos os mapas e
representar o ator principal, então o novo script ficou assim:


Código:
[b]if[/b] GetObjectPositionY('Objeto1') < 2 [b]then[/b]
[b]begin[/b]
    SetObjectPosition('Objeto1',
                      GetObjectPositionX('Objeto1'),
                      GetObjectPositionY('Objeto1')+0.01,
                      GetObjectPositionZ('Objeto1'));
    SetObjectPosition('Player',
                      GetObjectPositionX('Player'),
                      GetObjectPositionY('Player')+0.01,
                      GetObjectPositionZ('Player'));
[b]end;[/b]


Está pronto, agora clique no segundo botão no
editor de eventos para verificar se houve algum erro no script, se você
fez tudo corretamente ele não encontrará nenhum erro, caso encontro, o
erro será exibido abaixo do editor, se não houver nenhum erro clique em
salvar no editor de script e salve também o seu mapa. Agora você pode
executar o projeto e visualizar o resultado, quando o ator estiver sobre
o elevador ele vai ser elevado até a segunda plataforma.

[GB]CRIANDO UM EVENTO Img36

Este foi apenas um pequeno exemplo do que é
possível fazer com um script, a linguagem script do 3D Game Builder é
composta por mais de 700 comandos que vão dês da manipulação de strings
até a manipulação de objetos 3D, permitindo acesso a banco de dados, ao
registro do windows e varias funções do sistema operacional. Nos
próximos tutoriais aprenderemos a fazer outras coisas utilizando a
linguagem scripts.
spectrus
spectrus
Administrador
Administrador

Mensagens : 299
Estrelas Makers : 1466
Creditos : 49
Data de inscrição : 01/01/2011
Idade : 30
Localização : V.da conquista bahia

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos