Duvida script de colisao

 
   3D Game Builder - Índice » Programação
Duvida script de colisao
Autor Mensagem
Claudio nascimento
Novato
Novato


Registrado: 07/11/15
Mensagens: 4
Localização: AL

Duvida script de colisao
Estou criando um jogo de rpg no 3D game Buider 1.7.1
Shooter Dynamic Camera Game, ja criei um banco de dados e coloquei esses script em OnCreate
Writeglobalvar('Indicador Nome','Jogador');
WriteGlobalVar('IndicadorHP','200');
WriteGlobalvar('IndicadorMP','80');

E a do Inimigo
WriteGlobalVar('IndicadorInimigo','Espantalho');
WriteGlobalvar('IndicadorHP','100');


Em MainLoop
SetLabelText('Nome','Nome:Jogador'+ReadGlobalVar('Jogador'));
SetlabelText('HP','HP:200'+IntToStr(ReadGlobalVar('200')));
SetLabelText('MP','MP:80'+IntToStr(ReadGlobalVar('80')));

A do inimigo
SetLabelText('Inimigo','Inimigo:Espantalho'+ReadGlobalVar('Espantalho'));
SetLabelTeaxt('HP','HP:100'+IntToStr(ReadGlobalVar(100')));

Ate aqui tudo bem mais nao consigo fazer o de colisao sempre esta dando erro


Sáb Nov 07, 2015 7:51 pm Exibir perfil de usuários
Claudio nascimento
Novato
Novato


Registrado: 07/11/15
Mensagens: 4
Localização: AL

Re: Duvida script de colisao
Claudio nascimento escreveu:
Estou criando um jogo de rpg no 3D game Buider 1.7.1
Shooter Dynamic Camera Game, ja criei um banco de dados e coloquei esses script em OnCreate
Writeglobalvar('Indicador Nome','Jogador');
WriteGlobalVar('IndicadorHP','200');
WriteGlobalvar('IndicadorMP','80');

E a do Inimigo
WriteGlobalVar('IndicadorInimigo','Espantalho');
WriteGlobalvar('IndicadorVida','100');


Em MainLoop
SetLabelText('Nome','Nome:Jogador'+ReadGlobalVar('Jogador'));
SetlabelText('HP','HP:200'+IntToStr(ReadGlobalVar('200')));
SetLabelText('MP','MP:80'+IntToStr(ReadGlobalVar('80')));

A do inimigo
SetLabelText('Inimigo','Inimigo:Espantalho'+ReadGlobalVar('Espantalho'));
SetLabelTeaxt('Vida','Vida:100'+IntToStr(ReadGlobalVar(100')));

Ate aqui tudo bem mais nao consigo fazer o de colisao sempre esta dando erro


Tive que colocar HP para o jogador e vida para o inimigo estava dando erro
queria um script assim quando eles colidisem um perde 10 de HP ou de Vida

_________________
Quem fica de joelhos diante de Deus, fica de pe diante de qualquer coisa
Qua Nov 11, 2015 11:05 pm Exibir perfil de usuários
kleiton157
Usuário
Usuário


Registrado: 06/05/11
Mensagens: 1170
Localização: Na cáducarai

Se você vai mesmo fazer um sistema de batalha eu recomendo que utilize por aproximação.
Usando o comando getobjectdistance('Player','Inimigo'); você vai conseguir uma dinamica melhor pra determinar se o jogador está ou não perto o suficiente pra atacar.. Porque a colisão requer que os dois fiquem "colados" um no outro, o que só vai acontecer se tiver uma força empurrando o jogador pra perto do inimigo o tempo todo e eu acho que não é isso que você quer.

Então se for utilizar esse método então você vai fazer verificar a distancia... E quando for uma distancia que dê pra atacar, verificar se apertou a tecla de atacar, pra finalmente tirar vida do inimigo.



_________________
________________________________________
- É nescessário ver além do que os olhos mostram
Dom Nov 29, 2015 1:29 pm Exibir perfil de usuários
kleiton157
Usuário
Usuário


Registrado: 06/05/11
Mensagens: 1170
Localização: Na cáducarai

Quanto a perda de vida, vai ter que criar outro sistema, dessa vez para que se retire vida de forma organizada...

Por exemplo, se você usar:
Citação:
If getobjectdistance("Player","Inimigo") < 1 then
if iskeypress(Tecla de ataque) = true then
begin
writeglobalvar('VidadoInimigo',readglobalvar('VidadoInimigo')-10);
end;


Olhando assim parece que funciona, mas se for ler, você está dizendo que cada vez que ele lê esse script e, a distancia for menor que 1 e, a tecla estiver apertada então retira -10 da variavel VidadoInimigo... Porém ele lê muito rápido então em menos de um segundo ele já vai ter lido umas 200 vezes e tirado muito mais do que o previsto...

Então o correto seria elaborar um sistema, ou por tempo(tipo, tirar 10 a cada 1 segundo), ou por delay(dando um delay a cada dano).

Qualquer duvida manda ai

_________________
________________________________________
- É nescessário ver além do que os olhos mostram
Dom Nov 29, 2015 1:36 pm Exibir perfil de usuários
Callyde Jr
Novato
Novato


Registrado: 19/11/15
Mensagens: 37
Localização: AL

Duvida
Estou com esse mesmo probleminha amigo mostra ai como eu posso fazer
Dom Dez 06, 2015 9:09 am Exibir perfil de usuários
   3D Game Builder - Índice » Programação
Página 1 de 1