Disparo de longa distançia

 
   3D Game Builder - Índice » Programação
Disparo de longa distançia
Autor Mensagem
Edno Rodrigues
Usuário
Usuário


Registrado: 07/09/09
Mensagens: 277
Localização: Brasil Games

Disparo de longa distançia
Ola Amigos do Fórum, o 3D game builder tem alguma função de dispara de longa distância para causar danos no meu Ator...

Por exemplo : coloquei um espantalho no cenário, o que eu quero saber ! é tem como programa o espantalho em uma determinada posição entre ele e o Ator principal, onde o espantalho rebole bolas de fogos ( partículas ) que se pegar no Ator causa danos ou seja que vai causar danos no Ator não é o espantalho e sim a bola de fogo ( a Partícula ), se vocês souberem, colocar o exemplo ai beleza.....


Abraço á todos -------------------------

Laughing Very Happy Rolling Eyes Laughing Laughing Rolling Eyes Very Happy Laughing Laughing Rolling Eyes Very Happy Cool Cool Very Happy Laughing Rolling Eyes


Sáb Fev 19, 2011 2:36 am Exibir perfil de usuários
Lemos
Usuário
Usuário


Registrado: 14/04/09
Mensagens: 802
Localização: Rio de Janeiro - RJ

Re: Disparo de longa distançia
Cara, o que você quer é algo meio complicado, eu já pensei nisso, tive algumas idéias, mas nunca experimentei... Eu começaria usando o comando CreateObject:

CreateObject

Create a object. The parameter "RefObjectName" refer to object that will use the new object as child, the default value is "Scene" that refer to the object not is child. The object name is defined by parameter "Name", if the object already exist the function raises an exception. The parameters PositionX, PositionY and PositionZ is the position where the object will be created.

Declaration:
procedure CreateObject(Name : String; Objeto : String; PositionX : Float; PositionY : Float; PositionZ : Float; RefObjectName : String);


Acredito que usando os nomes esphere ou cube (os mesmos nomes das primitivas do 3dgame), deve funcionar. O material teria que ser definido também... As coordenadas deveriam ser em vez de números, substituídas por variávei globais que guardassem as coordenadas do espantalho, Tipo, teria uma variável para o X, o Y e o Z, que tomariam os valores por meio do getobjectposition do espantalho. O Valor de X teria que ser acrescido de alguma distância, tipo X + 1, para que a bola surgisse bem na frente dele (o X é a frente do espantalho). Depois disso, a distância entre o player e o espantalho teria que ser medida e esse valor deveria ser aplicada ao eixo X, tipo, se a distância entre o espantalho e o Player for 20, você usaria um comando que se a distãncia entre a bola e o espantalho fosse menor que 20 + um extra (tipo, 20 + 5 = 25), uma valor seria somado, tipo, X+1 (isso iria determinar a velocidade, que não podse ser muito grande, senão o Player não terá chance). Agora, tem que ter cuidado, pque se o espantalho se vira sempre na direção do player, ele sempre iria acertar ele, e o jogador tem que ter a chance de poder escapar, pque se ele conseguisse correr até depois da distãcia de 25, ele não seria atingido.
Aí teria que se fazer o sistema de partículas para a esfera e também ela teria que sumir se completasse a distância sem acertar o player e se chegasse a atingir, um script de colisão teria que ser feito para determinar qual a ação do player e qual dano causado, medido na variável vida, barulho, efeitos, etc...
Como você vê, para fazer algo assim, teria que criar um projeto simples só para fazer experiências. O disparo da arma deve ser uma rotina que englobe todas essas etapas. Não será nada fácil. Eu nem posso lhe ajudar pque não tenho tempo para fazer algo assim, mas valia um tutorial sobre isso, ajudaria muito a comunidade.
Se você quiser experimentar, posso até tentar dar dicas, mas vai ser difícil eu arrumar tempo para algo assim, pelo menos até que eu termine o programa que estou fazendo.

Abraço...

_________________
Lemos
http://alemdanimacao.zip.net/
Sáb Fev 19, 2011 2:52 pm Exibir perfil de usuários
   3D Game Builder - Índice » Programação
Página 1 de 1