|
|
|
Autor |
Mensagem |
Claudio nascimento
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 |
|
|
Claudio nascimento
Novato
Registrado: 07/11/15 Mensagens: 4 Localização: AL |
|
Re: 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('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 |
|
|
kleiton157
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 |
|
|
kleiton157
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:
| | 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 |
|
|
Callyde Jr
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 |
|
|
|
|
|
|
|
|